<< 目次を表示 >> ページ位置: Enterprise Architectの拡張 > コード読み込みの独自定義 > 読み込みの文法 |
ソースコードの読み込みを実行すると、ソースコードの内容(文字列)を、意味のある単位での「構造」に分割します。そして、その「構造」の単位で、内容を解釈し、対応するUMLの表現を確定していきます。この文法の基本的な機能として、文字列の内容を分割するルールの定義が挙げられます。Enterprise Architectの読み込みルールの形式として、バッカス-ナウア記法(Backus–Naur Form: BNF)をベースにした形式を採用しています。このBNFの形式に、UMLの表現との関連づけのルールを追加しています。この解釈の結果は、抽象文法ツリー(Abstract Syntax Tree: AST)として表現されます。ASTを完成した後に、その内容を元にUMLのモデルに対応づけていきます。
項目 |
説明 |
コメント |
文法定義内にコメントを追加できます。コメントの書き方は、多くのプログラム言語と同じです。以下はコメントの例です。
// You can comment to the end of a line by adding two /. /* You can comment multiple lines by adding a / and followed by a *. The comment is ended when you add a * followed by a /. */ |
動作指示は、どのように文法解釈を実行するかを指定するために利用します。 多くのプログラム言語における関数のような表現です。通常、文法定義ファイルの最初に配置します。 |
|
ルールは、文法を構成する主要なものです。ルールは1つあるいは複数の定義で構成されます。複数の定義がある場合には、 "|" の区切り文字で区切ります。 ルールは、正しく解釈できる定義が少なくとも1つ含まれる必要があります。ルールの最後には、セミコロン ";" の文字をつけます。 |
|
定義 |
定義は、ルールが採用されうる選択肢を示します。それぞれの定義は1つ以上の用語で構成されます。 |
定義リスト |
定義リストは、1つ以上の定義で構成されます。この定義リストは、解釈する対象のソースコードに対して、定義が合致するかどうかリストに従って確認します。合致するものがなければ、定義リストは満たされないということになります。それぞれの定義は、 | の記号で区切られます。
以下の内容は、定義リストと、そのリストを構成する定義の例です。 <greeting> ::= "hello" | "hi" | ["good"] "morning"; |
用語はルール内で利用されるもので、特定の値であったり、範囲指定の数値や文字だったり、別のルールだったり、あるいはコマンドです。 |
|
コマンドは動作指示と同じように、関数のような形式で表現されます。 特定の方法で対象の文字列を解釈したり、呼び出し元に情報を戻すために利用します。 (参考:モデルとの対応付け) |
参照: