簡體   English   中英

由於 epsilon 規則,轉移/減少第一狀態的沖突

[英]Shift/Reduce conflict in first state due to epsilon rule

我在野牛中有轉移/減少沖突。

我檢查了 parser.output 文件:

State 0

0 $accept: . Prog $end

STRUCT  shift, and go to state 1

$default  reduce using rule 6 (Structs)

Prog        go to state 2
Structs     go to state 3
StructDec   go to state 4

我有以下規則:

Prog    :   Structs Funcs {};
Structs :   StructDec Structs | {};
StructDec : STRUCT ID LB StrctMmLst RB SC{};

Prog 是開始符號。

%start Prog

我認為原因是結構的 epsilon 規則。 如何在不改變含義的情況下解決它?

解決方案實際上是查看文件的開頭。 在那里你可以看到沖突狀態的數量。 我正在看的那個根本不是沖突。

暫無
暫無

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

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