| 1 | == 名前付けの慣習 == |
| 2 | |
| 3 | 名前付け規則は、TECS CDL 文法の一部ではなく、慣用的なものです。 |
| 4 | |
| 5 | TECS では、コンポーネント実装において、名前を連結したグローバル名を使用します。 |
| 6 | このため不用意な名前を用いると、連結した名前が、衝突する可能性があります。 |
| 7 | 名前付け規則に従って接頭文字を付加することは、名前の衝突を避ける効果もあります。 |
| 8 | |
| 9 | === 接頭文字 === |
| 10 | |
| 11 | ||= 要素 =||= 接頭文字 =||= その他 =||= 例 =||= 備考 =|| |
| 12 | ||シグニチャ || s || 2文字目は大文字 || sMotor, sLamp || タスクコンテキスト |
| 13 | ||シグニチャ || si || 3文字目は大文字 || siTask || 非タスクコンテキスト (non-task) |
| 14 | ||シグニチャ || sn || 3文字目は大文字 || snInit || カーネル外コンテキスト |
| 15 | ||関数 || なし || 先頭は小文字 || rotateRight || |
| 16 | ||引数 || なし || 先頭は小文字 || goalPositionX || |
| 17 | ||セルタイプ || t || 2文字目は大文字 || tMotor, tLamp || |
| 18 | ||セル || なし || 先頭は大文字 || Motor,Lamp || |
| 19 | ||呼び口 || c || 2文字目は大文字 || cMotor || |
| 20 | ||受け口 || e || 2文字目は大文字 || eMotor || |
| 21 | ||属性 || なし || 先頭は小文字 || countLimit || |
| 22 | ||内部変数 || なし || 先頭は小文字 || upCount || |
| 23 | |
| 24 | 【参照実装における制限】定数は、上記の規則にはないが、属性、内部変数、関数の名前と重複しないこと。定数はヘッダファイルで define によって定義されるため、定数と他のものの名前が重複すると、Cコンパイラでコンパイルするときに、分りにくいエラーが発生する。 |
| 25 | |
| 26 | === 単語区切り === |
| 27 | |
| 28 | 名前として、複数の単語を連結したものを用いる場合、以下のようにします。 |
| 29 | |
| 30 | * 連結する単語の1文字目は、大文字とする |
| 31 | * 単語と単語は直接連結する( '_' などを置かない) |
| 32 | |
| 33 | === 型情報 === |
| 34 | |
| 35 | 通常、型に関する情報を名前に含めないが、以下の場合には名前に含めます。 |
| 36 | |
| 37 | * 属性、変数、引き数がポインタ型の場合、'p_' を前置する |
| 38 | * 属性、変数、引き数がパケットの場合、'pk_' を前置する |
| 39 | * 属性、変数、引き数がパケットへのポインタ型の場合、'ppk_' を前置する |
| 40 | |
| 41 | == グローバル名 == |
| 42 | |
| 43 | グローバル名は、主としてコンポーネント実装において用いられますが、TECS CDL の記述においても、一部グローバル名を指定する場合があります。 |
| 44 | グローバル名は、属するネームスペース名にアンダスコア '_' を付加したものを前置きしたものです。 |
| 45 | |
| 46 | グローバル名の凡例を以下に示します。 |
| 47 | |
| 48 | ||= 対象となるもの =||= グローバル名 =|| |
| 49 | || シグニチャ || (ネームスペース名) + '_' + (シグニチャ名) |
| 50 | || セルタイプ || (ネームスペース名) + '_' + (セルタイプ名) |
| 51 | || 受け口関数 || (ネームスペース名) + '_' + (セルタイプ名) + '_' + (受け口名) + '_' + (関数名) |
| 52 | || セル || (リージョン名) + '_' + (セル名) |
| 53 | |
| 54 | |
| 55 | ここで + は文字列の連結を表わします。 |
| 56 | |
| 57 | ネームスペースが親ネームスペースに属する場合、親ネームスペース名にアンダスコア '_' を付加したものを、更に前置きします。 |
| 58 | ルートネームスペースに属する場合には、ネームスペース名および '_' を含みません。 |
| 59 | リージョンも、ネームスペースと同様です。 |
| 60 | |
| 61 | 呼び口関数には、グローバル名が与えられることはありません。 |
| 62 | 呼び口関数は、セルタイプコードの中でのみ用いられるためです。 |
| 63 | |
| 64 | 【補足説明】セルのグローバル名は、セルタイプコードの中で用いられることはない。 |
| 65 | |
| 66 | 【補足説明】シグニチャのグローバル名についても、TECS ジェネレータで生成されるヘッダファイル内で用いられるだけで、セルタイプコードで記述することはない。 |
| 67 | |
| 68 | ------ |
| 69 | [TECS リファレンスマニュアル [wiki: トップページ]]・ |
| 70 | [TECS CDL リファレンスマニュアル [wiki:CDLref トップページ]・[wiki:CDLref_index 目次]] |