Advertisement

tiger语法分析无意义

阅读量:

基于bison工具对tiger语言进行语法分析的实现,仅用于检测语法错误,不涉及语义处理。

shift/reduce 冲突:
依据教材提供的语法规则编写tiger.y文件后,出现了三种类型的shift/reduce冲突。

一、else悬空问题

复制代码
       exp : IF exp THEN exp .
       | IF exp THEN exp . ELSE exp
    
      
      
    

可通过赋予else比then更高的优先级来消除该问题,但需注意其优先级不应超过运算符号的等级。

二、:=、. 、 of

复制代码
    exp: exp . PLUS exp
       | exp . MINUS exp
       ....
       | lvalue ASSIGN exp .
    
    
     PLUS    shift, and go to state 38
     MINUS   shift, and go to state 39
     ....
     PLUS      [reduce using rule 42 (exp)]
     MINUS     [reduce using rule 42 (exp)]
    
      
      
      

全部评论 (0)

还没有任何评论哟~