package KaSim

  1. Overview
  2. Docs
type switching =
  1. | Linked of int
  2. | Freed
  3. | Maintained
  4. | Erased
type rule_internal =
  1. | I_ANY
  2. | I_ANY_CHANGED of int
  3. | I_ANY_ERASED
  4. | I_VAL_CHANGED of int * int
  5. | I_VAL_ERASED of int
type rule_agent = {
  1. ra_type : int;
  2. ra_erased : bool;
  3. ra_ports : ((int, int * int) Ast.link Locality.annot * switching) array;
  4. ra_ints : rule_internal array;
  5. ra_syntax : (((int, int * int) Ast.link Locality.annot * switching) array * rule_internal array) option;
}
type rule_mixture = rule_agent list
val forbid_modification : Locality.t -> 'a option -> unit
val several_internal_states : Locality.t -> 'a
val not_enough_specified : status:string -> side:string -> string -> (string * Locality.t) -> 'a
val several_occurence_of_site : string -> (string * Locality.t) -> 'a
val agent_to_erased : Signature.s -> rule_agent -> rule_agent
val to_erased : Signature.s -> rule_mixture -> rule_mixture
val to_maintained : rule_mixture -> rule_mixture
val to_raw_mixture : Signature.s -> rule_mixture -> Raw_mixture.t
val copy_rule_agent : rule_agent -> rule_agent
val print_rule_mixture : Signature.s -> ltypes:bool -> Raw_mixture.t -> Format.formatter -> rule_agent list -> unit
type !'a rule_agent_counters = {
  1. ra : 'a;
  2. ra_counters : (Ast.counter * switching) option array;
}
type rule = {
  1. r_mix : rule_mixture;
  2. r_created : Raw_mixture.t;
  3. r_delta_tokens : ((rule_mixture, int) Alg_expr.e Locality.annot * int) list;
  4. r_rate : (rule_mixture, int) Alg_expr.e Locality.annot;
  5. r_un_rate : ((rule_mixture, int) Alg_expr.e Locality.annot * (rule_mixture, int) Alg_expr.e Locality.annot option) option;
  6. r_editStyle : bool;
}
val print_rates : Signature.s -> (Format.formatter -> int -> unit) -> (Format.formatter -> int -> unit) -> Format.formatter -> rule -> unit
val print_rule : full:bool -> Signature.s -> (Format.formatter -> int -> unit) -> (Format.formatter -> int -> unit) -> Format.formatter -> rule -> unit
val rule_to_json : filenames:int Mods.StringMap.t -> rule -> Yojson.Basic.json
val rule_of_json : filenames:string array -> Yojson.Basic.json -> rule