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 typeXPathException
public ItemType parseExtendedItemType(XPathParser p) throws XPathException
XPathException
- if a static error is foundpublic Expression parseTildePattern(XPathParser p) throws XPathException
XPathException
public Expression makeArgumentPlaceMarker(XPathParser p) throws XPathException
XPathException
protected Expression parseInlineFunction(XPathParser p, AnnotationList annotations) throws XPathException
XPathException
- if a syntax error is foundpublic Expression parseSimpleInlineFunction(XPathParser p) throws XPathException
XPathException
public 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 functionXPathException
public 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
XPathException
public void handleExternalFunctionDeclaration(XQueryParser p, XQueryFunction func) throws XPathException
XPathException
public 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
XPathException
Copyright (c) 2004-2020 Saxonica Limited. All rights reserved.