1 | | tecsgen コマンドリファレンス |
2 | | |
3 | | 《名前》 |
4 | | |
5 | | tecsgen -- TECS ジェネレータ |
6 | | |
7 | | 《使用方法》 |
8 | | |
9 | | % tecsgen [OPTION] CDL-File |
10 | | |
11 | | 《説明》 |
12 | | |
13 | | TECS ジェネレータ tecsgen は、TECS コンポーネント記述 (TECS CDL) ファ |
14 | | イルを入力として、TECS のインタフェースコードやセルの記憶域を定義する |
15 | | コードを生成します. |
| 1 | = tecsgen コマンドリファレンス = |
| 2 | |
| 3 | == 名前 == |
| 4 | |
| 5 | tecsgen -- TECS ジェネレータ |
| 6 | |
| 7 | == 使用方法 == |
| 8 | |
| 9 | 以下の、使用方法があります. |
| 10 | |
| 11 | === tecsgen を呼出す === |
| 12 | |
| 13 | % tecsgen [OPTION] CDL-File |
| 14 | |
| 15 | === 明示的に exerb 版を呼出す === |
| 16 | |
| 17 | V1.3 以降 exerb 版は、サポートされなくなりました。 |
| 18 | |
| 19 | % tecsgen.exe [OPTION] CDL-File |
| 20 | |
| 21 | 実行モジュールの拡張子 .exe を付加して呼び出します. |
| 22 | Windows 上のみで使用可能です.Ruby インタプリタをインストールすることなく用いることができます。 |
| 23 | |
| 24 | === 明示的に Ruby スクリプトを呼出す === |
| 25 | |
| 26 | % ruby [PATHtoTECSGEN]/tecsgen.rb CDL-File |
| 27 | |
| 28 | [PATHtoTECSGEN] は TECS ジェネレータ (tecsgen) のインストールディレクトリへのパスです. |
| 29 | この呼出し形式は、TOPPERS プロジェクトで作成された各種パッケージで、見らることがあります。 |
| 30 | |
| 31 | == 説明 == |
| 32 | |
| 33 | TECS ジェネレータ tecsgen は、TECS コンポーネント記述言語 (TECS CDL) に基づき記述された CDL-File を入力とし、インタフェースコードなどを生成します. |
144 | | デフォルトで tecsgen/tecs へのパスを -I に加えます.このオプショ |
145 | | ンを指定すると、その -I の指定を抑止します. |
146 | | |
147 | | --c-suffix=c C program suffix (default: c) |
148 | | 生成する C 言語のファイルの拡張子を指定します.C++ コンパイラ |
149 | | を使用する場合には C++ の拡張子を指定します. |
150 | | |
151 | | --h-suffix=h C program header suffix (default: h) |
152 | | 生成する C 言語のヘッダファイルの拡張子を指定します. |
| 161 | デフォルトでは、環境変数 $TECSPATH で示されるディレクトリ、およ |
| 162 | びそのディレクトリ直下のディレクトリが import および import_C |
| 163 | で取り込む場合のサーチパスに含まれますが、本オプションを指定し |
| 164 | た場合、それらのディレクトリはサーチパスに含まれません. |
| 165 | |
| 166 | --c-suffix=c |
| 167 | 生成する C 言語のソースファイルのサフィックスを指定されたものに、 |
| 168 | 変更します.C++ 用のソースファイルとして扱いたい場合、cc や |
| 169 | cpp を指定します. |
| 170 | |
| 171 | --h-suffix=h |
| 172 | 生成する C 言語のヘッダファイルのサフィックスを指定されたものに、 |
| 173 | 変更します.このオプションを指定した場合、factory で生成される |
| 174 | ヘッダファイル名が不一致になる可能性がある点に注意してください. |
156 | | ・ヘッダファイル (global_tecsgen.h, CELLTYPE_tecsgen.h, CELLTYPE_factory.h) |
157 | | ・セルタイプtecsgenコード (CELLTYPE_tecsgen.c) |
158 | | ・セルタイプコードテンプレート (CELLTYPE_templ.c, CELLTYPE_inline_temple.h) |
159 | | ・Makefile (Makefile.templ, Makefile.tecsgen, Makefile.depend) |
160 | | ・中間ファイル |
161 | | ・プラグインにより生成されるコンポーネント記述 |
162 | | ・取込まれる C のヘッダファイル |
163 | | |
164 | | 出力物の使用方法については、TECS 仕様書 (draft版) の付録を参照してください. |
165 | | |
166 | | セルタイプコードテンプレートは、以下のように出力されます。 |
167 | | |
168 | | ・ 山括弧 <> で囲まれて import された CDL ファイルで定義されているセル |
169 | | タイプのテンプレートファイルは出力されません |
170 | | (--generate-all-template を参照) |
171 | | ・セルタイプの受け口がすべて inline である場合、テンプレートヘッダファ |
172 | | イルのみ出力されます.Makefilte.tecsgen で TECS_COBJS にも含まれませ |
173 | | ん. |
174 | | ・セルタイプの受け口がすべて inline であってもアクティブである場合、C |
175 | | 言語テンプレートファイルも出力されます.Makefilte.tecsgen で |
176 | | TECS_COBJS にも含まれます. |
177 | | |
178 | | 《終了ステータス》 |
179 | | |
180 | | 0 … 正常終了 |
181 | | 1 … エラー |
182 | | |
183 | | エラーには、CDL ファイルの文法誤りの他、入力ファイルの読み込みや出力ファ |
184 | | イルの作成の失敗があります.警告 (warning) の発生は、エラーとはみなさ |
185 | | れません. |
| 178 | * ヘッダファイル (global_tecsgen.h, CELLTYPE_tecsgen.h, CELLTYPE_factory.h, SIGNATURE_tecsgen.h) |
| 179 | * セルタイプtecsgenコード (CELLTYPE_tecsgen.c) |
| 180 | * セルタイプコードテンプレート (CELLTYPE_templ.c, CELLTYPE_inline_temple.h) |
| 181 | * Makefile (Makefile.templ, Makefile.tecsgen, Makefile.depend) |
| 182 | * 中間ファイル |
| 183 | * プラグインにより生成されるコンポーネント記述 |
| 184 | * 取込まれる C のヘッダファイル |
| 185 | |
| 186 | == 終了ステータス == |
| 187 | |
| 188 | * 0 … 正常終了 |
| 189 | * 1 … エラー |
| 190 | |
| 191 | エラーには、CDL ファイルの文法誤りの他、入力ファイルの読み込みや出力ファイルの作成の失敗があります. |
| 192 | 警告 (warning) の発生は、エラーとはみなされません. |
| 193 | |
| 194 | == 言語および文字コードの決定 == |
| 195 | |
| 196 | 言語および文字コードの指定は、tecsgen への入力と出力で対応が異なります. |
| 197 | |
| 198 | 入力については、文字コードの指定が sjis の場合を除いて、tecsgen は、CDL ファイルの文字コードを ASCII-8BIT とみなして読み込みます. |
| 199 | ファイルが sjis の場合に限っては、第二バイトに '\' が含まれることがあり、そのような文字が " (ダブルクオート) の直前にあるとエスケープされてしまい、期待したとおりに動作しないため、sjis の場合には入力ファイルの文字コードを認識して処理を行います. |
| 200 | |
| 201 | 出力については、コンソールに出力されるエラーメッセージ、gen ディレクトリに生成されるファイルの両方で、言語、文字コードの指定が影響します. |
| 202 | |
| 203 | tecsgen は、文字コードの指定を以下の順に調べていき、最後に設定されていたものの言語および文字コードの指定が有効となります. |
| 204 | |
| 205 | * codepage (exerb 版かつ TERM 環境変数未設定または TERM=cygwin の場合のみ) |
| 206 | * 環境変数 LANG |
| 207 | * 環境変数 TECSGEN_LANG, TECSGEN_FILE_LANG |
| 208 | * オプション -k |
| 209 | |
| 210 | TECSGEN_LANG はエラーメッセージ、ファイル文字コードの両方に影響します. |
| 211 | ただし、LANG と TECSGEN_LANG が相違する場合、エラーメッセージが正しく表示されない可能性が高いので、よくわからない場合は設定しないようにしてください. |
| 212 | |
| 213 | TECSGEN_FILE_LANG はファイル文字コードのみ影響します. |
| 214 | |
| 215 | -k で euc, sjis が指定された場合、TECSGEN_FILE_LANG=ja_JP.eucJP または ja_JP.sjis が仮定されます. |
| 216 | utf8, none が指定された場合は、それ以前に決定された言語が選択されます. |
| 217 | |
| 218 | 現在の実装では、環境変数 LANG, TECSGEN_LANG, TECSGEN_FILE_LANG の有効な値は、以下の通りです. |
| 219 | |
| 220 | * 言語: C, en_US, ja_JP |
| 221 | * 文字コード: utf8(utf-8), iso8859-1, sjis, eucJP |
| 222 | |
| 223 | 大文字、小文字は区別されません. |
| 224 | これ以外が指定された場合、C.ISO8859-1 (内部的には en_US.ASCII-8BIT) が仮定されます. |
| 225 | |
| 226 | == 環境変数 == |
| 227 | |
| 228 | tecsgen は、以下の環境変数を参照します. |
| 229 | |
| 230 | === TECSPATH === |
| 231 | |
| 232 | 【補足説明】TECS ジェネレータ V1.2.1.4 以降、TECSPATH は、必ずしも設定する必要はありません。tecsgen/tecs へのパスは TECS ジェネレータの所在するパスから割り出されます(exerb 版を除く)。テストコードをビルドする際には、C コンパイラのヘッダパスを指定するために必要です。 |
| 233 | |
| 234 | tecsgen/tecs の所在するディレクトリへのパスを指定します. |
| 235 | TECSPATH で示されるディレクトリ、およびそのサブディレクトリは、import および import_C のサーチパス (-I) の末尾に加えられます. |
| 236 | |
| 237 | Makefile.templ を出力する際に、TECSPATH の設定値が、$(TECSPATH) に置き換えられます. |
| 238 | |
| 239 | tecsgen を B-shell 上で使用する場合、tecsgen/set_env.sh を、set_env.sh の所在するディレクトリで、以下のようにシェルに読み込ませると環境変数 TECSPATH がセットされます. |
| 240 | |
| 241 | % source set_env.sh |
| 242 | |
| 243 | Windows のコマンドプロンプト上では、tecsgen/set_env.bat を、set_env.bat の所在するディレクトリで、以下のように実行することで、環境変数 TECSPATH がセットされます. |
| 244 | |
| 245 | !>> set_env.bat |
| 246 | |
| 247 | === TECS_CPP === |
| 248 | |
| 249 | C プリプロセッサを指定します。オプション -c (--cpp) の説明を参照してください. |
| 250 | |
| 251 | === 言語および文字コードに影響する環境変数 === |
| 252 | |
| 253 | 文字コードを決定する際に、以下の環境変数を参照します. |
| 254 | |
| 255 | LANG, TECS_LANG, TECS_FILE_LANG, TERM |
| 256 | |
| 257 | 「言語および文字コードの決定」の項を参照してください. |