(rule
 (copy ../Version.ml Version.ml))

(ocamllex Lexer)

(ocamllex SimpleLexer0)

(ocamllex splitasl)

(menhir
 (modules Tokens)
 (flags --only-tokens))

(menhir
 (modules Tokens Parser)
 (merge_into Parser)
 (flags --external-tokens Tokens))

(menhir
 (modules Parser0)
 (flags --unused-tokens --table))

(rule
 (deps
  (:v1 libdir/stdlib.asl)
  (:v0 libdir/stdlib0.asl))
 (target asl_stdlib.ml)
 (action
  (with-stdout-to
   %{target}
   (progn
    (echo "let stdlib = {|")
    (cat %{v1})
    (echo "|}")
    (echo "let stdlib0 = {|")
    (cat %{v0})
    (echo "|}")))))

(library
 (name asllib)
 (modules
  (:standard \ aslref bundler))
 (public_name herdtools7.asllib)
 (private_modules Parser0 Gparser0 Lexer0 SimpleLexer0 RepeatableLexer)
 (modules_without_implementation Backend AST ParserConfig)
 (flags
  (:standard -w -40-42-48))
 (libraries menhirLib zarith))

(documentation)

(executable
 (name aslref)
 (public_name aslref)
 (libraries asllib)
 (modules aslref))

(executable
 (public_name aslbundler)
 (name bundler)
 (libraries asllib)
 (modules bundler))
