Changes between Version 1 and Version 2 of tecsgen


Ignore:
Timestamp:
Nov 12, 2016, 12:00:59 PM (7 years ago)
Author:
okuma-top
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • tecsgen

    v1 v2  
    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
     5tecsgen  -- TECS ジェネレータ
     6
     7== 使用方法 ==
     8
     9以下の、使用方法があります.
     10
     11=== tecsgen を呼出す ===
     12
     13% tecsgen [OPTION] CDL-File
     14
     15=== 明示的に exerb 版を呼出す ===
     16
     17V1.3 以降 exerb 版は、サポートされなくなりました。
     18
     19% tecsgen.exe [OPTION] CDL-File
     20
     21実行モジュールの拡張子 .exe を付加して呼び出します.
     22Windows 上のみで使用可能です.Ruby インタプリタをインストールすることなく用いることができます。
     23
     24=== 明示的に Ruby スクリプトを呼出す ===
     25
     26% ruby [PATHtoTECSGEN]/tecsgen.rb CDL-File
     27
     28[PATHtoTECSGEN] は TECS ジェネレータ (tecsgen) のインストールディレクトリへのパスです.
     29この呼出し形式は、TOPPERS プロジェクトで作成された各種パッケージで、見らることがあります。
     30
     31== 説明 ==
     32
     33TECS ジェネレータ tecsgen は、TECS コンポーネント記述言語 (TECS CDL) に基づき記述された CDL-File を入力とし、インタフェースコードなどを生成します.
    1634
    1735以下のオプションを指定できます.
     
    1937    -D, --define=def
    2038        import_C でヘッダファイルを取込む際の C のプリプロセッサに与え
    21         る define を定義します.ここで指定されたものは tecsgen の出力
    22         Makefile.templ のコンパイルコマンドの引数に引き継がれます.
    23 
     39        るマクロ (define) を定義します.ここで指定されたものは tecsgen
     40        の出力 Makefile.templ のコンパイルコマンドの引数に引き継がれま
     41        す.
     42        -D は複数指定することができます.
     43   
    2444    -G, --generate-region=path
    2545        コード生成するリージョンを限定します.指定されたリージョンのみ
    26         コード生成されます.複数のリージョンを指定することができます.
    27         コード生成するリージョンからコード生成しないリージョンへの結合
    28         は、エラーとなります.
    29 
    30     -I, --improt-path=path
     46        コード生成されます.-G を繰り返すことで、複数のリージョンを指定
     47        することができます.コード生成するリージョンからコード生成しな
     48        いリージョンへの結合は、エラーとなります.
     49   
     50    -I, --import-path=path
    3151        import で取込む CDL ファイルのパス、および import_C でヘッダファ
    3252        イルを取込む際に C のプリプロセッサに与える include パスを指
     
    3656        ここで指定されたものは tecsgen の出力 Makefile.templ のコンパ
    3757        イルコマンドの引数に引き継がれます.
    38 
     58        -I は複数指定することができます.
     59   
    3960    -L, --library-path=path
    40         (obsolete) ruby のライブラリパスを指定します.環境変数 RUBYLIB
    41         でも指定できます.tecsgen/tecslib へのパスが指定される必要が
    42         あります.
    43         tecsgen.rb のパスから tecsgen/tecslib へのパスを求めるため、通
    44         常このオプションを指定する必要はなくなりました (V1.2.1.4).
    45         TECS ジェネレータに付属していないプラグインを呼び出す場合には、
    46         このオプションでプラグインの所在を指定する必要があります(Ruby
    47         1.8 では不要)。
    48 
    49     -R, --RAM-initializer            generate RAM initializer
     61        ruby のライブラリパスを指定します.環境変数 RUBYLIB でも指定で
     62        きます.generator/tecslib へのパスが指定される必要があります.
     63   
     64    -R, --RAM-initializer
    5065        RAM の初期値を設定するための初期化コードが生成されます.本オプ
    5166        ションが指定された場合 RAM 領域は未初期化変数として出力される
    5267        ため、初期化コードを実行する必要があります.初期化コード
    53         INITIALIZE_TECS() (global_tecsgen.h にマクロ定義) を呼び出
    54         すことにより初期化されます.
     68        INITIALZE_TECS() (global_tecsgen.h にマクロ定義) を呼び出す
     69        ことにより初期化されます.[[BR]]
    5570        RAM only オプション -r が指定された場合、本オプションは無視さ
    56         れます.
    57 
     71        れます.[[BR]]
     72        tecsgen V1.2.* までの初期化コードは INITIALZE_TECSGEN() でし
     73        た。tecsgen V1.3 以降でも INITIALZE_TECS() の別名として
     74        INITIALZE_TECSGEN() が定義されます。
     75        tecsgen V1.3 以降では -R の指定に関わらず INITIALZE_TECS()マク
     76        ロが定義されます。-R の指定に関わらず、TECS コンポーネントを呼
     77        び出す前に INITIALZE_TECS() を呼び出すようにしてください。
     78   
    5879    -U, --unoptimize
    5980        最適化を無効にします.
    60 
     81   
    6182    -c, --cpp=cpp_cmd
    62 
    6383        C プリプロセッサコマンドを指定します.デフォルトでは
    64         'gcc -E -D TECSGEN' です.
    65         環境変数 TECS_CPP により指定することができます.
    66 
     84        'gcc -E -D TECSGEN' です.環境変数 TECS_CPP により指定することが
     85        できます.[[BR]]
     86        tecsgen V1.2.* までのデフォルトは 'gcc -E -D TECS' でした.
     87   
    6788    -d, --dryrun
    6889        処理を実行しますがインタフェースコードは生成されません.TECS
    6990        コンポーネント記述の文法誤りをチェックすることができます.
    70 
     91   
    7192    -f, --force-overwrite
    7293        出力を強制上書きします.デフォルトでは、内容に変化のあった出力
    7394        ファイルのみ更新します.
    74 
     95   
    7596    -g, --gen=dir
    7697        インタフェースコードなどを生成するディレクトリを指定します.デ
    7798        フォルトでは、カレントディレクトリの下の 'gen' ディレクトリに
    7899        出力されます.
    79 
     100   
    80101    -i, --idx_is_id
    81102        すべての celltype で指定子 idx_is_id が指定されたものとして扱
    82103        います.
    83 
     104   
    84105    -k, --kcode=code
    85106        文字コードを指定します.code は euc, sjis, none, utf8 のいずれ
    86         かを指定可能です.
    87         通常 LANG 環境変数で指定します。
    88 
    89     -o, --old-mode
    90         古い TECS 仕様のコードを生成します.
    91         古い仕様では int8_t -> tecs_int8 などに変換されました.
    92 
     107        かを指定可能です.デフォルトは euc です.
     108        (exerb 版では sjis がデフォルトになります)
     109   
    93110    -r, --ram
    94111        RAM のみで動作するコードを生成します.デフォルトでは attribute
    95112        など ROM (const)領域に配置するコードが生成されます.
    96 
     113   
    97114    -s, --show-tree
    98115        パースツリーを表示します.
    99116        tecsgen のデバッグに使用します.
    100 
     117   
    101118    -t, --generator-debug
    102119        tecsgen のデバッグする場合に使用します.パーサーが取込んだトー
     
    106123        合、どのfactory でエラーが発生したかを知るための情報が表示され
    107124        ます.
    108 
     125   
    109126    -u, --unique-id
    110127        idx_is_id により付与される ID (整数)は、デフォルトでは各セル
    111128        タイプごとに 1 から始まる番号が割付けられます.本オプションが
    112129        与えられた場合、すべてのセルで異なる ID が割付けられます.
    113 
     130   
    114131    -v, --verbose
    115132        いくらかの情報を出力します.
     
    119136        ・C プリプロセッサコマンド
    120137        ・セルタイプごとの実施された最適化
    121 
     138   
    122139    -y, --yydebug
    123140        tecsgen のパーサー部をデバッグするために使用します.bnf.tab.rb
    124141        のかわりに bnf-deb.tab.rb が使用されます.
    125 
     142   
    126143    --no-banner
    127144        バナーを表示しません.
    128 
     145   
    129146    --version
    130147        tecsgen の version を表示します.
    131 
     148   
    132149    --generate-all-template
    133150        すべてのセルタイプのテンプレートを生成します.
     
    135152        再利用されているセルタイプ(import時、山括弧文字列 <file.cdl>
    136153        指定されている)のテンプレートを生成しません.
    137 
     154   
    138155    --generate-no-template
    139             テンプレートを生成しません(セルタイプ、 Makefile とも).
    140         --generate-all-template と同時指定された場合、このオプションが
     156        テンプレートを生成しません(セルタイプ、 Makefile とも).
     157        オプション --generate-all-template と同時指定された場合、このオプションが
    141158        優先されます.
    142 
     159   
    143160    --no-default-import-path
    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        ヘッダファイル名が不一致になる可能性がある点に注意してください.
    153175
    154176以下のものが出力されます.
    155177
    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
     203tecsgen は、文字コードの指定を以下の順に調べていき、最後に設定されていたものの言語および文字コードの指定が有効となります.
     204
     205 * codepage (exerb 版かつ TERM 環境変数未設定または TERM=cygwin の場合のみ)
     206 * 環境変数 LANG
     207 * 環境変数 TECSGEN_LANG, TECSGEN_FILE_LANG
     208 * オプション -k
     209
     210TECSGEN_LANG はエラーメッセージ、ファイル文字コードの両方に影響します.
     211ただし、LANG と TECSGEN_LANG が相違する場合、エラーメッセージが正しく表示されない可能性が高いので、よくわからない場合は設定しないようにしてください.
     212
     213TECSGEN_FILE_LANG はファイル文字コードのみ影響します.
     214
     215-k で euc, sjis が指定された場合、TECSGEN_FILE_LANG=ja_JP.eucJP または ja_JP.sjis が仮定されます.
     216utf8, 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
     228tecsgen は、以下の環境変数を参照します.
     229
     230=== TECSPATH ===
     231
     232【補足説明】TECS ジェネレータ V1.2.1.4 以降、TECSPATH は、必ずしも設定する必要はありません。tecsgen/tecs へのパスは TECS ジェネレータの所在するパスから割り出されます(exerb 版を除く)。テストコードをビルドする際には、C コンパイラのヘッダパスを指定するために必要です。
     233
     234tecsgen/tecs の所在するディレクトリへのパスを指定します.
     235TECSPATH で示されるディレクトリ、およびそのサブディレクトリは、import および import_C のサーチパス (-I) の末尾に加えられます.
     236
     237Makefile.templ を出力する際に、TECSPATH の設定値が、$(TECSPATH) に置き換えられます.
     238
     239tecsgen を B-shell 上で使用する場合、tecsgen/set_env.sh を、set_env.sh の所在するディレクトリで、以下のようにシェルに読み込ませると環境変数 TECSPATH がセットされます.
     240
     241  % source set_env.sh
     242
     243Windows のコマンドプロンプト上では、tecsgen/set_env.bat を、set_env.bat の所在するディレクトリで、以下のように実行することで、環境変数 TECSPATH がセットされます.
     244
     245  !>> set_env.bat
     246
     247=== TECS_CPP ===
     248
     249C プリプロセッサを指定します。オプション -c (--cpp) の説明を参照してください.
     250
     251=== 言語および文字コードに影響する環境変数 ===
     252
     253文字コードを決定する際に、以下の環境変数を参照します.
     254
     255  LANG, TECS_LANG, TECS_FILE_LANG, TERM
     256
     257「言語および文字コードの決定」の項を参照してください.
    186258
    187259------