メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

コード生成テンプレート (CGT) ファイル

コード生成テンプレート (CGT) ファイルでは、生成されるソース コードとヘッダー ファイルの最上位の編成と形式を定義します。CGT ファイルには次の用途があります。

  • コード ファイルでのカスタム バナー (コメント セクション) の生成。Generate Custom File and Function Bannersを参照してください。

  • CFP テンプレートを使用してカスタム コードを生成するには、CGT ファイルが必要です。CFP テンプレートを使用するには、CGT ファイル構造を理解する必要があります。ただし、多くの場合、既定の CGT ファイルを変更せずに使用できます。

既定の CGT ファイル

コード生成ソフトウェアには、既定の CGT ファイル matlabroot/toolbox/rtw/targets/ecoder/ert_code_template.cgt が用意されています。カスタム CGT ファイルは既定のファイルに基づいて作成します。

CGT ファイルの構造

CGT ファイルは、1 つの必須セクションと 4 つのオプション セクションで構成されます。

コード挿入セクション

(必須) このセクションには、生成されたコードを複数のセクション (Includes セクションや Defines セクションなど) に順序付けて分割することを定義するトークンが含まれます。トークンの形式は次のとおりです。

%<SectionName>

以下に例を示します。

%<Includes>

コード生成ソフトウェアは、必要なトークンの最小限のセットを定義します。これらのトークンは、C または C++ のソース コードまたはヘッダー コードを生成します。これらは "組み込み" トークンです (組み込みのトークンとセクションを参照)。カスタム トークンカスタム セクションを定義することもできます。

各トークンは、生成されたコードの対応するセクションのプレースホルダーとして機能します。トークンの順序は、生成されたコード内で対応するセクションが出現する順序を定義します。トークンを含めない場合、対応するセクションは生成されません。特定のセクションにコードを生成するには、Custom File Processing (CFP) Templatesで説明されているように、CFP テンプレートからコード テンプレート API を明示的に呼び出します。

CGT トークンは、生成されたコードの大まかな編成を定義します。コード テンプレート API を使用すると、サブセクションで説明されているように、各コード セクションを名前付きのサブセクションに分割できます。

コード挿入セクションでは、トークンの間に C または C++ のコメントを挿入することもできます。そのようなコメントは、生成されたコードに直接出力されます。

ファイル バナー セクション

(オプション) このセクションには、カスタム ファイル バナーの生成に使用するコメントとトークンが含まれます。

関数バナー セクション

(オプション) このセクションには、カスタム関数バナーの生成に使用するコメントとトークンが含まれます。

共有ユーティリティ関数バナー セクション

(オプション) このセクションには、カスタム共有ユーティリティ関数バナーの生成に使用するコメントとトークンが含まれます。

ファイル トレーラー セクション

(オプション) このセクションには、カスタム トレーラー バナーの生成に使用するコメントが含まれます。

これらのセクションの詳細については、Generate Custom File and Function Bannersを参照してください。

組み込みのトークンとセクション

次のコード抜粋では、必須の組み込みトークンを含む、既定の CGT ファイルの必須のコード挿入セクションを示します。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Code insertion section (required)
%%   These are required tokens. You can insert comments and other tokens in
%% between them, but do not change their order or remove them.
%%
%<Includes>
%<Defines>
%<Types>
%<Enums>
%<Definitions>
%<Declarations>
%<Functions>

CGT ファイルをカスタマイズする際には、次の要件に注意してください。

  • 必須の組み込みトークンは削除しないでください。

  • 後続の各セクションが前のセクションに依存しているため、組み込みトークンは示されている順序で出現する必要があります。

  • トークンは 1 行に 1 つだけにしてください。

  • トークンを繰り返さないでください。

  • 上記の要件に違反しない限り、コード挿入セクションにカスタムのトークンとコメントを追加できます。

メモ

CGT ファイルを変更してからモデルをリビルドしても、コード生成プロセスは最上位モデルのビルドを強制しません。コードを再生成するには、最上位モデル コードの強制的な再生成を参照してください。

次の表は、組み込みトークンと対応するセクション名をまとめたものであり、コード セクションについて説明しています。

組み込みの CGT トークンと対応するコード セクション

トークンとセクション名

説明

Includes

#include 命令セクション

Defines

#define 命令セクション

Types

typedef セクション。Typedefs は、前に定義した型に依存できます

Enums

列挙型セクション

Definitions

データ定義 (たとえば、double x = 3.0;)

Declarations

データ宣言 (たとえば、extern double x;)

Functions

C または C++ 関数

サブセクション

任意のセクションに対して 1 つ以上の名前付きサブセクションを定義できます。一部の組み込みセクションには、組み込みセクション用に定義されたサブセクションの表にまとめられている事前定義されたサブセクションがあります。

メモ

セクションとサブセクションは、CGT ファイルにリストされている順序でソース ファイルまたはヘッダー ファイルに出力されます。

カスタム セクション機能を使用して、追加のセクションを定義できます。Generate a Custom Sectionを参照してください。

組み込みセクション用に定義されたサブセクション

セクション

サブセクション

サブセクションの説明

Includes

N/A

 

Defines

N/A

 

Types

IntrinsicTypes

固有型の typedef セクション。固有型は、C または C++ の固有型にのみ依存します。

Types

PrimitiveTypedefs

プリミティブ型の typedef セクション。プリミティブ型の typedef は、C または C++ の固有型と、IntrinsicTypes セクションで前に定義された typedef にのみ依存します。

Types

UserTop

このセクションには、それより前のセクションに依存するコードを含め、任意の型のコードを配置できます。

Types

Typedefs

typedef セクション。Typedef は、前に定義された型に依存できます。

Enums

N/A

 

Definitions

N/A

 

Declarations

N/A

 

Functions

 

C または C++ 関数

Functions

CompilerErrors

#error 命令

Functions

CompilerWarnings

#warning 命令

Functions

Documentation

ドキュメンテーション (コメント) セクション

Functions

UserBottom

このセクションには任意のコードを配置できます。