Module Xquery_core_ast


module Xquery_core_ast: sig .. end


type celement_test =
| CSchemaElementTest of Xquery_common_ast.cename
| CElementTest of (Xquery_common_ast.cename * Xquery_common_ast.ctname option) option

type cattribute_test =
| CSchemaAttributeTest of Xquery_common_ast.caname
| CAttributeTest of (Xquery_common_ast.caname * Xquery_common_ast.ctname option) option

type ckind_test =
| CDocumentKind of celement_test option
| CElementKind of celement_test
| CAttributeKind of cattribute_test
| CPIKind of string option
| CCommentKind
| CTextKind
| CAnyKind

type citemtype =
| CITKindTest of ckind_test
| CITTypeRef of Xquery_common_ast.ctname
| CITItem
| CITNumeric
| CITAnyString
| CITAtomic of Xquery_common_ast.ctname
| CITEmpty
type csequencetype_desc = citemtype * Occurrence.occurrence_indicator option 

type csequencetype = {
   pcsequencetype_desc : csequencetype_desc;
   pcsequencetype_loc : Finfo.finfo;
}
type cfunction_signature = (csequencetype * Xquery_type_core_ast.cxtype) list *
(csequencetype * Xquery_type_core_ast.cxtype)

type cpattern = {
   pcpattern_desc : cpattern_desc;
   pcpattern_loc : Finfo.finfo;
}
type cpattern_desc =
| CCase of (csequencetype * Xquery_type_core_ast.cxtype)
| CDefault

type cnode_test =
| CPNameTest of Namespace_names.rqname
| CPNodeKindTest of (ckind_test * Xquery_type_core_ast.cxtype)
type overloaded_signature_table = (Xquery_common_ast.cfname * cfunction_signature *
acfunction_body_kind * Xquery_common_ast.updating_modifier)
list

type acexpr = {
   pcexpr_desc : acexpr_desc;
   pcexpr_annot : Xquery_core_ast_annotation.ast_annot;
   mutable pcexpr_origin : Xquery_ast.expr_handle;
   pcexpr_loc : Finfo.finfo;
}
type acinsert_location =
| CUAsLastInto of acexpr
| CUAsFirstInto of acexpr
| CUInto of acexpr
| CUAfter of acexpr
| CUBefore of acexpr

type acexpr_desc =
| CEUnordered of acexpr
| CEOrdered of acexpr
| CEFLWOR of acfl_expr list * acexpr option
* acorder_by option * acexpr
| CEIf of acexpr * acexpr * acexpr
| CETypeswitch of acexpr
* (cpattern * Xquery_common_ast.cvname option *
acexpr)
list
| CEVar of Xquery_common_ast.cvname
| CECall of Xquery_common_ast.cfname * acexpr list
* ((csequencetype * Xquery_type_core_ast.cxtype) option
list * (csequencetype * Xquery_type_core_ast.cxtype))
* Xquery_common_ast.updating_modifier * bool
| CEOverloadedCall of Xquery_common_ast.cfname * acexpr list
* overloaded_signature_table
| CEScalar of Xquery_common_ast.literal
| CESeq of acexpr * acexpr
| CEEmpty
| CEDocument of acexpr
| CEPI of Namespace_names.ncname * string
| CEPIComputed of acexpr * acexpr
| CEComment of string
| CECommentComputed of acexpr
| CEText of string
| CECharRef of int
| CETextComputed of acexpr
| CEElem of Xquery_common_ast.cename * Namespace_context.nsenv
* acexpr list
| CEAnyElem of acexpr * Namespace_context.nsenv * Namespace_context.nsenv
* acexpr
| CEAttr of Xquery_common_ast.caname * acexpr list
| CEAnyAttr of acexpr * Namespace_context.nsenv * acexpr
| CEError of acexpr list
| CETreat of acexpr
* (csequencetype * Xquery_type_core_ast.cxtype)
| CEValidate of (Xquery_common_ast.validation_mode * acexpr)
| CECast of acexpr * Namespace_context.nsenv
* (csequencetype * Xquery_type_core_ast.cxtype)
| CECastable of acexpr * Namespace_context.nsenv
* (csequencetype * Xquery_type_core_ast.cxtype)
| CEForwardAxis of Xquery_common_ast.cvname * Xquery_common_ast.axis
* cnode_test
| CEReverseAxis of Xquery_common_ast.cvname * Xquery_common_ast.axis
* cnode_test
| CESome of (csequencetype * Xquery_type_core_ast.cxtype) option
* Xquery_common_ast.cvname * acexpr
* acexpr
| CEEvery of (csequencetype * Xquery_type_core_ast.cxtype) option
* Xquery_common_ast.cvname * acexpr
* acexpr
| CELetServerImplement of Namespace_names.ncname * string * acexpr
* acexpr
| CEExecute of bool * Namespace_names.ncname * string * acexpr
* acexpr
| CEForServerClose of Namespace_names.ncname * string * acexpr
| CEEvalClosure of acexpr
| CECopy of acexpr
| CEDelete of acexpr
| CEInsert of acexpr * acinsert_location
| CERename of Namespace_context.nsenv * acexpr * acexpr
| CEReplace of Xquery_common_ast.value_of_flag * acexpr
* acexpr
| CESnap of Xquery_common_ast.snap_modifier * acexpr
| CEProtoValue of Datatypes.atomic_type
| CELetvar of (csequencetype * Xquery_type_core_ast.cxtype) option
* Xquery_common_ast.cvname * acexpr
* acexpr
| CESet of Xquery_common_ast.cvname * acexpr
| CEImperativeSeq of acexpr * acexpr
| CEWhile of acexpr * acexpr

