EBNF
ISO 14977 で標準化された EBNF では、拡張を可能とする2つのファシリティが述べられている。第一は EBNF 文法の一部として、疑問符で挟まれた任意のテキストを EBNF 標準の解釈範囲外とするものである。例えば、空白文字は以下のような規則で定義できる。
第二は、EBNF では括弧を識別子(終端記号や非終端記号)に続けて配置することができないという事実を利用する。次の表現は EBNF としては正しくない。
そこで、このような記法を EBNF の拡張として利用する。例えば、LISPの文法における function application は次の規則で定義される。
代入文しかない単純なプログラミング言語を EBNF で定義した例を以下に示す。
この場合、文法的に正しいプログラムは次のようになる。
この言語は容易に制御構造や数式や入出力命令を持つように拡張できる。そうすると、小型の実用可能なプログラミング言語の仕様が完成する。
標準的な表記で使うよう提案されている文字を以下の表に示す。