Module Ast
module Ast: sig .. end
Kappa AST just after parsing
type syntax_version =
val merge_version : syntax_version -> syntax_version -> syntax_version
type ('a, 'annot) link =
| |
ANY_FREE |
| |
LNK_VALUE of int * 'annot |
| |
LNK_FREE |
| |
LNK_ANY |
| |
LNK_SOME |
| |
LNK_TYPE of 'a * 'a |
type internal = string option Locality.annot list
type port = {
}
type counter_test =
| |
CEQ of int |
| |
CGTE of int |
| |
CVAR of string |
type counter = {
}
type site =
type agent_mod =
type agent =
type mixture = agent list
type edit_notation = {
}
type arrow_notation = {
}
type rule_content =
type rule = {
}
val flip_label : string -> string
type ('pattern, 'mixture, 'id, 'rule) modif_expr =
type ('pattern, 'mixture, 'id, 'rule) perturbation = (Nbr.t option * ('pattern, 'id) Alg_expr.bool Locality.annot option *
('pattern, 'mixture, 'id, 'rule) modif_expr list *
('pattern, 'id) Alg_expr.bool Locality.annot option)
Locality.annot
type configuration = string Locality.annot * string Locality.annot list
type ('pattern, 'id) variable_def = string Locality.annot * ('pattern, 'id) Alg_expr.e Locality.annot
type ('mixture, 'id) init_t =
type ('pattern, 'mixture, 'id) init_statment = ('pattern, 'id) Alg_expr.e Locality.annot * ('mixture, 'id) init_t
type ('agent, 'pattern, 'mixture, 'id, 'rule) instruction =
type ('pattern, 'mixture, 'id, 'rule) command =
type ('agent, 'pattern, 'mixture, 'id, 'rule) compil = {
}
type parsing_compil = (agent, mixture, mixture, string, rule) compil
type parsing_instruction = (agent, mixture, mixture, string, rule) instruction
val empty_compil : parsing_compil
val no_more_site_on_right : bool -> site list -> site list -> bool
val split_mixture : mixture -> mixture * mixture
Returns (lhs,rhs)
val implicit_signature : parsing_compil -> parsing_compil
Infer agent signatures and tokens from init, rules and perturbations
Printers
val print_link : ('a -> Format.formatter -> 'a -> unit) ->
(Format.formatter -> 'a -> unit) ->
(Format.formatter -> 'b -> unit) ->
Format.formatter -> ('a, 'b) link -> unit
val print_counter : Format.formatter -> counter -> unit
val print_ast_mix : Format.formatter -> mixture -> unit
val print_ast_rule : Format.formatter -> rule -> unit
val print_rule_content : bidirectional:bool -> Format.formatter -> rule_content -> unit
val to_erased_mixture : mixture -> mixture
val to_created_mixture : mixture -> mixture
val link_to_json : ('a -> 'a -> Yojson.Basic.json) ->
('a -> Yojson.Basic.json) ->
('b -> Yojson.Basic.json list) -> ('a, 'b) link -> Yojson.Basic.json
Fragile: the list MUST NOT be a singleton
val link_of_json : ('a -> Yojson.Basic.json -> 'a) ->
(Yojson.Basic.json -> 'a) ->
(Yojson.Basic.json list -> 'b) -> Yojson.Basic.json -> ('a, 'b) link
val compil_of_json : Yojson.Basic.json -> parsing_compil
val compil_to_json : parsing_compil -> Yojson.Basic.json