我想解析一组表达式,例如: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 }
但是解析时没有打印任何内容。
谁能告诉我如何打印信息或调试它?