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