Something went wrong. Try again.
forked from gbury/dolmen
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
; Commons parts defining the lexer, parser and some test rules; =============================================================================; All these rules should be common to all libraries, now that the lexer, parser,; ast files and so on have standardized names.
(ocamllex (modules lexer))
(menhir (flags (--only-tokens)) (modules tokens))
(menhir (flags (--explain --exn-carries-state --external-tokens Tokens)) (modules tokens parser) (merge_into parser))
(rule (target syntax_messages.ml) (deps (:tokens tokens.mly) (:parser parser.mly) (:msg syntax.messages)) (action (with-stdout-to %{target} (run menhir --external-tokens Tokens %{tokens} %{parser} --base %{parser} --compile-errors %{msg}))))
; Convenience rule to generate a fresh messages file,; and update an already existing one.(rule (target new.messages) (deps (:tokens tokens.mly) (:parser parser.mly)) (action (with-stdout-to %{target} (run menhir --external-tokens Tokens %{tokens} %{parser} --base %{parser} --list-errors))))
(rule (target updated.messages) (deps (:tokens tokens.mly) (:parser parser.mly) (:msg syntax.messages)) (action (with-stdout-to %{target} (run menhir --external-tokens Tokens %{tokens} %{parser} --base %{parser} --update-errors %{msg}))))
(rule (target syntax.messages.updated) (deps (:tokens tokens.mly) (:parser parser.mly) (:new new.messages) (:updated updated.messages) ) (action (with-stdout-to %{target} (run menhir --external-tokens Tokens %{tokens} %{parser} --base %{parser} --merge-errors %{new} --merge-errors %{updated}))))
(rule (alias messages) (package dolmen) (deps syntax.messages syntax.messages.updated) (action (diff syntax.messages syntax.messages.updated)))