0
s : cmd
| cmd SOMETHING
cmd :WORD
WORD和什么事都是非空终端什么是这个语法
这是一个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)
它基于$这里的标记输入结束的前视符号 – 2012-01-11 17:02:40
但它仍然需要检查符号,它涉及要求输入。 – 2012-01-26 19:45:33