14

一般的にこれを達成する方法はわかりませんが、明確にするために、特に1つのインスタンスについて質問します。

Sexplib は私には興味深いようです。私はそれで遊んでみたい。私はそれをダウンロードし、問題なくインストールしました(とにかく、かなり確信しています)など。トップレベルで「with sexp」構文拡張を使用したいです。どうすればこれを行うことができますか?私が見つけたその使用例はすべて、トップレベルを作成する方法や構文拡張を使用してコンパイルする方法を既に知っていることを前提としています。

私のベストショットは次のようなものでした:

ocamlmktop -I +site-lib/sexplib -pp "camlp4 -I +site-lib/sexplib pa_sexp_conv.cma" -o sexplib-top

このトップレベルを実行すると問題なく実行できますが、構文拡張open Sexplibを使用しようとすると構文エラーが発生します。with sexp

4

1 に答える 1

15

すでに XXI 世紀です - ocamlfind を使用してください:

        Objective Caml version 3.11.2

# #use "topfind";;
- : unit = ()

# #camlp4o;;
/usr/lib/ocaml/dynlink.cma: loaded
/usr/lib/ocaml/camlp4: added to search path
/usr/lib/ocaml/camlp4/camlp4o.cma: loaded
    Camlp4 Parsing version 3.11.2

# #require "sexplib.syntax";;
/usr/lib/ocaml/unix.cma: loaded
/usr/lib/ocaml/bigarray.cma: loaded
/usr/lib/ocaml/nums.cma: loaded
/usr/lib/ocaml/num-top: added to search path
/usr/lib/ocaml/num-top/num_top.cma: loaded
/usr/lib/ocaml/sexplib: added to search path
/usr/lib/ocaml/sexplib/sexplib.cma: loaded
/usr/lib/ocaml/type-conv: added to search path
/usr/lib/ocaml/type-conv/pa_type_conv.cmo: loaded
/usr/lib/ocaml/sexplib/pa_sexp_conv.cmo: loaded

# type t = { x : int; y : float; } with sexp;;
type t = { x : int; y : float; }
val t_of_sexp__ : Sexplib.Sexp.t -> t = <fun>
val t_of_sexp : Sexplib.Sexp.t -> t = <fun>
val sexp_of_t : t -> Sexplib.Sexp.t = <fun>
于 2011-09-16T06:48:09.013 に答える