Module Xquery_ast

module Xquery_ast: sig .. end

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