| 1 | == 前置部 == |
| 2 | |
| 3 | 型定義など、前方参照できないため、参照される前に記述する必要があります。 |
| 4 | |
| 5 | 概ね CDL ファイルの始めの部分に記述されるため前置部と呼びます。 |
| 6 | |
| 7 | 前置部には、以下のものを記述することができます。 |
| 8 | |
| 9 | * [#import_C C 言語ヘッダのインポート(import_C)] |
| 10 | * [#import CDL ファイルのインポート(import)] |
| 11 | * [#typedef 型定義(typedef)] |
| 12 | * [#struct 構造体(struct)] |
| 13 | * [#enum 列挙 (enum)] |
| 14 | * [#const 定数(const)] |
| 15 | |
| 16 | === [=#import_C] C 言語ヘッダのインポート(import_C) === |
| 17 | |
| 18 | C 言語で記述したヘッダファイルをインポートするには import_C を用います。 |
| 19 | |
| 20 | 【記述例】 |
| 21 | |
| 22 | {{{ |
| 23 | import_C( "my_header.h" ); |
| 24 | }}} |
| 25 | |
| 26 | 実際に取り込まれるのは、型定義 (typedef) だけです。 |
| 27 | |
| 28 | マクロ定義 (#define) を含め、その他の記述は、取り込まれません。 |
| 29 | |
| 30 | 【注意】 マクロ定義の参照には C_EXP を用いる。セルタイプの属性の項を参照。 |
| 31 | |
| 32 | 【注意】 C++ 言語のヘッダファイルを取り込むことは、できない。 |
| 33 | |
| 34 | === [=#import] CDL ファイルのインポート(import) === |
| 35 | |
| 36 | CDl ファイルをインポートするには import を用います。 |
| 37 | |
| 38 | CDL ファイルを再利用する部分と、アプリケーション固有の部分に分けて記述する場合や、 |
| 39 | CDL ファイルを分割して記述したい場合に用います。 |
| 40 | |
| 41 | 再利用する部分の CDL ファイルをインポートするには、以下のように記述します。 |
| 42 | |
| 43 | 【記述例】 |
| 44 | |
| 45 | {{{ |
| 46 | import( <reusable.cdl> ); |
| 47 | }}} |
| 48 | |
| 49 | 【補足】この場合、resuable.cdl 内に記述されたセルタイプは、すでに作成済とみなされ、TECS ジェネレータはテンプレートファイルを生成しない。 |
| 50 | |
| 51 | CDL ファイルを分割して記述したい場合は、以下のように記述します。 |
| 52 | |
| 53 | 【記述例】 |
| 54 | |
| 55 | {{{ |
| 56 | import( "appl.cdl" ); |
| 57 | }}} |
| 58 | |
| 59 | 【補足】この場合 appl.cdl 内に記述されたセルタイプは、開発中とみなされ、TECS ジェネレータはテンプレートコードを生成する。 |
| 60 | |
| 61 | === [=#typedef] 型定義(typedef) === |
| 62 | |
| 63 | 型定義は、C 言語と同様です。 |
| 64 | |
| 65 | 【記述例】 |
| 66 | |
| 67 | {{{ |
| 68 | typedef double64_t LengthM; |
| 69 | typedef double64_t WeightKg; |
| 70 | typedef int64_t size64_t; |
| 71 | }}} |
| 72 | |
| 73 | === [=#struct] 構造体(struct) === |
| 74 | |
| 75 | 構造体のタグとメンバーの記述は、C 言語と同様です。 |
| 76 | |
| 77 | 【記述例】 |
| 78 | |
| 79 | {{{ |
| 80 | struct tag { |
| 81 | int8_t count; |
| 82 | }; |
| 83 | }}} |
| 84 | |
| 85 | 【補足】構造体変数を定義することはできません。 |
| 86 | |
| 87 | === [=#enum] 列挙 (enum) === |
| 88 | |
| 89 | 【注意】実装されていません。 |
| 90 | |
| 91 | === [=#const] 定数(const) === |
| 92 | |
| 93 | 定数は、C 言語の定数と同様に記述します。 |
| 94 | |
| 95 | 【記述例】 |
| 96 | |
| 97 | {{{ |
| 98 | const double64_t PI = 3.14159265; |
| 99 | }}} |
| 100 | |
| 101 | 定数は、CDL ファイル内の式を記述するところで参照できます。 |
| 102 | |
| 103 | 【補足】TECS ジェネレータは、定数を global_tecsgen.h のマクロとして出力する。 |
| 104 | |
| 105 | |
| 106 | ----- |
| 107 | [TECS リファレンスマニュアル [wiki: トップページ]]・ |
| 108 | [TECS CDL リファレンスマニュアル [wiki:CDLref トップページ]・[wiki:CDLref_index 目次]] |