Production

ecma262 - nonterminal-symbols-and-productions

非終端記号の定義。日本語では生成規則などと呼ばれたりする。

左辺に定義対象の非終端記号、右辺には非終端記号と終端記号の任意の組み合わせ、左辺と右辺の間には Punctuation 記号、という記法で書かれる。

Punctuation 記号は1つ以上のコロン (:) が使われる。コロンの数の違いについては後述。

なお、右辺の改行は or を意味する。

また、右辺には再帰的に左辺の非終端記号が登場する場合もある。

終端記号 - Terminal symbol

それ以上分解できないシンボル。等幅フォントの場合はその表記文字通りのトークンを表す。

非終端記号 - NonTerminal symbol

非終端記号と終端記号の任意の組み合わせで定義されるシンボル。

(雑に言うと、構文を表す変数。)

Punctuation

  • Syntactic Grammar は :
  • Lexical and RegExp Grammars は ::
  • Numeric String Grammar は :::

Todo

  • opt とか Grammatical Parameters についての補足を書く
  • await とか yield についての補足を書く
Links to this page
  • Context-Free Grammars

    → 関連: Production

    例: 「数字とは 0, 1, 2, …, のいずれかである」や「小数とは 符号, 数字の連続, 小数点, 数字の連続…」, のような文法の定義。その定義ひとつひとつを Production (生成規則) と呼ぶ。

  • Chain production

    また、改行だけでなく他にも opt 等、 Production にはいろいろショートハンドがあるので chain production になるものを見落としがちなことに要注意。

    上記の Production はパッと見だと右辺に 3 つの NonTerminal があるので chain production ではないように見えるかもしれないが、実際は下記のようにショートハンドを展開できるため、 3 つの別々の chain production が上記の定義には含まれている。

    右辺に含まれる非終端記号(NonTerminal)が 1 つだけな Production のこと。(終端記号の数は問わない)

#esspec/production #esspec/cfg