使用ppx_deriving打印抽象语法树

kee*_*ing 5 ocaml abstract-syntax-tree

有些人可以告诉我为什么这段代码没有编译.我试图使用ppx_deriving库打印抽象语法树.

type prog = command list
[@@deriving show]
and command =
   | Incv | Decv
   | Incp | Decp
   | Input  | Output
   | Loop of command list
   [@@deriving show]

let _ = Format.printf "%s" (show_prog ([Incv, Incv]))

hello:brainfuckinter mukeshtiwari$ ocamlbuild -package ppx_deriving.std  ast.byte
+ /Users/mukeshtiwari/.opam/4.02.1/bin/ocamlc.opt -c -I /Users/mukeshtiwari/.opam/4.02.1/lib/ppx_deriving -o ast.cmo ast.ml
File "ast.ml", line 10, characters 28-37:
Error: Unbound value show_prog
Command exited with code 2.
Compilation unsuccessful after building 2 targets (1 cached) in 00:00:00.
hello:brainfuckinter mukeshtiwari$ ocaml
    OCaml version 4.02.1
Run Code Online (Sandbox Code Playgroud)

Dru*_*rup 5

添加-use-ocamlfind为ocamlbuild的第一个参数.它应该解决这个问题.

(你也有一个错字[Incv, Incv],,应该是一个;.