2014-02-06 48 views
0

我正在用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任何這樣的事情,所以如果可能的話我不知道。

+0

當然,你可以記錄每一個規則...... – lukstafi

回答

0

有普通函數調用存在Camlp4Tracer,也許你可以從失敗中汲取靈感,並寫爲camlp4語法本身Camlp4Filter ..我不負責,如果你這方面的努力%時去瘋狂)