[5] [DFN@en[[[ABNF]]]] ([DFN[[[Augmented Backus–Naur form]]]]) は、[[文脈自由言語]]の記述方式の一種です。 多くの [[RFC]] で[[プロトコル要素]]の構文記述のために用いられています。 * 仕様書 [6] [[IETF]] として正式な [[ABNF]] の定義は[[インターネット標準]]である [[STD 68]] ([[RFC 5234]]) でなされています。 [7] [[ABNF]] は歴史的に様々な変種があります。 [[RFC 5234]] に至る「標準的」な [[ABNF]] は、そもそも[[電子メイル]]の仕様である [[RFC 822]] の一部として規定されていた構文が独立した仕様になったものです。 [[RFC 822]] ([[STD 11]]) → [[RFC 2234]] → [[RFC 4234]] → [[RFC 5234]] ([[STD 68]]) [[RFC 822]] と [[RFC 2234]] の間には多少の追加等があります ([[RFC 2234のABNF]] の項を参照。) [[RFC 2234]] 以後は [[ABNF]] の構文そのものに変化はありません。 * 構文 [10] 他の [[BNF]] に対する [[ABNF]] の特徴は、 - 選択に「[CODE(ABNF)[[[/]]]]」を使う - 反復に「[CODE(ABNF)[[VAR[n]]*[VAR[m]][VAR[E]]]]」のように「[CODE(char)[[[*]]]]」を使う ... ということでしょう。詳しくは各変種の項を参照してください。 * 様々な ABNF [8] [[ABNF]] の主な変種は次の通りです。各項には更にそれぞれの変種についての言及があります。 -[[RFC 822のABNF]] -[[HTTPのABNF]] -[[RFC 2141のABNF]] / [[RFC 4617のABNF]] - [[RFC 2234のABNF]] = [[RFC 4234のABNF]] = [[RFC 5234のABNF]] - [[P3PのABNF]] - [[拡張ABNF]] -[[LEIRIのABNF]] 以上は一般の[[プロトコル要素]]の構文の記述に利用可能なものですが、 特定の[[応用]]に対象を絞ったものもあります。 - [4] [[RFC 3588のABNF]] -[[SRGSのABNF]] * See also [9] [[BNF]]、[[EBNF]] の項も参照してください。 - [1] [WEAK[2002-12-21 20:15]] ''[[名無しさん]]'': ''ABNF Validator'' - [2] [WEAK[2002-12-21 20:16]] ''>>1'': 界面としてはいいとはいえない。今後に期待。 - [3] >>2 確かに [[AHL]] とか [[W3C]] の Validator に慣れてるとこれはなんかの間違いかと思うよね。