ABNF
ABNFの記述は以下のような生成規則群からなる。
ここで、rule は大文字小文字が区別される非終端記号、definition はその rule を定義する記号列、comment は文書化のためのコメントである。最後尾には必ず CR と LF による改行コードが付属する。
規則名は大文字小文字を区別しない。<rulename> も <RULENAME> も <rUlENamE> も同じ規則を参照している。規則名はいわゆるアルファベット文字で始まり、その後にアルファベット、数字、ハイフンが続く。
山括弧(<と>)は規則名を囲むのに必要とはされていない。しかし、規則名を識別しやすいように山括弧で囲むことが多い。
ABNF は 7ビットASCIIで符号化され、最上位の8ビット目はゼロに設定される。
Rule1 Rule2
規則名を並べることで規則が定義される。
“aba”にマッチする文字列を定義するには、次のような規則群を使用する。
fu = %x61 ; a
bar = %x62 ; b
mumble = fu bar fu
ABNF には、以下の中核規則(core rules)が定義されている。
以上のオペレータの優先順位は次の通り(上にあるほど優先される)。
文字列、名前の形成
コメント
値の範囲
反復
グループ化、オプション
連結
択一
択一オペレータを連結と共に使うと解釈が混乱する可能性があるため、グループ化で優先順位を明示することが推奨される。