public class ParserExtension
extends java.lang.Object
| Constructor and Description |
|---|
ParserExtension() |
| Modifier and Type | Method and Description |
|---|---|
Expression |
createDynamicCurriedFunction(XPathParser p,
Expression functionItem,
java.util.ArrayList<Expression> args,
IntSet placeMarkers) |
LocalBinding |
findOuterRangeVariable(XPathParser p,
StructuredQName qName)
When a variable reference occurs within an inline function, it might be a reference to a variable declared
outside the inline function (which needs to become part of the closure.
|
void |
handleExternalFunctionDeclaration(XQueryParser p,
XQueryFunction func) |
Expression |
makeArgumentPlaceMarker(XPathParser p)
Parse a function argument.
|
Expression |
makeCurriedFunction(XPathParser parser,
int offset,
StructuredQName name,
Expression[] args,
IntSet placeMarkers)
Process a function call in which one or more of the argument positions are
represented as "?" placemarkers (indicating partial application or currying)
|
protected Expression |
parseExtendedExprSingle(XPathParser p) |
ItemType |
parseExtendedItemType(XPathParser p)
Parse an ItemType within a SequenceType
|
ItemType |
parseFunctionItemType(XPathParser p,
AnnotationList annotations)
Parse the item type used for function items (XQuery 3.0 higher order functions)
Syntax (changed by WG decision on 2009-09-22):
function '(' '*' ') |
function '(' (SeqType (',' SeqType)*)? ')' 'as' SeqType
For backwards compatibility with Saxon 9.2 we allow the "*" to be omitted for the time being
The "function(" has already been read
|
protected Expression |
parseInlineFunction(XPathParser p,
AnnotationList annotations)
Parse an inline function
"function" "(" ParamList? ")" ("as" SequenceType)? EnclosedExpr
On entry, "function (" has already been read
|
Expression |
parseNamedFunctionReference(XPathParser p)
Parse a literal function item (function#arity).
|
void |
parseRevalidationDeclaration(XQueryParser p)
Parse the "declare revalidation" declaration.
|
Expression |
parseSimpleInlineFunction(XPathParser p) |
Expression |
parseTildePattern(XPathParser p)
Parse an extended XSLT pattern in the form ~type-alias (predicate)*
|
void |
parseTypeAliasDeclaration(XQueryParser p)
Parse a type alias declaration.
|
void |
parseUpdatingFunctionDeclaration(XQueryParser p)
Parse an updating function declaration (allowed in XQuery Update only)
|
public Expression parseNamedFunctionReference(XPathParser p) throws XPathException
p - the parserXPathException - in the event of a syntax errorpublic ItemType parseFunctionItemType(XPathParser p, AnnotationList annotations) throws XPathException
annotations - the list of annotation assertions for this function item typeXPathExceptionpublic ItemType parseExtendedItemType(XPathParser p) throws XPathException
XPathException - if a static error is foundpublic Expression parseTildePattern(XPathParser p) throws XPathException
XPathExceptionpublic Expression makeArgumentPlaceMarker(XPathParser p) throws XPathException
XPathExceptionprotected Expression parseInlineFunction(XPathParser p, AnnotationList annotations) throws XPathException
XPathException - if a syntax error is foundpublic Expression parseSimpleInlineFunction(XPathParser p) throws XPathException
XPathExceptionpublic Expression makeCurriedFunction(XPathParser parser, int offset, StructuredQName name, Expression[] args, IntSet placeMarkers) throws XPathException
offset - offset in the query source of the start of the expressionname - the function call (as if there were no currying)args - the arguments (with EmptySequence in the placemarker positions)placeMarkers - the positions of the placemarkers @return the curried functionXPathExceptionpublic LocalBinding findOuterRangeVariable(XPathParser p, StructuredQName qName)
qName - the name of the variablepublic Expression createDynamicCurriedFunction(XPathParser p, Expression functionItem, java.util.ArrayList<Expression> args, IntSet placeMarkers) throws XPathException
XPathExceptionpublic void handleExternalFunctionDeclaration(XQueryParser p, XQueryFunction func) throws XPathException
XPathExceptionpublic void parseTypeAliasDeclaration(XQueryParser p) throws XPathException
XPathException - if parsing failspublic void parseRevalidationDeclaration(XQueryParser p) throws XPathException
XPathException - if the syntax is incorrect, or is not allowed in this XQuery processorpublic void parseUpdatingFunctionDeclaration(XQueryParser p) throws XPathException
XPathException - if parsing fails or if updating functions are not allowedprotected Expression parseExtendedExprSingle(XPathParser p) throws XPathException
XPathExceptionCopyright (c) 2004-2020 Saxonica Limited. All rights reserved.