-1

、、、、などの一連の式X[3]を解析したいと思います。X[-3]XY[-2]X[4]Y[2]

myparser.mlyでは、index( の内部にあります[]) は次のように定義されています。

index:
| INTEGER { $1 }
| MINUS INTEGER { 0 - $2 }

tokenなどはINTEGERMINUS通常どおり lexer で定義されます。

例を解析しようとしましたが、失敗しました。ただし、コメント| MINUS INTEGER { 0 - $2 }するとうまくいきます。したがって、問題は確かにそれに関連しています。デバッグするには、より多くの情報を取得したい、つまり、 と見なされるものを知りたいですMINUS INTEGER。印刷を追加しようとしました:

index:
| INTEGER { $1 }
| MINUS INTEGER { Printf.printf "%n" $2; 0 - $2 }

ただし、解析中には何も出力されません。

情報を出力したりデバッグしたりする方法を教えてもらえますか?

4

1 に答える 1