[1] [[JIS X 3015]]:2005 ([[C#]], [[IDT]] [[ISO/IEC 23270]]:2003)
は[[文法]]の定義に次のような表記法を使っています
[SRC[[[JIS X 3015]]:2005 5.]]。

- [CODE(ABNF)[[DFN[文法]] := *文法規則]]
- [CODE(ABNF)[[DFN[文法規則]] := 構文文法式 / 字句文法式]]
- [CODE(ABNF)[[DFN[構文文法式]] := 左辺 ":" (改行 右辺 / 多数選択)]]
-- 右辺で左辺を定義。
- [CODE(ABNF)[[DFN[字句文法式]] := 左辺 "::" (改行 右辺 / 多数選択)]]
-- 右辺で左辺を定義。
- [CODE(ABNF)[[DFN[多数選択]] := "次のいずれか" 改行 1*(水平空白 選択肢) 改行]]
-- [Q[余りにも個数が多い場合に]]使用。
- [CODE(ABNF)[[DFN[左辺]] := 非終端記号]]
- [CODE(ABNF)[[DFN[右辺]] := 1*(水平空白 選択肢 改行)]]
- [CODE(ABNF)[[DFN[選択肢]] := 項 *(水平空白 項) / 文章による説明]]
-- 表記法の章に説明がありませんが、
完全に人間向けの文で記述されているものが多々あります。
-- 文章の説明の中に非終端記号が含まれているものもあります。
- [CODE(ABNF)[[DFN[項]] := (非終端記号 / 終端記号) [省略可能] ]]
- [CODE(ABNF)[[DFN[省略可能]] := [SUB@en[opt]]]]
-- 終端記号の後に付けられるのかは明記されておらず、
実際にそのような例はありません。
- [CODE(ABNF)[[DFN[非終端記号]] := "《" 1*文字 "》"]]
-- [[JIS]] では日本語に訳されています。
-- [[英数字]]と[[仮名漢字]]の他に [CODE(char)[#]] も使われています。
- [CODE(ABNF)[[DFN[終端記号]] := <1*([CODE(char)[[[U+0020]]]]〜[CODE(char)[[[U+007F]]]]) ([Q[[[タイプライタ体]]]])>]]
-- さすがに [CODE(char)[[[U+0020]]]] や [CODE(char)[[[U+007F]]]]
を終端で使っている例はありません。




