2015-07-24 15 views
5

Alcuni potrebbero dirmi perché questo codice non è in fase di compilazione. Sto cercando di stampare l'albero sintassi astratto usando la libreria ppx_deriving.Stampa sintassi albero astratto con 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 
+0

Qual è show_prog nel vostro programma? – alifirat

+0

@alifirat mi è stato suggerito di usarlo sul canale #ocaml per derivare l'istanza spettacolo di tipo prog simile a https://github.com/whitequark/ppx_deriving/blob/master/src_examples/print_test.ml –

risposta

5

Aggiungi -use-ocamlfind come primo argomento di ocamlbuild. Dovrebbe risolvere il problema.

(È anche un errore di battitura nel [Incv, Incv], il , dovrebbe essere un ;.

+0

Grazie. Sì, l'ho notato quando il compilatore mi ha urlato contro. –

Problemi correlati