Core.ApiThis module provides the API for the TDCR interpreter. It includes functions to initialize, execute, and view the program, as well as functions to parse and unparse the program in different formats.
val initialize :
Ast.Syntax.program ->
(Ast.Syntax.program
* (Ast.Syntax.type_expr' Common.Env.env
* Typing.Helper.event_type_value Stdlib.Hashtbl.Make(Stdlib.String).t
* Ast.Syntax.expr' Ast.Syntax.annotated Common.Env.env
* Ast.Syntax.event' Ast.Syntax.annotated Common.Env.env),
Ast.Error.detailed_error list)
Stdlib.resultinitialize program initializes the program by ensuring that:
event_env.event_env, expr_env and template definitions.event_env.val execute :
event_id:string ->
?expr:Ast.Syntax.expr' ->
?ty_env:Ast.Syntax.type_expr' Common.Env.env ->
?label_types:
Typing.Helper.event_type_value Stdlib.Hashtbl.Make(Stdlib.String).t ->
?expr_env:Ast.Syntax.expr Common.Env.env ->
?event_env:Ast.Syntax.event Common.Env.env ->
Ast.Syntax.program ->
(Ast.Syntax.program
* Ast.Syntax.event' Ast.Syntax.annotated Common.Env.env
* Ast.Syntax.expr' Ast.Syntax.annotated Common.Env.env
* Ast.Syntax.type_expr' Common.Env.env
* Typing.Helper.event_type_value Stdlib.Hashtbl.Make(Stdlib.String).t,
Ast.Error.detailed_error list)
Stdlib.resultexecute ~event_id ?expr ?ty_env ?label_types ?expr_env ?event_env program executes the event with the given event_id and propagate its effects in the program. This function may return a error if the program does not meet the following conditions:
event_env.val parse_program_from_file :
string ->
(Ast.Syntax.program, Ast.Error.detailed_error list) Stdlib.resultparse_program_from_file filename parses the program from the given filename. This function may return a error if the file does not exist.
val parse_expression_from_string :
string list ->
(Ast.Syntax.expr' Ast.Syntax.annotated, Ast.Error.detailed_error list)
Stdlib.resultparse_expression_from_string expr_tokens parses the expression from the given expr_tokens. This function may return a error if the expression is not well-formed.
val unparse_program_tdcr :
?should_print_value:bool ->
?should_print_executed_marking:bool ->
Ast.Syntax.program ->
(string, 'a) Stdlib.resultunparse_program_tdcr ?should_print_value ?should_print_executed_marking
program unparses the program in string format, based on optional flags.
val unparse_program_json : Ast.Syntax.program -> (string, 'a) Stdlib.resultunparse_program_json program unparses the program in JSON format.
val unparse_program_dot : Ast.Syntax.program -> (string, 'a) Stdlib.resultunparse_program_dot program unparses the program in DOT format.
val view :
?filter:
(Ast.Syntax.event ->
(Ast.Syntax.event Common.Env.env * Ast.Syntax.expr Common.Env.env) ->
Ast.Syntax.event option) ->
?should_print_template_decls:bool ->
?should_print_events:bool ->
?should_print_value:bool ->
?should_print_relations:bool ->
?expr_env:Ast.Syntax.expr Common.Env.env ->
?event_env:Ast.Syntax.event Common.Env.env ->
Ast.Syntax.program ->
(string, 'a) Stdlib.resultview ?filter ?should_print_template_decls ?should_print_events
?should_print_value ?should_print_relations ?expr_env ?event_env program views the program in string format, based on optional flags. Is the same as unparse_program_tdcr but with more options.
val view_debug : Ast.Syntax.program -> (string, 'a) Stdlib.resultview_debug program views the program in string format, with debug information.
val view_enabled :
?should_print_template_decls:bool ->
?should_print_value:bool ->
?should_print_relations:bool ->
?expr_env:Ast.Syntax.expr Common.Env.env ->
?event_env:Ast.Syntax.event Common.Env.env ->
Ast.Syntax.program ->
(string, 'a) Stdlib.resultview_enabled ?should_print_template_decls ?should_print_value
?should_print_relations ?expr_env ?event_env program views the enabled events in the program in string format, based on optional flags.
val view_disabled :
?should_print_template_decls:bool ->
?should_print_value:bool ->
?should_print_relations:bool ->
?expr_env:Ast.Syntax.expr Common.Env.env ->
?event_env:Ast.Syntax.event Common.Env.env ->
Ast.Syntax.program ->
(string, 'a) Stdlib.resultview_disabled ?should_print_template_decls ?should_print_value
?should_print_relations ?expr_env ?event_env program views the disabled events in the program in string format, based on optional flags.