package catala
Install
dune-project
Dependency
Authors
Maintainers
Sources
md5=2615968670ac21b1d00386a9b04b3843
sha512=eff292fdd75012f26ce7b17020f5a8374eef37cd4dd6ba60338dfbe89fbcad3443d1b409e44c182b740da9f58dff7e76dcb8ddefe47f9b2b160666d1c6930143
doc/catala.surface/Surface/Parser_driver/index.html
Module Surface.Parser_driver
Source
Wrapping module around parser and lexer that offers the Surface.Parser_driver.parse_source_file
API.
val lines :
Catala_utils.File.t ->
Catala_utils.Global.backend_lang ->
(string * Lexer_common.line_token * (Lexing.position * Lexing.position))
Seq.t
Raw file parser that doesn't interpret any includes and returns the flat law structure as is
val load_interface :
?default_module_name:string ->
Catala_utils.File.t Catala_utils.Global.input_src ->
Ast.module_content
Reads only declarations in metadata in the supplied input file, and only keeps type information. The list of submodules is initialised with names only and empty contents.
val load_interface_and_code :
?default_module_name:string ->
Catala_utils.File.t Catala_utils.Global.input_src ->
Ast.module_content
Reads the supplied input file and returns its interface that contains type information as well as scope and topdef definitions. The list of submodules is initialised with names only and empty contents.
val register_included_file_resolver :
filename:string ->
new_content:string Catala_utils.Global.input_src ->
unit
Register an included file dynamic resolver. When the surface's parser encounters an inclusion that correspond to the filename
argument, it will dynamically replace it with the given new_content
.
val parse_top_level_file :
?resolve_included_file:(string -> string Catala_utils.Global.input_src) ->
Catala_utils.File.t Catala_utils.Global.input_src ->
Ast.program
Parses a catala file (handling file includes) and returns a program. Interfaces of the used modules are returned empty, use load_interface
to fill them. When provided resolve_included_file
replaces file includes with an user provided input source. However, it will shadow any existing dynamic resolver registered using register_included_file_resolver
.