凡例
定義ファイルの文法解説には以下のような記号、演算子を使用します。
::=
生成規則を表します。左辺の記号が右辺の規則により展開されます。並んで複数の規則が記述されている場合には、いずれかを適用します。
non-terminal-symbol
斜体は非終端記号です。リンク先を参照し、生成規則を適用します。
terminal-symbol
黒字は終端記号です。そのまま書きます。
symbolN
指定された規則を N 回適用します。
symbolN+
指定された規則を N 回以上適用します。
symbol*
指定された規則を 0 回以上適用します。
symbolopt
指定された規則は省略可能です。
symbolcond
指定された規則を条件により適用します。詳細は解説を参照してください。
letterA〜letterB
指定された文字 letterA から letterB までの間で任意の文字を選択します。
( ... )
括弧内の演算子を優先的に評価します。
symbol1 | symbol2 | ...
区切られた規則のうちいずれかを適用します。
空白の扱い
定義ファイルにおいて、半角・全角スペース、改行 (CR, LF, CR+LF) およびタブは空白とみなされ、単語や記号の間に自由に挿入することができます。例えば、Turn = yes ; と書くのも Turn=yes; と書くのも同じ意味になります。しかし、見易さのために = の前後や , の後には半角スペースを入れることを推奨します。また、中括弧 { } で囲まれた部分は、入れ子のレベルに応じて行頭にタブを加える「インデント」を行うと飛躍的に定義が読みやすくなります。
コメント
定義ファイルにおいて、/* と */ に囲まれた部分、および各行の // 以降はコメントとみなされ、解釈されません。定義ファイルの記述に説明や注釈を書き込みたい場合や、一時的に記述を無効にしたい場合に使用します。
単位系について
定義において距離を指定する場合、特に断りがない限りメートル [m] 単位で指定します。速度は特に指定がない限り時速 [km/h]、角度は 360°分法 [deg] で指定します。