Camlp4 で簡単なパーサーを書いています。複雑さは、正確な解析シーケンスについて推論するのに苦労するところまで来ています。消費されたトークンと一致したルールを含む解析の「トレース」を生成する最良の方法は何でしょうか。
たとえば、次のパーサー フラグメント:
let parse_func_call = parser
| [< 'Token.Ident id; 'Token.LParen; 'Token.Ident id; 'Token.RParen >] -> ...
次のようなトレース フラグメントが出力される場合があります。
CONSUMED Ident
MATCHED parse_func_call
CONSUMED LParen
CONSUMED Ident
CONSUMED RParen
Camlp4 にはそのようなものが組み込まれているようには見えないので、可能かどうか疑問に思っています。