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