Package net.sf.saxon.pattern
Class PatternParser
- java.lang.Object
-
- net.sf.saxon.expr.parser.ExpressionParser
-
- net.sf.saxon.pattern.PatternParser
-
public class PatternParser extends ExpressionParser
Parser for XSLT patterns. This is created by overriding selected parts of the standard ExpressionParser.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class net.sf.saxon.expr.parser.ExpressionParser
ExpressionParser.TemporaryContainer
-
-
Field Summary
Fields Modifier and Type Field Description (package private) intinPredicate-
Fields inherited from class net.sf.saxon.expr.parser.ExpressionParser
allowXPath30Syntax, codeInjector, defaultContainer, env, language, languageVersion, nameChecker, rangeVariables, scanOnly, SEQUENCE_TYPE, t, XPATH, XQUERY, XSLT_PATTERN
-
-
Constructor Summary
Constructors Constructor Description PatternParser()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidcustomizeTokenizer(Tokenizer t)Callback to tailor the tokenizerExpressionmakeTracer(int startOffset, Expression exp, int construct, StructuredQName qName)If tracing, wrap an expression in a trace instructionprotected ExpressionparseBasicStep(boolean firstInPattern)Parse a basic step expression (without the predicates)ExpressionparseExpression()Override the parsing of top-level expressionsExpressionparseFunctionArgument()Parse an argument to a function call.protected ExpressionparseFunctionCall()Parse a function call appearing within a pattern.PatternparsePattern(java.lang.String pattern, StaticContext env)Parse a string representing an XSLT patternprotected ExpressionparsePredicate()Parse an expression appearing within a predicate.protected ExpressionparseTypePattern()Parse a type pattern of the form "~ ItemType" (introduced in XSLT 3.0)protected voidtestPermittedAxis(byte axis)-
Methods inherited from class net.sf.saxon.expr.parser.ExpressionParser
atStartOfRelativePath, currentTokenDisplay, declareRangeVariable, disallowedAtStartOfRelativePath, expect, findRangeVariable, getCodeInjector, getDefaultContainer, getLanguage, getNameChecker, getRangeVariables, getStaticContext, getTokenizer, grumble, grumble, grumble, grumble, grumble, isKeyword, isNamespaceTestAllowed, makeCurriedFunction, makeLocalNameTest, makeNameCode, makeNameCodeSilently, makeNamespaceTest, makeNameTest, makeNodeName, makeStringLiteral, makeStructuredQName, nextToken, normalizeEQName, parse, parseBinaryExpression, parseConstructor, parseDynamicFunctionCall, parseExprSingle, parseExtensionExpression, parseFLWORExpression, parseFunctionItemType, parseInlineFunction, parseItemType, parseLiteralFunctionItem, parseMapExpression, parseMapItemType, parseNodeTest, parseNumericLiteral, parseParenthesizedItemType, parsePathExpression, parseRelativePath, parseRemainingPath, parseSequenceType, parseSequenceType, parseStepExpression, parseStringLiteral, parseSwitchExpression, parseTryCatchExpression, parseTypeswitchExpression, parseValidateExpression, parseVariableReference, reportMissingFunction, resolveFunctionName, setCodeInjector, setDefaultContainer, setLanguage, setLocation, setLocation, setLocation, setRangeVariables, setRangeVariableStack, setScanOnly, undeclareRangeVariable, warning
-
-
-
-
Method Detail
-
parsePattern
public Pattern parsePattern(java.lang.String pattern, StaticContext env) throws XPathException
Parse a string representing an XSLT pattern- Parameters:
pattern- the pattern expressed as a Stringenv- the static context for the pattern- Returns:
- a Pattern object representing the result of parsing
- Throws:
XPathException- if the pattern contains a syntax error
-
customizeTokenizer
protected void customizeTokenizer(Tokenizer t)
Callback to tailor the tokenizer- Overrides:
customizeTokenizerin classExpressionParser- Parameters:
t- the Tokenizer to be customized
-
parseExpression
public Expression parseExpression() throws XPathException
Override the parsing of top-level expressions- Overrides:
parseExpressionin classExpressionParser- Returns:
- the parsed expression
- Throws:
XPathException
-
parseBasicStep
protected Expression parseBasicStep(boolean firstInPattern) throws XPathException
Parse a basic step expression (without the predicates)- Overrides:
parseBasicStepin classExpressionParser- Parameters:
firstInPattern- true only if we are parsing the first step in a RelativePathPattern in the XSLT Pattern syntax- Returns:
- the resulting subexpression
- Throws:
XPathException- if any error is encountered
-
testPermittedAxis
protected void testPermittedAxis(byte axis) throws XPathException- Overrides:
testPermittedAxisin classExpressionParser- Throws:
XPathException
-
parseTypePattern
protected Expression parseTypePattern() throws XPathException
Parse a type pattern of the form "~ ItemType" (introduced in XSLT 3.0)- Overrides:
parseTypePatternin classExpressionParser- Returns:
- the type pattern, wrapped in a PatternSponsor to satisfy the parsing interface
- Throws:
XPathException- if any error is found, for example if XSLT 3.0 is not enabled
-
parsePredicate
protected Expression parsePredicate() throws XPathException
Parse an expression appearing within a predicate. This enables full XPath parsing, without the normal rules that apply within an XSLT pattern- Overrides:
parsePredicatein classExpressionParser- Returns:
- the parsed expression that appears within the predicate
- Throws:
XPathException
-
parseFunctionCall
protected Expression parseFunctionCall() throws XPathException
Parse a function call appearing within a pattern. Unless within a predicate, this imposes the constraints on which function calls are allowed to appear in a pattern- Overrides:
parseFunctionCallin classExpressionParser- Returns:
- the expression that results from the parsing (usually a FunctionCall)
- Throws:
XPathException
-
parseFunctionArgument
public Expression parseFunctionArgument() throws XPathException
Description copied from class:ExpressionParserParse an argument to a function call. Separate method so it can be overridden. With higher-order-function syntax in XPath 3.0/XQuery 3.0, this returns null if the pseudo-argument "?" is found.- Overrides:
parseFunctionArgumentin classExpressionParser- Returns:
- the Expression used as the argument, or null if the argument is the place-holder "?"
- Throws:
XPathException- if the argument expression does not parse correctly
-
makeTracer
public Expression makeTracer(int startOffset, Expression exp, int construct, StructuredQName qName)
Description copied from class:ExpressionParserIf tracing, wrap an expression in a trace instruction- Overrides:
makeTracerin classExpressionParser- Parameters:
startOffset- the position of the expression in the soruceexp- the expression to be wrappedconstruct- integer constant identifying the kind of constructqName- the name of the construct (if applicable)- Returns:
- the expression that does the tracing
-
-