s : cmd
| cmd SOMETHING
cmd :WORD
WORD 和 SOMETHING 是非空终结符
这是一个 LR1 语法,所以野牛应该毫无问题地解析它。
但是我在运行时遇到了一个意想不到的问题:程序提示输入两次,例如,当我输入“qwerty”时,它提示输入第二个输入,当我尝试调试它时,我得到了这个:
Starting parse
Entering state 0
Reading a token: qwerty
Next token is token WORD
Shifting token WORD
Entering state 1
Reducing stack by rule 3 (line 20):
$1 = token WORD ()
-> $$ = nterm cmd ()
Stack now 0
Entering state 3
Reading a token:
(asks for input a second time)