examples/id_sexp (parser then prints S-expressions)

This commit is contained in:
Simon Cruanes 2014-09-17 15:14:12 +02:00
parent 8bb6440344
commit dcf134b1eb
5 changed files with 7840 additions and 26 deletions

View file

@ -1,5 +1,5 @@
# OASIS_START # OASIS_START
# DO NOT EDIT (digest: 9a60866e2fa295c5e33a3fe33b8f3a32) # DO NOT EDIT (digest: 46f8bd9984975bd4727bed22d0876cd2)
SETUP = ./setup.exe SETUP = ./setup.exe
@ -38,7 +38,7 @@ configure: $(SETUP)
$(SETUP) -configure $(CONFIGUREFLAGS) $(SETUP) -configure $(CONFIGUREFLAGS)
setup.exe: setup.ml setup.exe: setup.ml
ocamlfind ocamlopt -o $@ -linkpkg -package oasis.dynrun $< || ocamlfind ocamlc -o $@ -linkpkg -package oasis.dynrun $< || true ocamlfind ocamlopt -o $@ $< || ocamlfind ocamlc -o $@ $< || true
$(RM) setup.cmi setup.cmo setup.cmx setup.o $(RM) setup.cmi setup.cmo setup.cmx setup.o
.PHONY: build doc test all install uninstall reinstall clean distclean configure .PHONY: build doc test all install uninstall reinstall clean distclean configure

8
_oasis
View file

@ -219,6 +219,14 @@ Executable lambda
Build$: flag(misc) Build$: flag(misc)
BuildDepends: containers,containers.misc BuildDepends: containers,containers.misc
Executable id_sexp
Path: examples/
Install: false
CompiledObject: native
MainIs: id_sexp.ml
Build$: flag(misc)
BuildDepends: containers,containers.misc
SourceRepository head SourceRepository head
Type: git Type: git
Location: https://github.com/c-cube/ocaml-containers Location: https://github.com/c-cube/ocaml-containers

9
_tags
View file

@ -1,5 +1,5 @@
# OASIS_START # OASIS_START
# DO NOT EDIT (digest: fbebfae7c483734f1144067d9ae9954b) # DO NOT EDIT (digest: c9667e55919ea370f2e3a33376a7eec4)
# Ignore VCS directories, you can use the same kind of rule outside # Ignore VCS directories, you can use the same kind of rule outside
# OASIS_START/STOP if you want to exclude directories that contains # OASIS_START/STOP if you want to exclude directories that contains
# useless stuff for the build process # useless stuff for the build process
@ -19,6 +19,9 @@
"string/containers_string.cmxs": use_containers_string "string/containers_string.cmxs": use_containers_string
"string/KMP.cmx": for-pack(Containers_string) "string/KMP.cmx": for-pack(Containers_string)
"string/levenshtein.cmx": for-pack(Containers_string) "string/levenshtein.cmx": for-pack(Containers_string)
# Library containers_pervasives
"pervasives/containers_pervasives.cmxs": use_containers_pervasives
<pervasives/*.ml{,i}>: use_containers
# Library containers_misc # Library containers_misc
"misc/containers_misc.cmxs": use_containers_misc "misc/containers_misc.cmxs": use_containers_misc
"misc/cache.cmx": for-pack(Containers_misc) "misc/cache.cmx": for-pack(Containers_misc)
@ -146,6 +149,10 @@
"examples/lambda.byte": package(unix) "examples/lambda.byte": package(unix)
"examples/lambda.byte": use_containers "examples/lambda.byte": use_containers
"examples/lambda.byte": use_containers_misc "examples/lambda.byte": use_containers_misc
# Executable id_sexp
"examples/id_sexp.native": package(unix)
"examples/id_sexp.native": use_containers
"examples/id_sexp.native": use_containers_misc
<examples/*.ml{,i}>: package(unix) <examples/*.ml{,i}>: package(unix)
<examples/*.ml{,i}>: use_containers <examples/*.ml{,i}>: use_containers
<examples/*.ml{,i}>: use_containers_misc <examples/*.ml{,i}>: use_containers_misc

13
examples/id_sexp.ml Normal file
View file

@ -0,0 +1,13 @@
let () =
if Array.length Sys.argv <> 2 then failwith "usage: id_sexp file";
let f = Sys.argv.(1) in
let s = Sexp.parse_l_file f in
match s with
| `Ok l ->
List.iter
(fun s -> Format.printf "@[%a@]@." Sexp.print s)
l
| `Error msg ->
Format.printf "error: %s@." msg

7832
setup.ml

File diff suppressed because it is too large Load diff