Ich mag würde eine LR (1) Grammatik in BNF Form für die Sprache, die von diesen beiden Regeln von The Complete Syntax of Lua beschrieben schreiben:LR (1) BNF-Grammatik für Funktionsparameter mit Elipsis nachlauf
parlist ::= namelist [`,´ `...´] | `...´
namelist ::= Name {`,´ Name}
I versucht habe, die folgenden Grammatiken, sondern nach dem Werkzeug ich verwende, sind beide "nicht LR (1) aufgrund shift-reduce conflict":
parlist ::= namelist
parlist ::= namelist , ...
parlist ::= ...
namelist ::= Name namelist1
namelist1 ::= , Name namelist1
namelist1 ::= <epsilon>
parlist ::= namelist
parlist ::= namelist , ...
parlist ::= ...
namelist ::= namelist1 Name
namelist1 ::= namelist1 Name ,
namelist1 ::= <epsilon>
Gibt es eine LR (1) Grammatik in BNF-Form für diese Sprache?
Warum bist du nicht mit 'Namensliste :: = Name' und' Namensliste :: = Namensliste, Name' Regeln? –