PACKAGE = cic_textual_parser2
-REQUIRES = ulex camlp4 pxp
-INTERFACE_FILES = ast.mli pp.mli macro.mli lexer.mli
+REQUIRES = \
+ helm-tactics helm-logger helm-cic_unification helm-cic_transformations \
+ ulex pxp camlp4.gramlib
+# NOTATIONS = logic arit tex
NOTATIONS = logic arit
+INTERFACE_FILES = \
+ disambiguateTypes.mli \
+ disambiguateChoices.mli \
+ macro_table.mli \
+ cicTextualParser2Macro.mli \
+ cicTextualLexer2.mli \
+ cicTextualParser2.mli \
+ disambiguate.mli
IMPLEMENTATION_FILES = \
- pp.ml macro.ml lexer.ml parser.ml \
+ $(patsubst %.mli, %.ml, $(INTERFACE_FILES)) \
$(patsubst %,%_notation.ml,$(NOTATIONS))
ULEXDIR := $(shell ocamlfind query ulex)
LEXER_P4_OPTS = -I $(ULEXDIR) pa_ulex.cma
-PARSER_P4_OPTS = pa_extend.cmo ./macro.cmo ./pa_unicode_macro.cmo
+PARSER_P4_OPTS = \
+ pa_extend.cmo \
+ ./macro_table.cmo \
+ ./cicTextualParser2Macro.cmo \
+ ./pa_unicode_macro.cmo
PA_P4_OPTS = q_MLast.cmo pa_extend.cmo
-include ../Makefile.common
+all:
-lexer.cmo: lexer.ml
+cicTextualLexer2.cmo: cicTextualLexer2.ml
$(OCAMLC) -pp "camlp4o $(LEXER_P4_OPTS)" -c $<
-parser.cmo: parser.ml macro.cmo pa_unicode_macro.cmo
+cicTextualParser2.cmo: cicTextualParser2.ml cicTextualParser2Macro.cmo pa_unicode_macro.cmo
$(OCAMLC) -pp "camlp4o $(PARSER_P4_OPTS)" -c $<
+cicTextualLexer2.cmx: cicTextualLexer2.ml
+ $(OCAMLOPT) -pp "camlp4o $(LEXER_P4_OPTS)" -c $<
+cicTextualParser2.cmx: cicTextualParser2.ml cicTextualParser2Macro.cmo pa_unicode_macro.cmo
+ $(OCAMLOPT) -pp "camlp4o $(PARSER_P4_OPTS)" -c $<
-%_notation.cmo: %_notation.ml parser.cmo
+%_notation.cmo: %_notation.ml cicTextualParser2.cmo
$(OCAMLC) -pp "camlp4o $(PARSER_P4_OPTS)" -c $<
+%_notation.cmx: %_notation.ml cicTextualParser2.cmx
+ $(OCAMLOPT) -pp "camlp4o $(PARSER_P4_OPTS)" -c $<
-pa_unicode_macro.cmo: pa_unicode_macro.ml macro.cmo
+pa_unicode_macro.cmo: pa_unicode_macro.ml cicTextualParser2Macro.cmo
$(OCAMLC) -pp "camlp4o $(PA_P4_OPTS)" -c $<
+pa_unicode_macro.cmx: pa_unicode_macro.ml cicTextualParser2Macro.cmx
+ $(OCAMLOPT) -pp "camlp4o $(PA_P4_OPTS)" -c $<
-LOCAL_LINKOPTS = -linkpkg gramlib.cma $(PACKAGE).cma
+LOCAL_LINKOPTS = -linkpkg $(PACKAGE).cma
test: test_lexer test_parser
test_lexer: test_lexer.ml $(PACKAGE).cma
$(OCAMLC) $(LOCAL_LINKOPTS) -o $@ $<
test_parser: test_parser.ml $(PACKAGE).cma
$(OCAMLC) $(LOCAL_LINKOPTS) -o $@ $<
make_table: make_table.ml
- $(OCAMLC) -linkpkg -o $@ $<
+ $(OCAMLFIND) ocamlc -package pxp -linkpkg -o $@ $^
-.PHONY: macro_table.dump
-macro_table.dump: make_table
+macro_table.ml: make_table
./make_table $@
+macro_table.cmo: macro_table.ml
+ $(OCAMLFIND) ocamlc -c $<
clean: extra_clean
distclean: extra_clean
extra_clean:
rm -f test_lexer test_parser make_table
+include ../Makefile.common
+OCAMLARCHIVEOPTIONS += -linkall
+
+.PHONY: depend
+depend: cicTextualParser2Macro.cmi cicTextualParser2Macro.cmo pa_unicode_macro.cmi pa_unicode_macro.cmo
+ $(OCAMLDEP) -pp "camlp4o $(PARSER_P4_OPTS) $(LEXER_P4_OPTS)" $(INTERFACE_FILES) $(IMPLEMENTATION_FILES) > .depend
+
+disambiguateTypes.cmi: disambiguateTypes.mli
+ $(OCAMLC) -c -rectypes $<
+disambiguateTypes.cmo: disambiguateTypes.ml disambiguateTypes.cmi
+ $(OCAMLC) -c -rectypes $<
+disambiguateTypes.cmx: disambiguateTypes.ml disambiguateTypes.cmi
+ $(OCAMLOPT) -c -rectypes $<
+