type acfl_expr =
| CELET of (csequencetype * Xquery_type_core_ast.cxtype) option
* Xquery_common_ast.cvname * acexpr
| CEFOR of (csequencetype * Xquery_type_core_ast.cxtype) option
* Xquery_common_ast.cvname * Xquery_common_ast.cvname option
* acexpr
type acorder_by = Xquery_common_ast.stablekind * acorder_spec list *
overloaded_signature_table
type acorder_spec = acexpr * Xquery_common_ast.sortkind *
Xquery_common_ast.emptysortkind

type acfunction_body =
| CEFunctionBltIn
| CEFunctionInterface
| CEFunctionImported
| CEFunctionUser of acexpr

type acfunction_body_kind =
| CEFunctionBltInKind
| CEFunctionInterfaceKind
| CEFunctionImportedKind
| CEFunctionUserKind

type acfunction_def = {
   pcfunction_def_desc : acfunction_def_desc;
   pcfunction_def_loc : Finfo.finfo;
}
type acfunction_def_desc = (Xquery_common_ast.cfname * int) * Xquery_common_ast.cvname list *
cfunction_signature * acfunction_body *
Xquery_common_ast.updating_modifier

type acvar_body =
| CEVarExternal
| CEVarInterface
| CEVarImported
| CEVarUser of acexpr

type acvar_decl = {
   pcvar_decl_desc : acvar_decl_desc;
   pcvar_decl_loc : Finfo.finfo;
}
type acvar_decl_desc = Xquery_common_ast.cvname *
(csequencetype * Xquery_type_core_ast.cxtype) option *
acvar_body

type acserver_decl = {
   pcserver_decl_desc : acserver_decl_desc;
   pcserver_decl_loc : Finfo.finfo;
}
type acserver_decl_desc = Namespace_names.ncname * string * acexpr 

type acindex_def = {
   pcindex_def_desc : acindex_def_desc;
   pcindex_def_loc : Finfo.finfo;
}
type acindex_def_desc =
| CValueIndex of string * acexpr * acexpr
| CNameIndex of Xquery_common_ast.cename
type acstatement = acexpr 

type acprolog = {
   pcprolog_functions : acfunction_def list;
   pcprolog_vars : acvar_decl list;
   pcprolog_servers : acserver_decl list;
   pcprolog_indices : acindex_def list;
}
type acxmodule = {
   pcmodule_prolog : acprolog;
   pcmodule_statements : acstatement list;
}
type acinterface = acprolog