我想解析一组表达式,例如:X[3], X[-3], XY[-2],X[4]Y[2]等。
在我的parser.mly, index(里面[])定义如下:
index:
| INTEGER { $1 }
| MINUS INTEGER { 0 - $2 }
tokenINTEGER等MINUS在词法分析器中正常定义。
我尝试解析一个例子,它失败了。但是,如果我评论| MINUS INTEGER { 0 - $2 },它运作良好。所以问题肯定与此有关。为了调试,我想获得更多信息,换句话说,我想知道什么被认为是MINUS INTEGER. 我试图添加打印:
index:
| INTEGER { $1 }
| MINUS INTEGER { Printf.printf "%n" $2; 0 - $2 }
但是解析时没有打印任何内容。
谁能告诉我如何打印信息或调试它?