[1] DocBook には EBNF をマークするための optional な語彙があります。
productionset (共通属性; ((title, titleabbrev?)?, (production | productionrecap)+)):
生成規則集合。production (共通属性;
(lhs, rhs, constraint*)):
生成規則を表します。lhs (共通属性; PCDATA: 非終端記号名):
左辺を記述します。rhs (共通属性; (#PCDATA | lineannotation | nonterminal | sbr)*):
右辺を記述します。注釈は lineannotation で、
非終端記号は nonterminal で、
改行候補箇所は sbr で記述します。
それ以外は直接文字データとして記述します。nonterminal (@def=URI参照:
必須: 定義への参照, 共通属性; PCDATA: 非終端記号名):
非終端記号を表します。文法規則外の文章でも使えます。constraint (@linkend=IDREF: 必須, 共通属性; 強制空要素):
文法的に表現できない制約を参照します。productionrecap (@linkend=IDREF: 必須: production, 共通属性; 強制空要素):
生成規則の複製を挿入します (主として読者の理解のための再掲)。constraintdef (共通属性; (title, ブロック系)):
文法的に表現できない制約を記述します。
文法規則外の文章の一部として記述できます。内容も普通の文章です。