読み込みの文法

<< 目次を表示 >>

ページ位置:  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";

用語

用語はルール内で利用されるもので、特定の値であったり、範囲指定の数値や文字だったり、別のルールだったり、あるいはコマンドです。

コマンド

コマンドは動作指示と同じように、関数のような形式で表現されます。

特定の方法で対象の文字列を解釈したり、呼び出し元に情報を戻すために利用します。

(参考:モデルとの対応付け)

 

 

参照: