Spel abstract syntax tree.
type op
=
| Op_eq |
| Op_ne |
| Op_lt |
| Op_le |
| Op_gt |
| Op_ge |
| Op_not |
| Op_and |
| Op_or |
| Op_plus |
| Op_minus |
| Op_uminus |
| Op_mult |
| Op_div |
| Op_mod |
| Op_concat |
| Op_toString |
operators
type expression
=
{
expr_desc : expression_desc; |
expr_loc : location; |
mutable expr_text : string option; |
}
expressions
type expression_desc
=
| E_lit of literal | |
| E_prop of expression * string | (** |
| E_prop_catch of expression * string | (** |
| E_get of expression * expression | (** |
| E_list of expression list | (** |
| E_new_array of spel_type * int option list * expression list option | (** |
| E_new of string * expression list | (** |
| E_call of expression option * string * expression list | (** |
| E_call_catch of expression option * string * expression list | (** |
| E_op of op * expression list | |
| E_conditional of expression * expression * expression | (** |
| E_ident of string | (** |
| E_anything_else | (** |
| E_context | (** |
| E_conversation_start | (** |
| E_entities | (** |
| E_input | (** |
| E_intents | (** |
| E_output | (** |
| E_variable of string * string option | (** |
| E_intent of string | (** |
| E_entity of string * string option | (** |
| E_error of string |