175 lines
3.9 KiB
Plaintext
Raw Normal View History

;; Build of the lexer
2019-12-10 13:47:31 +00:00
(ocamllex LexToken)
;; Build of the parser
2019-12-10 13:47:31 +00:00
(menhir
(merge_into Parser)
(modules ParToken Parser)
(flags -la 1 --table --strict --explain --external-tokens LexToken))
;; Build of the parser as a library
2019-12-10 13:47:31 +00:00
(library
(name parser_reasonligo)
(public_name ligo.parser.reasonligo)
(modules
SyntaxError reasonligo LexToken ParErr Parser)
2019-12-10 13:47:31 +00:00
(libraries
menhirLib
parser_shared
parser_cameligo
str
simple-utils)
2019-12-11 12:23:11 +01:00
(preprocess
2020-03-26 20:47:15 +03:00
(pps bisect_ppx -conditional))
(flags (:standard -open Parser_shared -open Simple_utils -open Parser_cameligo)))
2019-12-10 13:47:31 +00:00
;; Build of the unlexer (for covering the
;; error states of the LR automaton)
(executable
(name Unlexer)
(libraries str)
(preprocess
2020-03-26 20:47:15 +03:00
(pps bisect_ppx -conditional))
(modules Unlexer))
;; Local build of a standalone lexer
2019-12-10 13:47:31 +00:00
(executable
(name LexerMain)
(libraries parser_reasonligo)
(modules LexerMain)
2019-12-11 19:07:52 +01:00
(preprocess
2020-03-26 20:47:15 +03:00
(pps bisect_ppx -conditional))
(flags (:standard -open Parser_shared -open Parser_reasonligo)))
2019-12-10 13:47:31 +00:00
;; Local build of a standalone parser
2019-12-10 13:47:31 +00:00
(executable
(name ParserMain)
(libraries
parser_reasonligo
parser_cameligo)
(modules ParserMain)
2019-12-11 19:07:52 +01:00
(preprocess
2020-03-26 20:47:15 +03:00
(pps bisect_ppx -conditional))
2019-12-24 08:08:50 +01:00
(flags (:standard -open Simple_utils -open Parser_cameligo -open Parser_shared -open Parser_reasonligo)))
2019-12-26 13:31:54 +01:00
;; Build of the covering of error states in the LR automaton
2020-01-09 16:41:21 +01:00
(rule
(targets Parser.msg)
(deps (:script_messages ../../../../vendors/ligo-utils/simple-utils/messages.sh) Parser.mly LexToken.mli ParToken.mly)
(action (run %{script_messages} --lex-tokens=LexToken.mli --par-tokens=ParToken.mly Parser.mly )))
;; Build of all the LIGO source file that cover all error states
2020-01-09 16:41:21 +01:00
(rule
(targets all.religo)
2020-01-09 16:41:21 +01:00
(deps (:script_cover ../../../../vendors/ligo-utils/simple-utils/cover.sh) Parser.mly LexToken.mli ParToken.mly Parser.msg Unlexer.exe)
(action (run %{script_cover} --lex-tokens=LexToken.mli --par-tokens=ParToken.mly --ext=religo --unlexer=./Unlexer.exe --messages=Parser.msg --dir=. --concatenate Parser.mly )))
2020-01-31 16:05:59 +01:00
;; Error messages
;; Generate error messages from scratch
; (rule
; (targets error.messages)
; (deps Parser.mly ParToken.mly error.messages.checked-in)
; (action
; (with-stdout-to %{targets}
; (bash
; "menhir \
; --unused-tokens \
; --list-errors \
; --table \
; --strict \
; --external-tokens LexToken.mli \
; --base Parser.mly \
; ParToken.mly \
; Parser.mly
; "
; )
; ))
; )
(rule
(targets error.messages)
(deps Parser.mly ParToken.mly error.messages.checked-in LexToken.mli)
(action
(with-stdout-to %{targets}
(run
menhir
--unused-tokens
--update-errors error.messages.checked-in
--table
--strict
--external-tokens LexToken.mli
--base Parser.mly
ParToken.mly
Parser.mly
)
))
)
(rule
(target error.messages.new)
(action
(with-stdout-to %{target}
(run
menhir
--unused-tokens
--list-errors
--table
--strict
--external-tokens LexToken.mli
--base Parser.mly
ParToken.mly
Parser.mly
)
)
)
)
(alias
(name runtest)
(deps error.messages error.messages.new)
(action
(run
menhir
--unused-tokens
--table
--strict
--external-tokens LexToken.mli
--base Parser.mly
ParToken.mly
Parser.mly
--compare-errors error.messages.new
--compare-errors error.messages
)
)
)
(rule
(targets ParErr.ml)
(deps Parser.mly ParToken.mly error.messages.checked-in LexToken.mli)
(action
(with-stdout-to %{targets}
(run
menhir
--unused-tokens
--table
--strict
--external-tokens LexToken.mli
--base Parser.mly
ParToken.mly
Parser.mly
--compile-errors error.messages.checked-in
)
))
)