module Parsetree: sig .. end
Abstract syntax tree produced by the parser
type p_type = string
type p_read_memory_order =
| |
Prmo_nonatomic |
| |
Prmo_relaxed |
| |
Prmo_acquire |
| |
Prmo_seq_cst |
type p_write_memory_order =
| |
Pwmo_nonatomic |
| |
Pwmo_relaxed of (string * string * a_expression list) option |
| |
Pwmo_release of (string * string * a_expression list) option |
| |
Pwmo_seq_cst of (string * string * a_expression list) option |
type p_cas_memory_order =
| |
Pcmo_seq_cst |
| |
Pcmo_rel_acq |
| |
Pcmo_release |
| |
Pcmo_acquire |
| |
Pcmo_relaxed |
type p_expression = {
}
type p_expression_desc =
type actual_params = p_expression list * p_expression list
type a_expression = p_expression
without the impure cases
type dlink_kind =
type a_proposition =
type a_invariant = a_proposition option
type p_statement = {
}
type p_statement_desc =
type p_action = string * (string * Location.t) list * a_proposition *
a_proposition * a_proposition *
p_statement list * Location.t
type p_vars = (string * p_type * Location.t) list
type p_state_after = string * (string * Location.t) list * a_proposition * Location.t
type p_protocol_state = string * (string * Location.t) list * p_state_after list *
string * a_proposition * Location.t
type p_item =
type p_program = p_item list
val iter : (Location.t -> p_statement_desc -> unit) ->
p_statement list -> unit
iter f s calls f on each statement in s
val a_prop_empty : a_proposition
val exp_is_pure : p_expression -> bool