ParserAndCompiler
This defines an interface that allows a user to indicate how to parse their own programming language, preprocess the obtained language and compile it to GIL (type Prog.t
)
type ('annot, 'tl_ast, 'init_data) compiled_progs = {
gil_progs : (string * ('annot, string) Gillian.Gil_syntax.Prog.t) list;
source_files : IncrementalAnalysis.SourceFiles.t;
tl_ast : 'tl_ast;
init_data : 'init_data;
}
val get_progs_or_fail :
pp_err:(Stdlib.Format.formatter -> 'e -> unit) ->
(('a, 'b, 'c) compiled_progs, 'e) Stdlib.result ->
('a, 'b, 'c) compiled_progs
module type S = sig ... end
module Dummy :
Gillian.Command_line.ParserAndCompiler.S
with type init_data = unit
and type Annot.t = Gillian.Gil_syntax.Annot.Basic.t
Dummy ParserAndCompiler that will simply always fail. This is used when someone wants to build a command line interface to only reason about GIL.