Ocaml Camlp4解析器跟踪

Ocaml Camlp4解析器跟踪,ocaml,camlp4,Ocaml,Camlp4,我正在用Camlp4编写一个简单的解析器。复杂性已经开始达到我无法推理精确解析序列的地步。生成包含已使用标记和匹配规则的解析“跟踪”的最佳方法是什么 例如,以下解析器片段: let parse_func_call = parser | [< 'Token.Ident id; 'Token.LParen; 'Token.Ident id; 'Token.RParen >] -> ... Camlp4中似乎没有内置任何这样的东西,所以我想知道它是否可能。对于普通函数调用,存在

我正在用Camlp4编写一个简单的解析器。复杂性已经开始达到我无法推理精确解析序列的地步。生成包含已使用标记和匹配规则的解析“跟踪”的最佳方法是什么

例如,以下解析器片段:

let parse_func_call = parser
  | [< 'Token.Ident id; 'Token.LParen; 'Token.Ident id; 'Token.RParen >] -> ...

Camlp4中似乎没有内置任何这样的东西,所以我想知道它是否可能。

对于普通函数调用,存在
Camlp4Tracer
,也许您可以从中汲取灵感,为Camlp4语法本身编写一个Camlp4过滤器。。如果你在那次努力中发疯了,我不负责任。

当然,你可以记录每一条被解雇的规则。。。
CONSUMED Ident
MATCHED parse_func_call
CONSUMED LParen
CONSUMED Ident
CONSUMED RParen