5

camlp4 の引用を含むこのコードがあります。

let f_name = "my_func"
<:str_item< value $lid:f_name$ a = a * 2 >>

これを で実行するcamlp4ofと、次のようになります。

  Ast.StExp (_loc,
    (Ast.ExApp (_loc,
       (Ast.ExApp (_loc, (Ast.ExId (_loc, (Ast.IdLid (_loc, "=")))),
          (Ast.ExApp (_loc,
             (Ast.ExApp (_loc,
                (Ast.ExId (_loc, (Ast.IdLid (_loc, "value")))),
                (Ast.ExId (_loc, (Ast.IdLid (_loc, f_name)))))),
             (Ast.ExId (_loc, (Ast.IdLid (_loc, "a")))))))),
       (Ast.ExApp (_loc,
          (Ast.ExApp (_loc, (Ast.ExId (_loc, (Ast.IdLid (_loc, "*")))),
             (Ast.ExId (_loc, (Ast.IdLid (_loc, "a")))))),
          (Ast.ExInt (_loc, "2")))))))

私の質問はこれです、生成された ocaml コードを印刷する方法はありますか? コードを表示するには、どのcamlp4ofコマンドまたはオプションを使用すればよいですか? 上記の例から私が期待することは次のとおりです。

value my_func a = a * 2

それは可能ですか?その理由は、生成された ocaml コードがどのように見えるかを確認するためにデバッグを行いたいからです。

4

1 に答える 1