Module ASTLanguage.CTL
type clause=|CLet of ALVar.formula_id * ALVar.t list * CTLTypes.tLet clause: let id = definifion;
|CSet of ALVar.keyword * CTLTypes.tSet clause: set id = definition
|CDesc of ALVar.keyword * stringDescription clause eg: set message = "..."
|CPath of [ `WhitelistPath | `BlacklistPath ] * ALVar.t list"set" clauses are used for defining mandatory variables that will be used by when reporting issues: eg for defining the condition.
"desc" clauses are used for defining the error message, the suggestion, the severity.
"let" clauses are used to define temporary formulas which are then used to abbreviate the another formula. For example
let f = a And B set formula = f OR f set message = "bla"
type ctl_checker={id : string;Checker's id
definitions : clause list;A list of let/set definitions
}type al_file={import_files : string list;global_macros : clause list;global_paths : (string * ALVar.alexp list) list;checkers : ctl_checker list;}
val print_checker : ctl_checker -> unitval eval_formula : ?keep_witness:bool -> CTLTypes.t -> Ctl_parser_types.ast_node -> CLintersContext.context -> Ctl_parser_types.ast_node optionreturn the evaluation of the formula and a witness
val save_dotty_when_in_debug_mode : IBase.SourceFile.t -> unitval next_state_via_transition : Ctl_parser_types.ast_node -> CTLTypes.transitions -> Ctl_parser_types.ast_node listval create_ctl_evaluation_tracker : IBase.SourceFile.t -> unit