Je voudrais écrire une grammaire LR (1) sous forme BNF pour la langue décrite par ces deux règles de The Complete Syntax of Lua:LR (1) grammaire BNF pour les paramètres de fonction avec elipsis arrière
parlist ::= namelist [`,´ `...´] | `...´
namelist ::= Name {`,´ Name}
J'ai essayé le suivant grammaires, mais selon l'outil que je me sers, les deux sont « non LR (1) en raison de la touche Maj enfoncée réduire les conflits »:
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>
Existe-t-il une grammaire LR (1), sous forme BNF, pour cette langue?
Pourquoi n'êtes-vous pas en utilisant 'namelist :: = NAME' et' namelist :: = namelist, les règles NAME'? –