Ast.Syntaxmodule Lexing : sig ... endval loc_of_yojson : Yojson.Safe.t -> locval yojson_of_loc : loc -> Yojson.Safe.tand program = {template_decls : template_def list;events : event list;template_insts : template_instance list;relations : relation list;annotations : template_annotation' list;}and subprogram =
event list
* template_instance list
* relation list
* template_annotation' listand type_expr = type_expr' annotatedand type_expr' = | UnitTy| StringTy| IntTy| BoolTy| EventTy of string annotated| RecordTy of type_expr record_field list| ListTy of type_expr'and expr' = | Unit| BoolLit of bool| IntLit of int| StringLit of string| Parenthesized of expr| BinaryOp of expr * expr * binary_op_type| UnaryOp of expr * unary_op_type| Identifier of string annotated| Trigger| PropDeref of expr * string annotated| List of expr list| Range of expr * expr| Record of expr record_field list| EventRef of event Stdlib.ref| Ref of expr Stdlib.refand 'a record_field = string annotated * 'aand template_def = {export : event_id list;params : template_param' list;export_types : event_label list;graph : subprogram;id : string annotated;}and template_instance = template_instance' annotatedand template_annotation = template_annotation' annotatedand template_annotation' = | IfElse of {condition : expr;then_branch : subprogram;else_branch : subprogram option;}| Foreach of string annotated * expr * subprogramand event_id = string annotatedand event_label = string annotatedand event_info' = event_id * event_labeland event_marking = event_marking' annotatedand relation' = | ControlRelation of event_id * expr * event_id * relation_type| SpawnRelation of event_id * expr * subprogramval annotated_of_yojson :
(Yojson.Safe.t -> 'a) ->
Yojson.Safe.t ->
'a annotatedval program_of_yojson : Yojson.Safe.t -> programval subprogram_of_yojson : Yojson.Safe.t -> subprogramval type_expr_of_yojson : Yojson.Safe.t -> type_exprval type_expr'_of_yojson : Yojson.Safe.t -> type_expr'val expr_of_yojson : Yojson.Safe.t -> exprval expr'_of_yojson : Yojson.Safe.t -> expr'val binary_op_type_of_yojson : Yojson.Safe.t -> binary_op_typeval unary_op_type_of_yojson : Yojson.Safe.t -> unary_op_typeval record_field_of_yojson :
(Yojson.Safe.t -> 'a) ->
Yojson.Safe.t ->
'a record_fieldval template_param'_of_yojson : Yojson.Safe.t -> template_param'val template_def_of_yojson : Yojson.Safe.t -> template_defval template_arg_of_yojson : Yojson.Safe.t -> template_argval template_instance_of_yojson : Yojson.Safe.t -> template_instanceval template_instance'_of_yojson : Yojson.Safe.t -> template_instance'val template_annotation_of_yojson : Yojson.Safe.t -> template_annotationval template_annotation'_of_yojson : Yojson.Safe.t -> template_annotation'val event_of_yojson : Yojson.Safe.t -> eventval event'_of_yojson : Yojson.Safe.t -> event'val event_id_of_yojson : Yojson.Safe.t -> event_idval event_label_of_yojson : Yojson.Safe.t -> event_labelval event_info'_of_yojson : Yojson.Safe.t -> event_info'val event_io_of_yojson : Yojson.Safe.t -> event_ioval event_io'_of_yojson : Yojson.Safe.t -> event_io'val event_type'_of_yojson : Yojson.Safe.t -> event_type'val event_marking_of_yojson : Yojson.Safe.t -> event_markingval event_marking'_of_yojson : Yojson.Safe.t -> event_marking'val relation_of_yojson : Yojson.Safe.t -> relationval relation'_of_yojson : Yojson.Safe.t -> relation'val relation_type_of_yojson : Yojson.Safe.t -> relation_typeval yojson_of_annotated :
('a -> Yojson.Safe.t) ->
'a annotated ->
Yojson.Safe.tval yojson_of_program : program -> Yojson.Safe.tval yojson_of_subprogram : subprogram -> Yojson.Safe.tval yojson_of_type_expr : type_expr -> Yojson.Safe.tval yojson_of_type_expr' : type_expr' -> Yojson.Safe.tval yojson_of_expr : expr -> Yojson.Safe.tval yojson_of_expr' : expr' -> Yojson.Safe.tval yojson_of_binary_op_type : binary_op_type -> Yojson.Safe.tval yojson_of_unary_op_type : unary_op_type -> Yojson.Safe.tval yojson_of_record_field :
('a -> Yojson.Safe.t) ->
'a record_field ->
Yojson.Safe.tval yojson_of_template_param' : template_param' -> Yojson.Safe.tval yojson_of_template_def : template_def -> Yojson.Safe.tval yojson_of_template_arg : template_arg -> Yojson.Safe.tval yojson_of_template_instance : template_instance -> Yojson.Safe.tval yojson_of_template_instance' : template_instance' -> Yojson.Safe.tval yojson_of_template_annotation : template_annotation -> Yojson.Safe.tval yojson_of_template_annotation' : template_annotation' -> Yojson.Safe.tval yojson_of_event : event -> Yojson.Safe.tval yojson_of_event' : event' -> Yojson.Safe.tval yojson_of_event_id : event_id -> Yojson.Safe.tval yojson_of_event_label : event_label -> Yojson.Safe.tval yojson_of_event_info' : event_info' -> Yojson.Safe.tval yojson_of_event_io : event_io -> Yojson.Safe.tval yojson_of_event_io' : event_io' -> Yojson.Safe.tval yojson_of_event_type' : event_type' -> Yojson.Safe.tval yojson_of_event_marking : event_marking -> Yojson.Safe.tval yojson_of_event_marking' : event_marking' -> Yojson.Safe.tval yojson_of_relation : relation -> Yojson.Safe.tval yojson_of_relation' : relation' -> Yojson.Safe.tval yojson_of_relation_type : relation_type -> Yojson.Safe.tval annotate : ?loc:loc -> ?ty:type_expr' option -> 'a -> 'a annotatedval deannotate : 'a annotated -> 'aval deannotate_list : 'a annotated list -> 'a listval mk_loc : ?filename:string -> Lexing.position -> Lexing.position -> locval mk_pos : ?filename:string -> int -> int -> Lexing.positionval mk_marking :
?executed:bool ->
?pending:bool ->
?included:bool ->
?value:expr' ->
unit ->
event_marking'val default_marking : event_marking'val default_marking_excl : event_marking'val default_marking_pend : event_marking'val default_marking_pend_excl : event_marking'val mk_event :
?marking:event_marking' ->
event_info' ->
event_io ->
event' annotatedval mk_spawn_relation :
from:event_id ->
?guard:expr ->
subprogram ->
relation' annotatedval mk_spawn_relations :
event_id list ->
expr ->
subprogram ->
relation' annotated listval mk_program :
?template_decls:template_def list ->
?events:event list ->
?template_insts:template_instance list ->
?relations:relation list ->
?annotations:template_annotation' list ->
'a ->
programval to_program :
(event list
* template_instance list
* relation list
* template_annotation' list) ->
programval to_subprogram :
program ->
event list
* template_instance list
* relation list
* template_annotation' listval empty_program : programval get_event_type : event_io' annotated -> event_type'val show_event_type' : string -> event_type' -> string