名前付けの慣習¶
名前付け規則は、TECS CDL 文法の一部ではなく、慣用的なものです。
TECS では、コンポーネント実装において、名前を連結したグローバル名を使用します。 このため不用意な名前を用いると、連結した名前が、衝突する可能性があります。 名前付け規則に従って接頭文字を付加することは、名前の衝突を避ける効果もあります。
接頭文字¶
要素 |
接頭文字 |
その他 |
例 |
備考 |
---|---|---|---|---|
シグニチャ |
s |
2文字目は大文字 |
sMotor, sLamp |
タスクコンテキスト |
シグニチャ |
si |
3文字目は大文字 |
siTask |
非タスクコンテキスト (non-task) |
シグニチャ |
sn |
3文字目は大文字 |
snInit |
カーネル外コンテキスト |
関数 |
なし |
先頭は小文字 |
rotateRight |
|
引数 |
なし |
先頭は小文字 |
goalPositionX |
|
セルタイプ |
t |
2文字目は大文字 |
tMotor, tLamp |
|
セル |
なし |
先頭は大文字 |
Motor,Lamp |
|
呼び口 |
c |
2文字目は大文字 |
cMotor |
|
受け口 |
e |
2文字目は大文字 |
eMotor |
|
属性 |
なし |
先頭は小文字 |
countLimit |
|
内部変数 |
なし |
先頭は小文字 |
upCount |
【参照実装における制限】定数は、上記の規則にはないが、属性、内部変数、関数の名前と重複しないこと。定数はヘッダファイルで define によって定義されるため、定数と他のものの名前が重複すると、Cコンパイラでコンパイルするときに、分りにくいエラーが発生する。
型情報¶
通常、型に関する情報を名前に含めないが、以下の場合には名前に含めます。
属性、変数、引き数がポインタ型の場合、'p_' を前置する
属性、変数、引き数がパケットの場合、'pk_' を前置する
属性、変数、引き数がパケットへのポインタ型の場合、'ppk_' を前置する
グローバル名¶
グローバル名は、主としてコンポーネント実装において用いられますが、TECS CDL の記述においても、一部グローバル名を指定する場合があります。 グローバル名は、属するネームスペース名にアンダスコア '_' を付加したものを前置きしたものです。
グローバル名の凡例を以下に示します。
対象となるもの |
グローバル名 |
---|---|
シグニチャ |
(ネームスペース名) + '_' + (シグニチャ名) |
セルタイプ |
(ネームスペース名) + '_' + (セルタイプ名) |
受け口関数 |
(ネームスペース名) + '_' + (セルタイプ名) + '_' + (受け口名) + '_' + (関数名) |
セル |
(リージョン名) + '_' + (セル名) |
ここで + は文字列の連結を表わします。
ネームスペースが親ネームスペースに属する場合、親ネームスペース名にアンダスコア '_' を付加したものを、更に前置きします。 ルートネームスペースに属する場合には、ネームスペース名および '_' を含みません。 リージョンも、ネームスペースと同様です。
呼び口関数には、グローバル名が与えられることはありません。 呼び口関数は、セルタイプコードの中でのみ用いられるためです。
【補足説明】セルのグローバル名は、セルタイプコードの中で用いられることはない。
【補足説明】シグニチャのグローバル名についても、TECS ジェネレータで生成されるヘッダファイル内で用いられるだけで、セルタイプコードで記述することはない。