6.12 文法における導出の表示

形式文法における導出 (producution) を表示するために、特殊なマークアップ を使えます。マークアップは単純なもので、 BNF (やその派生形) の 全ての側面をモデル化しようとはしていませんが、 シンボルを記述するとそのシンボルの定義へのハイパーリンクになるような 表示を文脈自由文法に対して実現しています。 環境が一つと、二つのマクロがあります:

\begin{productionlist} [language]
\end{productionlist}
この環境は、ひとまとまりの導出規則を囲むために使います。 この環境ではマクロを二つだけ定義しています。ドキュメントで 二つ以上の言語について説明する場合、オプションのパラメタ language を使って、言語間で導出規則を区別せねばなりません。パラメタの値は ファイル名の一部に使えるような短い名前にせねばなりません; コロンや、 複数のプラットフォーム間で同時にファイル名に使えないような文字は 含めてはなりません。

\production {name}{definition}
文法における導出規則です。導出規則は、namedefinition であると定義します。name にはマークアップを入れてはならず、 ハイフンを使った一つ以上の文法のサポートは定義されていません。 一つの \production には単一のシンボルだけを定義できます -- 複数シンボルの定義を行ってはなりません。

\token {name}
\production マクロが定義しているシンボルの名前で、 シンボルのdefinition の中で使います。シンボルname は 可能な場合にはシンボル定義へのハイパーリンクになります。

必ずしも文法全体を単一の\productionlist 環境に定義する必要は ないので注意してください; 任意の数のグループを作って文法を 記述してかまいません。\token を使う場合には常に \production と対応付けせねばなりません。

以下はPython リファレンスマニュアル からとった例です:

\begin{productionlist}
  \production{identifier}
             {(\token{letter}|"_") (\token{letter} | \token{digit} | "_")*}
  \production{letter}
             {\token{lowercase} | \token{uppercase}}
  \production{lowercase}
             {"a"..."z"}
  \production{uppercase}
             {"A"..."Z"}
  \production{digit}
             {"0"..."9"}
\end{productionlist}

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。