課題で構成される非常に単純な言語のLALR文法を作成しようとしています。例えば:
foo = "bar"
bar = 42
言語は、値のリストも処理する必要があります。次に例を示します。
foo = 1, 2, 3
しかし、私は複数行のリストも処理したいと思います。
foo = 1, 2
3, 4
末尾のコンマ(シングルトンと言語の柔軟性のため):
foo = 1,
foo = 1, 2,
そして明らかに、両方同時に:
foo = 1,
2,
3,
末尾のコンマまたは複数行のリストを使用して文法を書くことはできますが、両方を同時に書くことはできません。
私の文法は次のようになります。
content : content '\n'
: content assignment
| <empty>
assignment : NAME '=' value
| NAME '=' list
value : TEXT
| NUMBER
list : ???
注:この種のコードを禁止するには、文法に「\n」が必要です。
foo
=
"bar"
よろしくお願いします、
アントワーヌ。