Module Cduce_lib_js.Lambda

type var_loc =
| Local of int
| Env of int
| Ext of Cduce_types.Compunit.t * int
| External of Cduce_types.Compunit.t * int
| Builtin of string
| Global of int
| Dummy
type expr =
| Var of {
loc : var_loc;
mutable value : Cduce_core.Value.t;
}
| Apply of expr * expr
| Abstraction of var_loc array * (Cduce_types.Types.t * Cduce_types.Types.t) list * branches * int * bool
| Check of expr * Cduce_core.Auto_pat.state
| Const of Cduce_core.Value.t
| Pair of expr * expr
| Xml of expr * expr * expr
| XmlNs of expr * expr * expr * Ns.table
| Record of expr Imap.t
| String of Encodings.Utf8.uindex * Encodings.Utf8.uindex * Encodings.Utf8.t * expr
| Match of expr * branches
| Map of expr * branches
| Transform of expr * branches
| Xtrans of expr * branches
| Try of expr * branches
| Validate of expr * Cduce_core.Schema_validator.t
| RemoveField of expr * Cduce_types.Ident.label
| Dot of expr * Cduce_types.Ident.label
| Ref of expr * Cduce_types.Types.Node.t
| Op of {
name : string;
args : expr list;
mutable code : (Cduce_core.Value.t list -> Cduce_core.Value.t) option;
}
| NsTable of Ns.table * expr
and branches = {
brs_accept_chars : bool;
brs_disp : Cduce_core.Auto_pat.state;
brs_rhs : expr Cduce_core.Auto_pat.rhs array;
brs_stack_pos : int;
}
type code_item =
| Eval of expr * int
| LetDecls of expr * int * Cduce_core.Auto_pat.state * int
| LetDecl of expr * int
type code = code_item list