ml-yacc

    0熱度

    1回答

    我正在使用ML-Yacc在SML中處理我的Tiger compiler的解析器組件。我找不到任何明顯的語法問題(我使用優先規則來解決所有移位 - 縮減衝突),但似乎從來沒有減少使用lvalue的第二條和第三條規則,我已經指定如下: lvalue : ID () | lvalue DOT ID () | lvalue LBRACK exp RBRACK()

    1熱度

    2回答

    我正在經歷在Appel的「ML中的現代編譯器實現」一書中生成Tiger Parser的Ch3編程練習。我的tiger.grm文件是here。我試圖診斷的錯誤是由一元和二元減算子的規則引起的減少 - 減少衝突。這裏是YACC錯誤: error: state 128: reduce/reduce conflict between rule 48 and rule 46 on OR error: st

    0熱度

    1回答

    這是錯誤: 12 shift/reduce conflicts error: state 34: shift/reduce conflict (shift OR, reduce by rule 11) error: state 34: shift/reduce conflict (shift AND, reduce by rule 11) error: state 34: shift/re

    1熱度

    2回答

    我已經創建了其具有以下語法一個語言的編譯器,通過ML-Yacc的定義衝突(起始符號是「程序」,這是在底部定義): %nonassoc FUN VAR ASSIGN PLUSASSIGN MINUSASSIGN TIMESASSIGN DIVIDEASSIGN %right ELSE %left OR %left AND %nonassoc EQ NEQ GT LT GE L