sig
type element_test =
SchemaElementTest of Xquery_common_ast.ename
| ElementTest of
(Xquery_common_ast.ename * Xquery_common_ast.tname option) option
type attribute_test =
SchemaAttributeTest of Xquery_common_ast.aname
| AttributeTest of
(Xquery_common_ast.aname * Xquery_common_ast.tname option) option
type kind_test =
DocumentKind of Xquery_ast.element_test option
| ElementKind of Xquery_ast.element_test
| AttributeKind of Xquery_ast.attribute_test
| PIKind of string option
| CommentKind
| TextKind
| AnyKind
type itemtype =
ITKindTest of Xquery_ast.kind_test
| ITTypeRef of Xquery_common_ast.tname
| ITItem
| ITNumeric
| ITAnyString
| ITAtomic of Xquery_common_ast.tname
| ITEmpty
type sequencetype_desc =
Xquery_ast.itemtype * (Occurrence.occurs * Occurrence.occurs) option
type sequencetype = {
psequencetype_desc : Xquery_ast.sequencetype_desc;
psequencetype_loc : Finfo.finfo;
}
type node_test =
PNameTest of Namespace_names.uqname
| PNodeKindTest of Xquery_ast.kind_test
type pattern = {
ppattern_desc : Xquery_ast.pattern_desc;
ppattern_loc : Finfo.finfo;
}
and pattern_desc = Case of Xquery_ast.sequencetype | Default
type expr = { pexpr_desc : Xquery_ast.expr_desc; pexpr_loc : Finfo.finfo; }
and expr_desc =
EUnordered of Xquery_ast.expr list
| EOrdered of Xquery_ast.expr list
| EBinaryOp of Xquery_ast.expr * Xquery_common_ast.binop *
Xquery_ast.expr
| EFLWOR of Xquery_ast.fl_expr list * Xquery_ast.expr option *
Xquery_ast.order_by option * Xquery_ast.expr
| EIf of Xquery_ast.expr * Xquery_ast.expr * Xquery_ast.expr
| ESome of
(Xquery_ast.sequencetype option * Xquery_common_ast.vname *
Xquery_ast.expr)
list * Xquery_ast.expr
| EEvery of
(Xquery_ast.sequencetype option * Xquery_common_ast.vname *
Xquery_ast.expr)
list * Xquery_ast.expr
| ETypeswitch of Xquery_ast.expr *
(Xquery_ast.pattern * Xquery_common_ast.vname option *
Xquery_ast.expr)
list
| EInstanceOf of Xquery_ast.expr * Xquery_ast.sequencetype
| ERange of Xquery_ast.expr * Xquery_ast.expr
| EUnaryOp of Xquery_common_ast.unaryop * Xquery_ast.expr
| ERoot
| EPath of Xquery_ast.path_expr
| ESelf
| EParent
| EVar of Xquery_common_ast.vname
| EScalar of Xquery_common_ast.literal
| EApp of Xquery_common_ast.fname * Xquery_ast.expr list
| EList of Xquery_ast.expr list
| EEnclosed of Xquery_ast.expr
| ECast of Xquery_ast.expr * Xquery_ast.sequencetype
| ECastable of Xquery_ast.expr * Xquery_ast.sequencetype
| ETreat of Xquery_ast.expr * Xquery_ast.sequencetype
| EValidate of Xquery_common_ast.validation_mode option * Xquery_ast.expr
| EElemFixed of Xquery_common_ast.ename * Xquery_ast.expr list *
Xquery_ast.expr list
| EElemComputed of Xquery_ast.expr list * Xquery_ast.expr list
| EAttrFixed of Xquery_common_ast.aname * Xquery_ast.expr list
| EAttrComputed of Xquery_ast.expr list * Xquery_ast.expr list
| EDocument of Xquery_ast.expr list
| EText of string
| ECharRef of int
| ETextComputed of Xquery_ast.expr list
| EPI of Namespace_names.ncname * string
| EPIComputed of Xquery_ast.expr list * Xquery_ast.expr list
| EComment of string
| ECommentComputed of Xquery_ast.expr list
| EPragma of Namespace_names.uqname * string * Xquery_ast.expr list
| ELetServerImplement of Namespace_names.ncname *
Namespace_names.ncname * Xquery_ast.expr * Xquery_ast.expr
| EForServerClose of Namespace_names.ncname * Namespace_names.ncname *
Xquery_ast.expr
| EExecute of bool * Namespace_names.ncname * Xquery_ast.expr
| EEvalClosure of Xquery_ast.expr
| ECopy of Xquery_ast.expr
| ESnap of Xquery_common_ast.snap_modifier * Xquery_ast.expr
| EDelete of Xquery_ast.snap * Xquery_ast.expr
| EInsert of Xquery_ast.snap * Xquery_ast.expr *
Xquery_ast.insert_location
| ERename of Xquery_ast.snap * Xquery_ast.expr * Xquery_ast.expr
| EReplace of Xquery_ast.snap * Xquery_common_ast.value_of_flag *
Xquery_ast.expr * Xquery_ast.expr
| ERevalidate of Xquery_ast.snap *
Xquery_common_ast.validation_mode option * Xquery_ast.expr
| ETransform of Xquery_ast.copyvar_expr list * Xquery_ast.expr *
Xquery_ast.expr
| EWhile of Xquery_ast.expr * Xquery_ast.expr
| ELetvar of Xquery_ast.sequencetype option * Xquery_common_ast.vname *
Xquery_ast.expr * Xquery_ast.expr
| ESet of Xquery_common_ast.vname * Xquery_ast.expr
| EBlock of Xquery_ast.block_decl_expr list * Xquery_ast.expr list
and path_expr =
PSlash of Xquery_ast.expr * Xquery_ast.expr
| PSlashSlash of Xquery_ast.expr * Xquery_ast.expr
| PAxis of Xquery_common_ast.axis * Xquery_ast.node_test
| PStepQualifiers of Xquery_ast.expr * Xquery_ast.step_qualifier list
and step_qualifier = {
pstep_qualifier_desc : Xquery_ast.step_qualifier_desc;
pstep_qualifier_loc : Finfo.finfo;
}
and step_qualifier_desc = PredicateQualifier of Xquery_ast.expr
and fl_expr = {
pfl_desc : Xquery_ast.fl_expr_desc;
pfl_loc : Finfo.finfo;
}
and fl_expr_desc =
ELet of Xquery_ast.sequencetype option * Xquery_common_ast.vname *
Xquery_ast.expr
| EFor of Xquery_ast.sequencetype option * Xquery_common_ast.vname *
Xquery_common_ast.vname option * Xquery_ast.expr
and order_by = Xquery_common_ast.stablekind * Xquery_ast.order_spec list
and order_spec =
Xquery_ast.expr * Xquery_common_ast.sortkind *
Xquery_common_ast.emptysortkind option
and insert_location =
EAsLastInto of Xquery_ast.expr
| EAsFirstInto of Xquery_ast.expr
| EInto of Xquery_ast.expr
| EAfter of Xquery_ast.expr
| EBefore of Xquery_ast.expr
and snap = Snap | NoSnap
and copyvar_expr_desc = Xquery_common_ast.vname * Xquery_ast.expr
and copyvar_expr = {
pcopyvar_desc : Xquery_ast.copyvar_expr_desc;
pcopyvar_loc : Finfo.finfo;
}
and block_decl_expr = {
bl_decl_desc : Xquery_ast.block_decl_desc;
bl_decl_loc : Finfo.finfo;
}
and block_decl_desc =
Xquery_ast.sequencetype option * Xquery_common_ast.vname *
Xquery_ast.expr
type statement = Xquery_ast.expr
type function_body =
EFunctionBltIn
| EFunctionInterface
| EFunctionImported
| EFunctionUser of Xquery_ast.expr
type function_signature =
Xquery_ast.sequencetype option list * Xquery_ast.sequencetype option
type function_def = {
pfunction_def_desc : Xquery_ast.function_def_desc;
pfunction_loc : Finfo.finfo;
}
and function_def_desc =
Xquery_common_ast.fname * Xquery_common_ast.vname list *
Xquery_ast.function_signature * Xquery_ast.function_body *
Xquery_common_ast.updating_modifier
type var_body =
EVarExternal
| EVarInterface
| EVarImported
| EVarUser of Xquery_ast.expr
type var_decl = {
pvar_decl_desc : Xquery_ast.var_decl_desc;
pvar_decl_loc : Finfo.finfo;
}
and var_decl_desc =
Xquery_common_ast.vname * Xquery_ast.sequencetype option *
Xquery_ast.var_body
type server_decl = {
pserver_decl_desc : Xquery_ast.server_decl_desc;
pserver_decl_loc : Finfo.finfo;
}
and server_decl_desc =
Namespace_names.ncname * Namespace_names.ncname * Xquery_ast.expr
type index_def = {
pindex_def_desc : Xquery_ast.index_def_desc;
pindex_def_loc : Finfo.finfo;
}
and index_def_desc =
ValueIndex of string * Xquery_ast.expr * Xquery_ast.expr
| NameIndex of Xquery_common_ast.ename
type context_decl = {
pcontext_decl_desc : Xquery_ast.context_decl_desc;
pcontext_decl_loc : Finfo.finfo;
}
and context_decl_desc =
EBaseURIDecl of string
| ENamespaceDecl of Xquery_common_ast.namespace_declaration
| EDefaultElementNamespaceDecl of Namespace_names.uri
| EDefaultFunctionNamespaceDecl of Namespace_names.uri
| ESchemaDecl of (Namespace_names.prefix option * string * string option)
| EImportServiceDecl of (Namespace_names.ncname * string * string option)
| EImportModuleDecl of (Namespace_names.ncname * string * string option)
| EXmlSpaceDecl of Xquery_common_ast.strip_or_preserve
| EDefaultCollationDecl of string
| EConstructionDecl of Xquery_common_ast.strip_or_preserve
| EOrderingDecl of Xquery_common_ast.ordered_or_unordered
| EDefaultEmptyOrderDecl of Xquery_common_ast.emptysortkind
| ECopyNamespacesDecl of
(Xquery_common_ast.preserve_or_no_preserve *
Xquery_common_ast.inherit_or_no_inherit)
| EImportInterfaceDecl of
(Namespace_names.ncname * string * string option)
type funcvar_def =
OptionDecl of Xquery_common_ast.ename * string
| FunDef of Xquery_ast.function_def
| VarDef of Xquery_ast.var_decl
| ServerDef of Xquery_ast.server_decl
type prolog = {
mutable pprolog_xschemas : Xquery_type_ast.xschema list;
mutable pprolog_contexts : Xquery_ast.context_decl list;
mutable pprolog_funcvars : Xquery_ast.funcvar_def list;
mutable pprolog_indices : Xquery_ast.index_def list;
}
type interface_prolog = {
mutable iprolog_xschemas : Xquery_type_ast.xschema list;
mutable iprolog_contexts : Xquery_ast.context_decl list;
mutable iprolog_funcvars : Xquery_ast.funcvar_def list;
}
type interface = {
pinterface_decl : Namespace_names.ncname * string;
pinterface_prolog : Xquery_ast.interface_prolog;
}
type library_module = {
plibrary_module_decl :
Namespace_names.ncname * string * (string * string option) option;
plibrary_module_prolog : Xquery_ast.prolog;
}
type main_module = {
pmain_module_prolog : Xquery_ast.prolog;
pmain_module_statements : Xquery_ast.statement list;
}
type xmodule =
ELibraryModule of Xquery_ast.library_module
| EMainModule of Xquery_ast.main_module
type expr_handle = Xquery_ast.expr option
end