Yacc,if if / else语法的if部分的不同执行

时间:2011-12-14 04:01:15

标签: yacc

以下代码给出“IFST2规则由于混乱而无用”错误。我试图打印不同的东西if if和if / else块的一部分。我怎样才能做到这一点?

 IFST1:IF     {printf("if begin");};
 IFST2:IF     {printf("ifelse begin");};
 ELSEST:ELSE {};


singlestatement:
  '{' statement '}';
|
IFST1 '(' expr ')' singlestatement ELSEST singlestatement {};
|
IFST2 '(' expr ')' singlestatement %prec IFX {};

1 个答案:

答案 0 :(得分:1)

检查this以获取有关该问题的一般帮助。我认为你必须“专门化”你的案子以匹配一般形式。虽然这是野牛而不是YACC,但它们都是LALR解析器生成器。