Camlp4解析器跟踪

时间:2014-02-06 19:43:00

标签: ocaml camlp4

我正在用Camlp4编写一个简单的解析器。复杂性开始变得难以推断出确切的解析序列。生成包含所使用的令牌和匹配规则的解析“跟踪”的最佳方法是什么。

E.g。以下解析器片段:

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的内容,所以我想知道它是否可能。

1 个答案:

答案 0 :(得分:0)

普通函数调用存在Camlp4Tracer,也许你可以从中汲取灵感并为camlp4语法本身编写一个Camlp4Filter ..如果你在这种努力中疯狂,我不应该承担责任%)