簡體   English   中英

這個語法有什么問題

[英]what's the matter with this grammar

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)

在嘗試讀取SOMETHING並且成功(第二條規則)或失敗(第一條規則)之前,它將如何知道s要使用哪條規則? 這意味着它要求第二個輸入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM