如何打印打字的解析树

时间:2015-04-20 03:16:54

标签: ocaml

-dparsetree可用于打印无类型的解析树,但如何在OCaml中打印输入的AST?我查看了源代码中的typing目录,似乎有些函数可以做到这一点。

1 个答案:

答案 0 :(得分:1)

使用-dtypedtree。它是一个比-dparsetree更新的功能,从4.01.0开始引入。如果ocamlc没有编译器,则需要升级编译器。

不幸的是-dtypedtree没有显示输入AST的类型信息。我担心目前没有选项或工具可以打印类型信息。可能因为打印所有附加到子节点的类型信息太难以阅读,我担心。例如,即使是简单的代码let f x = x + 1也有以下类型的AST:

let (f : int -> int) =
  (fun (x : int) ->  
    (( ( (+) : int -> int -> int) (x : int) : int -> int) (1 : int) : int) : int -> int)

最好的方法是编写自己的类型AST打印机,它只打印您感兴趣的类型。