/*@bgen(jjtree) Generated By:JJTree: Do not edit this line. build/xpath1/java/org/w3c/xqparser/xpath-grammar.jj */ /*@egen*/options { STATIC = false; FORCE_LA_CHECK=true; } PARSER_BEGIN(XParser) package org.w3c.xqparser; import org.w3c.xqparser.Node; import org.w3c.xqparser.SimpleNode; import java.util.Stack; public class XParser/*@bgen(jjtree)*/implements XParserTreeConstants/*@egen*/ {/*@bgen(jjtree)*/ protected JJTXParserState jjtree = new JJTXParserState(); /*@egen*/ boolean isStep = false; Stack _elementStack = new Stack(); Stack binaryTokenStack = new Stack(); public Node createNode(int id) { return null; } void processToken(SimpleNode n, Token t) { if(t.kind == XParserConstants.Slash && n.id != XParserTreeConstants.JJTSLASH) return; n.processToken(t); } } PARSER_END(XParser) TOKEN_MGR_DECLS : { public Stack stateStack = new Stack(); void CommonTokenAction(Token t) {} /** * Push the current state onto the state stack. */ private void pushState() { stateStack.addElement(new Integer(curLexState)); } /** * Push the given state onto the state stack. * @param state Must be a valid state. */ private void pushState(int state) { stateStack.push(new Integer(state)); } /** * Pop the state on the state stack, and switch to that state. */ private void popState() { if (stateStack.size() == 0) { // E.g., a would-be query consisting of a single right curly brace. throw new TokenMgrError( "On line " + input_stream.getEndLine() + "," + " the expression contains an 'ending' construct" + " (e.g., a right-brace or end-tag)" + " for which the corresponding 'starting' construct does not appear.", TokenMgrError.LEXICAL_ERROR ); } int nextState = ((Integer) stateStack.pop()).intValue(); SwitchTo(nextState); } /** * Print the current line position. */ public void printLinePos() { System.err.println("Line: " + input_stream.getEndLine()); } } SimpleNode START() : {/*@bgen(jjtree) START */ SimpleNode jjtn000 = new SimpleNode(this, JJTSTART); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) START */ try { /*@egen*/ ExprSingle()/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/ { if(this.token_source.curLexState == XParserConstants.EXPR_COMMENT) throw new ParseException("Unterminated comment."); return jjtn000 ; }/*@bgen(jjtree)*/ } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { throw (RuntimeException)jjte000; } if (jjte000 instanceof ParseException) { throw (ParseException)jjte000; } throw (Error)jjte000; } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } /*@egen*/ } void ExprSingle() : {} { OrExpr() } void OperatorExpr() : {} { OrExpr() } void OrExpr() : {/*@bgen(jjtree) #OrExpr(> 1) */ SimpleNode jjtn000 = new SimpleNode(this, JJTOREXPR); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) #OrExpr(> 1) */ try { /*@egen*/ AndExpr() ("or"{ binaryTokenStack.push(token); } AndExpr()/*@bgen(jjtree) #OrExpr( 2) */ { SimpleNode jjtn001 = new SimpleNode(this, JJTOREXPR); boolean jjtc001 = true; jjtree.openNodeScope(jjtn001); } try { /*@egen*//*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn001, 2); jjtc001 = false; } /*@egen*/ { try { processToken(jjtn001, (Token)binaryTokenStack.pop()); } catch(java.util.EmptyStackException e) { token_source.printLinePos(); e.printStackTrace(); throw e; } }/*@bgen(jjtree)*/ } finally { if (jjtc001) { jjtree.closeNodeScope(jjtn001, 2); } } /*@egen*/)*/*@bgen(jjtree)*/ } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { throw (RuntimeException)jjte000; } if (jjte000 instanceof ParseException) { throw (ParseException)jjte000; } throw (Error)jjte000; } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, jjtree.nodeArity() > 1); } } /*@egen*/ } void AndExpr() : {/*@bgen(jjtree) #AndExpr(> 1) */ SimpleNode jjtn000 = new SimpleNode(this, JJTANDEXPR); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) #AndExpr(> 1) */ try { /*@egen*/ EqualityExpr() ("and"{ binaryTokenStack.push(token); } EqualityExpr()/*@bgen(jjtree) #AndExpr( 2) */ { SimpleNode jjtn001 = new SimpleNode(this, JJTANDEXPR); boolean jjtc001 = true; jjtree.openNodeScope(jjtn001); } try { /*@egen*//*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn001, 2); jjtc001 = false; } /*@egen*/ { try { processToken(jjtn001, (Token)binaryTokenStack.pop()); } catch(java.util.EmptyStackException e) { token_source.printLinePos(); e.printStackTrace(); throw e; } }/*@bgen(jjtree)*/ } finally { if (jjtc001) { jjtree.closeNodeScope(jjtn001, 2); } } /*@egen*/)*/*@bgen(jjtree)*/ } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { throw (RuntimeException)jjte000; } if (jjte000 instanceof ParseException) { throw (ParseException)jjte000; } throw (Error)jjte000; } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, jjtree.nodeArity() > 1); } } /*@egen*/ } void EqualityExpr() : {/*@bgen(jjtree) EqualityExpr */ SimpleNode jjtn000 = new SimpleNode(this, JJTEQUALITYEXPR); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) EqualityExpr */ try { /*@egen*/ RelationalExpr() (("="{ binaryTokenStack.push(token); } | "!="{ binaryTokenStack.push(token); }) RelationalExpr()/*@bgen(jjtree) #EqualityExpr( 2) */ { SimpleNode jjtn001 = new SimpleNode(this, JJTEQUALITYEXPR); boolean jjtc001 = true; jjtree.openNodeScope(jjtn001); } try { /*@egen*//*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn001, 2); jjtc001 = false; } /*@egen*/ { try { processToken(jjtn001, (Token)binaryTokenStack.pop()); } catch(java.util.EmptyStackException e) { token_source.printLinePos(); e.printStackTrace(); throw e; } }/*@bgen(jjtree)*/ } finally { if (jjtc001) { jjtree.closeNodeScope(jjtn001, 2); } } /*@egen*/)*/*@bgen(jjtree)*/ } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { throw (RuntimeException)jjte000; } if (jjte000 instanceof ParseException) { throw (ParseException)jjte000; } throw (Error)jjte000; } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } /*@egen*/ } void RelationalExpr() : {/*@bgen(jjtree) RelationalExpr */ SimpleNode jjtn000 = new SimpleNode(this, JJTRELATIONALEXPR); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) RelationalExpr */ try { /*@egen*/ AdditiveExpr() (( {/* Careful! */ token_source.SwitchTo(DEFAULT); token_source.stateStack.pop(); } {binaryTokenStack.push(token);} | ">"{ binaryTokenStack.push(token); } | "<="{ binaryTokenStack.push(token); } | ">="{ binaryTokenStack.push(token); }) AdditiveExpr()/*@bgen(jjtree) #RelationalExpr( 2) */ { SimpleNode jjtn001 = new SimpleNode(this, JJTRELATIONALEXPR); boolean jjtc001 = true; jjtree.openNodeScope(jjtn001); } try { /*@egen*//*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn001, 2); jjtc001 = false; } /*@egen*/ { try { processToken(jjtn001, (Token)binaryTokenStack.pop()); } catch(java.util.EmptyStackException e) { token_source.printLinePos(); e.printStackTrace(); throw e; } }/*@bgen(jjtree)*/ } finally { if (jjtc001) { jjtree.closeNodeScope(jjtn001, 2); } } /*@egen*/)*/*@bgen(jjtree)*/ } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { throw (RuntimeException)jjte000; } if (jjte000 instanceof ParseException) { throw (ParseException)jjte000; } throw (Error)jjte000; } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } /*@egen*/ } void AdditiveExpr() : {/*@bgen(jjtree) #AdditiveExpr(> 1) */ SimpleNode jjtn000 = new SimpleNode(this, JJTADDITIVEEXPR); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) #AdditiveExpr(> 1) */ try { /*@egen*/ MultiplicativeExpr() (( {binaryTokenStack.push(token);} | {binaryTokenStack.push(token);} ) MultiplicativeExpr()/*@bgen(jjtree) #AdditiveExpr( 2) */ { SimpleNode jjtn001 = new SimpleNode(this, JJTADDITIVEEXPR); boolean jjtc001 = true; jjtree.openNodeScope(jjtn001); } try { /*@egen*//*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn001, 2); jjtc001 = false; } /*@egen*/ { try { processToken(jjtn001, (Token)binaryTokenStack.pop()); } catch(java.util.EmptyStackException e) { token_source.printLinePos(); e.printStackTrace(); throw e; } }/*@bgen(jjtree)*/ } finally { if (jjtc001) { jjtree.closeNodeScope(jjtn001, 2); } } /*@egen*/)*/*@bgen(jjtree)*/ } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { throw (RuntimeException)jjte000; } if (jjte000 instanceof ParseException) { throw (ParseException)jjte000; } throw (Error)jjte000; } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, jjtree.nodeArity() > 1); } } /*@egen*/ } void MultiplicativeExpr() : {/*@bgen(jjtree) #MultiplicativeExpr(> 1) */ SimpleNode jjtn000 = new SimpleNode(this, JJTMULTIPLICATIVEEXPR); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) #MultiplicativeExpr(> 1) */ try { /*@egen*/ UnaryExpr() (("*"{ binaryTokenStack.push(token); } | "div"{ binaryTokenStack.push(token); } | "mod"{ binaryTokenStack.push(token); }) UnaryExpr()/*@bgen(jjtree) #MultiplicativeExpr( 2) */ { SimpleNode jjtn001 = new SimpleNode(this, JJTMULTIPLICATIVEEXPR); boolean jjtc001 = true; jjtree.openNodeScope(jjtn001); } try { /*@egen*//*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn001, 2); jjtc001 = false; } /*@egen*/ { try { processToken(jjtn001, (Token)binaryTokenStack.pop()); } catch(java.util.EmptyStackException e) { token_source.printLinePos(); e.printStackTrace(); throw e; } }/*@bgen(jjtree)*/ } finally { if (jjtc001) { jjtree.closeNodeScope(jjtn001, 2); } } /*@egen*/)*/*@bgen(jjtree)*/ } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { throw (RuntimeException)jjte000; } if (jjte000 instanceof ParseException) { throw (ParseException)jjte000; } throw (Error)jjte000; } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, jjtree.nodeArity() > 1); } } /*@egen*/ } void UnaryExpr() : {/*@bgen(jjtree) #UnaryExpr( keepUnary) */ SimpleNode jjtn000 = new SimpleNode(this, JJTUNARYEXPR); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/boolean keepUnary=false;} {/*@bgen(jjtree) #UnaryExpr( keepUnary) */ try { /*@egen*/ (/*@bgen(jjtree) #Minus( true) */ { SimpleNode jjtn001 = new SimpleNode(this, JJTMINUS); boolean jjtc001 = true; jjtree.openNodeScope(jjtn001); } try { /*@egen*//*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn001, true); jjtc001 = false; } /*@egen*/{keepUnary=true;processToken(jjtn001, token);}/*@bgen(jjtree)*/ } finally { if (jjtc001) { jjtree.closeNodeScope(jjtn001, true); } } /*@egen*/)* UnionExpr1()/*@bgen(jjtree)*/ } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { throw (RuntimeException)jjte000; } if (jjte000 instanceof ParseException) { throw (ParseException)jjte000; } throw (Error)jjte000; } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, keepUnary); } } /*@egen*/ } void UnionExpr1() : {/*@bgen(jjtree) UnionExpr1 */ SimpleNode jjtn000 = new SimpleNode(this, JJTUNIONEXPR1); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) UnionExpr1 */ try { /*@egen*/ ValueExpr() ("|"{ binaryTokenStack.push(token); } ValueExpr()/*@bgen(jjtree) #UnionExpr1( 2) */ { SimpleNode jjtn001 = new SimpleNode(this, JJTUNIONEXPR1); boolean jjtc001 = true; jjtree.openNodeScope(jjtn001); } try { /*@egen*//*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn001, 2); jjtc001 = false; } /*@egen*/ { try { processToken(jjtn001, (Token)binaryTokenStack.pop()); } catch(java.util.EmptyStackException e) { token_source.printLinePos(); e.printStackTrace(); throw e; } }/*@bgen(jjtree)*/ } finally { if (jjtc001) { jjtree.closeNodeScope(jjtn001, 2); } } /*@egen*/)*/*@bgen(jjtree)*/ } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { throw (RuntimeException)jjte000; } if (jjte000 instanceof ParseException) { throw (ParseException)jjte000; } throw (Error)jjte000; } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } /*@egen*/ } void ValueExpr() : {} { (LOOKAHEAD(2) ( FilterExpr() [({processToken(((SimpleNode)jjtree.peekNode()), token);} | /*@bgen(jjtree) #SlashSlash( true) */ { SimpleNode jjtn001 = new SimpleNode(this, JJTSLASHSLASH); boolean jjtc001 = true; jjtree.openNodeScope(jjtn001); } try { /*@egen*//*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn001, true); jjtc001 = false; } /*@egen*/{processToken(jjtn001, token);}/*@bgen(jjtree)*/ } finally { if (jjtc001) { jjtree.closeNodeScope(jjtn001, true); } } /*@egen*/) RelativePathExpr()]) | PathExpr()) } void PathExpr() : {/*@bgen(jjtree) #PathExpr(> 1) */ SimpleNode jjtn000 = new SimpleNode(this, JJTPATHEXPR); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) #PathExpr(> 1) */ try { /*@egen*/ ( ( /*@bgen(jjtree) #Slash( true) */ { SimpleNode jjtn001 = new SimpleNode(this, JJTSLASH); boolean jjtc001 = true; jjtree.openNodeScope(jjtn001); } try { /*@egen*//*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn001, true); jjtc001 = false; } /*@egen*/{processToken(jjtn001, token);}/*@bgen(jjtree)*/ } finally { if (jjtc001) { jjtree.closeNodeScope(jjtn001, true); } } /*@egen*/ [LOOKAHEAD(1) RelativePathExpr()]) | ( /*@bgen(jjtree) #SlashSlash( true) */ { SimpleNode jjtn002 = new SimpleNode(this, JJTSLASHSLASH); boolean jjtc002 = true; jjtree.openNodeScope(jjtn002); } try { /*@egen*//*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn002, true); jjtc002 = false; } /*@egen*/{processToken(jjtn002, token);}/*@bgen(jjtree)*/ } finally { if (jjtc002) { jjtree.closeNodeScope(jjtn002, true); } } /*@egen*/ RelativePathExpr()) | RelativePathExpr())/*@bgen(jjtree)*/ } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { throw (RuntimeException)jjte000; } if (jjte000 instanceof ParseException) { throw (ParseException)jjte000; } throw (Error)jjte000; } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, jjtree.nodeArity() > 1); } } /*@egen*/ } void RelativePathExpr() : {} { StepExpr() (({processToken(((SimpleNode)jjtree.peekNode()), token);} | /*@bgen(jjtree) #SlashSlash( true) */ { SimpleNode jjtn001 = new SimpleNode(this, JJTSLASHSLASH); boolean jjtc001 = true; jjtree.openNodeScope(jjtn001); } try { /*@egen*//*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn001, true); jjtc001 = false; } /*@egen*/{processToken(jjtn001, token);}/*@bgen(jjtree)*/ } finally { if (jjtc001) { jjtree.closeNodeScope(jjtn001, true); } } /*@egen*/) StepExpr())* } void StepExpr() : {/*@bgen(jjtree) #StepExpr(> 1 || isStep) */ SimpleNode jjtn000 = new SimpleNode(this, JJTSTEPEXPR); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/boolean savedIsStep = isStep; isStep=false;} {/*@bgen(jjtree) #StepExpr(> 1 || isStep) */ try { /*@egen*/ ({isStep=true;}AxisStep()/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, jjtree.nodeArity() > 1 || isStep); jjtc000 = false; } /*@egen*/{isStep = savedIsStep;} | ContextItemExpr() | AbbrevReverseStep())/*@bgen(jjtree)*/ } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { throw (RuntimeException)jjte000; } if (jjte000 instanceof ParseException) { throw (ParseException)jjte000; } throw (Error)jjte000; } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, jjtree.nodeArity() > 1 || isStep); } } /*@egen*/ } void AxisStep() : {} { (LOOKAHEAD(2) ReverseStep() | ForwardStep()) PredicateList() } void ForwardStep() : {} { (LOOKAHEAD(2) ( ForwardAxis() NodeTest()) | AbbrevForwardStep()) } void ForwardAxis() : {/*@bgen(jjtree) ForwardAxis */ SimpleNode jjtn000 = new SimpleNode(this, JJTFORWARDAXIS); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) ForwardAxis */ try { /*@egen*/ ( ( "child"{jjtn000.processValue("child");} "::") | ( "descendant"{jjtn000.processValue("descendant");} "::") | ( "attribute"{jjtn000.processValue("attribute");} "::") | ( "self"{jjtn000.processValue("self");} "::") | ( "descendant-or-self"{jjtn000.processValue("descendant-or-self");} "::") | ( "following-sibling"{jjtn000.processValue("following-sibling");} "::") | ( "following"{jjtn000.processValue("following");} "::") | ( "namespace"{jjtn000.processValue("namespace");} "::"))/*@bgen(jjtree)*/ } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } /*@egen*/ } void AbbrevForwardStep() : {/*@bgen(jjtree) AbbrevForwardStep */ SimpleNode jjtn000 = new SimpleNode(this, JJTABBREVFORWARDSTEP); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) AbbrevForwardStep */ try { /*@egen*/ ["@"{jjtn000.processValue("@");}] NodeTest()/*@bgen(jjtree)*/ } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { throw (RuntimeException)jjte000; } if (jjte000 instanceof ParseException) { throw (ParseException)jjte000; } throw (Error)jjte000; } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } /*@egen*/ } void ReverseStep() : {} { ( ReverseAxis() NodeTest()) } void ReverseAxis() : {/*@bgen(jjtree) ReverseAxis */ SimpleNode jjtn000 = new SimpleNode(this, JJTREVERSEAXIS); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) ReverseAxis */ try { /*@egen*/ ( ( "parent"{jjtn000.processValue("parent");} "::") | ( "ancestor"{jjtn000.processValue("ancestor");} "::") | ( "preceding-sibling"{jjtn000.processValue("preceding-sibling");} "::") | ( "preceding"{jjtn000.processValue("preceding");} "::") | ( "ancestor-or-self"{jjtn000.processValue("ancestor-or-self");} "::"))/*@bgen(jjtree)*/ } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } /*@egen*/ } void AbbrevReverseStep() : {/*@bgen(jjtree) AbbrevReverseStep */ SimpleNode jjtn000 = new SimpleNode(this, JJTABBREVREVERSESTEP); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) AbbrevReverseStep */ try { /*@egen*/ ".."/*@bgen(jjtree)*/ } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } /*@egen*/ } void NodeTest() : {/*@bgen(jjtree) NodeTest */ SimpleNode jjtn000 = new SimpleNode(this, JJTNODETEST); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) NodeTest */ try { /*@egen*/ (LOOKAHEAD(2) KindTest() | NameTest())/*@bgen(jjtree)*/ } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { throw (RuntimeException)jjte000; } if (jjte000 instanceof ParseException) { throw (ParseException)jjte000; } throw (Error)jjte000; } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } /*@egen*/ } void NameTest() : {/*@bgen(jjtree) NameTest */ SimpleNode jjtn000 = new SimpleNode(this, JJTNAMETEST); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) NameTest */ try { /*@egen*/ (QName() | Wildcard())/*@bgen(jjtree)*/ } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { throw (RuntimeException)jjte000; } if (jjte000 instanceof ParseException) { throw (ParseException)jjte000; } throw (Error)jjte000; } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } /*@egen*/ } void Wildcard() : {/*@bgen(jjtree) Wildcard */ SimpleNode jjtn000 = new SimpleNode(this, JJTWILDCARD); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) Wildcard */ try { /*@egen*/ ("*"/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue("*");} | /*@bgen(jjtree) #NCNameColonStar( true) */ { SimpleNode jjtn001 = new SimpleNode(this, JJTNCNAMECOLONSTAR); boolean jjtc001 = true; jjtree.openNodeScope(jjtn001); } try { /*@egen*//*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn001, true); jjtc001 = false; } /*@egen*/{processToken(jjtn001, token);}/*@bgen(jjtree)*/ } finally { if (jjtc001) { jjtree.closeNodeScope(jjtn001, true); } } /*@egen*/)/*@bgen(jjtree)*/ } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } /*@egen*/ } void FilterExpr() : {} { PrimaryExpr() PredicateList() } void PredicateList() : {/*@bgen(jjtree) #PredicateList(> 0) */ SimpleNode jjtn000 = new SimpleNode(this, JJTPREDICATELIST); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) #PredicateList(> 0) */ try { /*@egen*/ (Predicate())*/*@bgen(jjtree)*/ } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { throw (RuntimeException)jjte000; } if (jjte000 instanceof ParseException) { throw (ParseException)jjte000; } throw (Error)jjte000; } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, jjtree.nodeArity() > 0); } } /*@egen*/ } void Predicate() : {/*@bgen(jjtree) #Predicate(> 0) */ SimpleNode jjtn000 = new SimpleNode(this, JJTPREDICATE); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) #Predicate(> 0) */ try { /*@egen*/ "[" ExprSingle() "]"/*@bgen(jjtree)*/ } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { throw (RuntimeException)jjte000; } if (jjte000 instanceof ParseException) { throw (ParseException)jjte000; } throw (Error)jjte000; } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, jjtree.nodeArity() > 0); } } /*@egen*/ } void PrimaryExpr() : {} { (Literal() | VarRef() | ParenthesizedExpr() | LOOKAHEAD(2) FunctionCall()) } void Literal() : {} { (NumericLiteral() | /*@bgen(jjtree) #StringLiteral( true) */ { SimpleNode jjtn001 = new SimpleNode(this, JJTSTRINGLITERAL); boolean jjtc001 = true; jjtree.openNodeScope(jjtn001); } try { /*@egen*//*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn001, true); jjtc001 = false; } /*@egen*/{processToken(jjtn001, token);}/*@bgen(jjtree)*/ } finally { if (jjtc001) { jjtree.closeNodeScope(jjtn001, true); } } /*@egen*/) } void NumericLiteral() : {} { (/*@bgen(jjtree) #IntegerLiteral( true) */ { SimpleNode jjtn001 = new SimpleNode(this, JJTINTEGERLITERAL); boolean jjtc001 = true; jjtree.openNodeScope(jjtn001); } try { /*@egen*//*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn001, true); jjtc001 = false; } /*@egen*/{processToken(jjtn001, token);}/*@bgen(jjtree)*/ } finally { if (jjtc001) { jjtree.closeNodeScope(jjtn001, true); } } /*@egen*/ | /*@bgen(jjtree) #DecimalLiteral( true) */ { SimpleNode jjtn002 = new SimpleNode(this, JJTDECIMALLITERAL); boolean jjtc002 = true; jjtree.openNodeScope(jjtn002); } try { /*@egen*//*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn002, true); jjtc002 = false; } /*@egen*/{processToken(jjtn002, token);}/*@bgen(jjtree)*/ } finally { if (jjtc002) { jjtree.closeNodeScope(jjtn002, true); } } /*@egen*/) } void VarRef() : {} { "$" VarName() } void VarName() : {/*@bgen(jjtree) VarName */ SimpleNode jjtn000 = new SimpleNode(this, JJTVARNAME); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) VarName */ try { /*@egen*/ QName()/*@bgen(jjtree)*/ } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { throw (RuntimeException)jjte000; } if (jjte000 instanceof ParseException) { throw (ParseException)jjte000; } throw (Error)jjte000; } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } /*@egen*/ } void ParenthesizedExpr() : {/*@bgen(jjtree) ParenthesizedExpr */ SimpleNode jjtn000 = new SimpleNode(this, JJTPARENTHESIZEDEXPR); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) ParenthesizedExpr */ try { /*@egen*/ "(" ExprSingle() ")"/*@bgen(jjtree)*/ } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { throw (RuntimeException)jjte000; } if (jjte000 instanceof ParseException) { throw (ParseException)jjte000; } throw (Error)jjte000; } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } /*@egen*/ } void ContextItemExpr() : {/*@bgen(jjtree) ContextItemExpr */ SimpleNode jjtn000 = new SimpleNode(this, JJTCONTEXTITEMEXPR); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) ContextItemExpr */ try { /*@egen*/ "."/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue(".");}/*@bgen(jjtree)*/ } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } /*@egen*/ } void FunctionCall() : {/*@bgen(jjtree) FunctionCall */ SimpleNode jjtn000 = new SimpleNode(this, JJTFUNCTIONCALL); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) FunctionCall */ try { /*@egen*/ FunctionQName() ( "(" [ExprSingle() ("," ExprSingle())*] ")")/*@bgen(jjtree)*/ } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { throw (RuntimeException)jjte000; } if (jjte000 instanceof ParseException) { throw (ParseException)jjte000; } throw (Error)jjte000; } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } /*@egen*/ } void KindTest() : {} { (PITest() | CommentTest() | TextTest() | AnyKindTest()) } void AnyKindTest() : {/*@bgen(jjtree) AnyKindTest */ SimpleNode jjtn000 = new SimpleNode(this, JJTANYKINDTEST); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) AnyKindTest */ try { /*@egen*/ "node" "(" ")"/*@bgen(jjtree)*/ } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } /*@egen*/ } void TextTest() : {/*@bgen(jjtree) TextTest */ SimpleNode jjtn000 = new SimpleNode(this, JJTTEXTTEST); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) TextTest */ try { /*@egen*/ "text" "(" ")"/*@bgen(jjtree)*/ } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } /*@egen*/ } void CommentTest() : {/*@bgen(jjtree) CommentTest */ SimpleNode jjtn000 = new SimpleNode(this, JJTCOMMENTTEST); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) CommentTest */ try { /*@egen*/ "comment" "(" ")"/*@bgen(jjtree)*/ } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } /*@egen*/ } void PITest() : {/*@bgen(jjtree) PITest */ SimpleNode jjtn000 = new SimpleNode(this, JJTPITEST); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) PITest */ try { /*@egen*/ "processing-instruction" "(" [/*@bgen(jjtree) #StringLiteral( true) */ { SimpleNode jjtn001 = new SimpleNode(this, JJTSTRINGLITERAL); boolean jjtc001 = true; jjtree.openNodeScope(jjtn001); } try { /*@egen*//*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn001, true); jjtc001 = false; } /*@egen*/{processToken(jjtn001, token);}/*@bgen(jjtree)*/ } finally { if (jjtc001) { jjtree.closeNodeScope(jjtn001, true); } } /*@egen*/] ")"/*@bgen(jjtree)*/ } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } /*@egen*/ } void NCName() : {/*@bgen(jjtree) NCName */ SimpleNode jjtn000 = new SimpleNode(this, JJTNCNAME); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) NCName */ try { /*@egen*/ QName()/*@bgen(jjtree)*/ } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { throw (RuntimeException)jjte000; } if (jjte000 instanceof ParseException) { throw (ParseException)jjte000; } throw (Error)jjte000; } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } /*@egen*/ } void QName() : {/*@bgen(jjtree) QName */ SimpleNode jjtn000 = new SimpleNode(this, JJTQNAME); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) QName */ try { /*@egen*/ (FunctionQName() | "comment"/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue("comment");} | "node"/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue("node");} | "processing-instruction"/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue("processing-instruction");} | "text"/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue("text");})/*@bgen(jjtree)*/ } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { throw (RuntimeException)jjte000; } if (jjte000 instanceof ParseException) { throw (ParseException)jjte000; } throw (Error)jjte000; } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } /*@egen*/ } void FunctionQName() : {/*@bgen(jjtree) FunctionQName */ SimpleNode jjtn000 = new SimpleNode(this, JJTFUNCTIONQNAME); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); /*@egen*/} {/*@bgen(jjtree) FunctionQName */ try { /*@egen*/ (/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{processToken(((SimpleNode)jjtree.peekNode()), token);} | "ancestor"/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue("ancestor");} | "ancestor-or-self"/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue("ancestor-or-self");} | "and"/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue("and");} | "attribute"/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue("attribute");} | "child"/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue("child");} | "descendant"/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue("descendant");} | "descendant-or-self"/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue("descendant-or-self");} | "div"/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue("div");} | "following"/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue("following");} | "following-sibling"/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue("following-sibling");} | "mod"/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue("mod");} | "namespace"/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue("namespace");} | "or"/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue("or");} | "parent"/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue("parent");} | "preceding"/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue("preceding");} | "preceding-sibling"/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue("preceding-sibling");} | "self"/*@bgen(jjtree)*/ { jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; } /*@egen*/{jjtn000.processValue("self");})/*@bgen(jjtree)*/ } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } /*@egen*/ } TOKEN : { < NumericLiteralError : ( ( "." ) | ( ("." (["0" - "9"])*)?)) (["e", "E"] (["+", "-"])? )? ["a" - "z", "A" - "Z"] > } TOKEN : { < Slash : "/" > } TOKEN : { < SlashSlash : "//" > } TOKEN : { < External : "external" > } TOKEN : { < LeftAngleBracket : "<" > { pushState(); } : DEFAULT } TOKEN : { < Plus : "+" > } TOKEN : { < Minus : "-" > } TOKEN : { < NCNameColonStar : ":" "*" > } TOKEN : { < IntegerLiteral : > } TOKEN : { < DecimalLiteral : ( ( "." ) | ( "." (["0" - "9"])*)) > } TOKEN : { < StringLiteral : ( ( "\"" (~["\""])* "\"") | ( "'" (~["'"])* "'")) > } TOKEN : { < QNameToken : ( ":")? > } TOKEN : { < #NCNameTok : ()* > } TOKEN : { < #Char : ["\t", "\r", "\n", " " - "\ufffd"] > } TOKEN : { < #Digits : (["0" - "9"])+ > } TOKEN : { < #WhitespaceChar : ["\t", "\r", "\n", " "] > } TOKEN : { < #LocalPart : > } TOKEN : { < #Nmstart : ( | "_") > } TOKEN : { < #Nmchar : ( | | | | "." | "-" | "_") > } TOKEN : { < #Letter : ( | ) > } TOKEN : { < #BaseChar : ["A" - "Z", "a" - "z", "\u00c0" - "\u00d6", "\u00d8" - "\u00f6", "\u00f8" - "\u00ff", "\u0100" - "\u0131", "\u0134" - "\u013e", "\u0141" - "\u0148", "\u014a" - "\u017e", "\u0180" - "\u01c3", "\u01cd" - "\u01f0", "\u01f4" - "\u01f5", "\u01fa" - "\u0217", "\u0250" - "\u02a8", "\u02bb" - "\u02c1", "\u0386", "\u0388" - "\u038a", "\u038c", "\u038e" - "\u03a1", "\u03a3" - "\u03ce", "\u03d0" - "\u03d6", "\u03da", "\u03dc", "\u03de", "\u03e0", "\u03e2" - "\u03f3", "\u0401" - "\u040c", "\u040e" - "\u044f", "\u0451" - "\u045c", "\u045e" - "\u0481", "\u0490" - "\u04c4", "\u04c7" - "\u04c8", "\u04cb" - "\u04cc", "\u04d0" - "\u04eb", "\u04ee" - "\u04f5", "\u04f8" - "\u04f9", "\u0531" - "\u0556", "\u0559", "\u0561" - "\u0586", "\u05d0" - "\u05ea", "\u05f0" - "\u05f2", "\u0621" - "\u063a", "\u0641" - "\u064a", "\u0671" - "\u06b7", "\u06ba" - "\u06be", "\u06c0" - "\u06ce", "\u06d0" - "\u06d3", "\u06d5", "\u06e5" - "\u06e6", "\u0905" - "\u0939", "\u093d", "\u0958" - "\u0961", "\u0985" - "\u098c", "\u098f" - "\u0990", "\u0993" - "\u09a8", "\u09aa" - "\u09b0", "\u09b2", "\u09b6" - "\u09b9", "\u09dc" - "\u09dd", "\u09df" - "\u09e1", "\u09f0" - "\u09f1", "\u0a05" - "\u0a0a", "\u0a0f" - "\u0a10", "\u0a13" - "\u0a28", "\u0a2a" - "\u0a30", "\u0a32" - "\u0a33", "\u0a35" - "\u0a36", "\u0a38" - "\u0a39", "\u0a59" - "\u0a5c", "\u0a5e", "\u0a72" - "\u0a74", "\u0a85" - "\u0a8b", "\u0a8d", "\u0a8f" - "\u0a91", "\u0a93" - "\u0aa8", "\u0aaa" - "\u0ab0", "\u0ab2" - "\u0ab3", "\u0ab5" - "\u0ab9", "\u0abd", "\u0ae0", "\u0b05" - "\u0b0c", "\u0b0f" - "\u0b10", "\u0b13" - "\u0b28", "\u0b2a" - "\u0b30", "\u0b32" - "\u0b33", "\u0b36" - "\u0b39", "\u0b3d", "\u0b5c" - "\u0b5d", "\u0b5f" - "\u0b61", "\u0b85" - "\u0b8a", "\u0b8e" - "\u0b90", "\u0b92" - "\u0b95", "\u0b99" - "\u0b9a", "\u0b9c", "\u0b9e" - "\u0b9f", "\u0ba3" - "\u0ba4", "\u0ba8" - "\u0baa", "\u0bae" - "\u0bb5", "\u0bb7" - "\u0bb9", "\u0c05" - "\u0c0c", "\u0c0e" - "\u0c10", "\u0c12" - "\u0c28", "\u0c2a" - "\u0c33", "\u0c35" - "\u0c39", "\u0c60" - "\u0c61", "\u0c85" - "\u0c8c", "\u0c8e" - "\u0c90", "\u0c92" - "\u0ca8", "\u0caa" - "\u0cb3", "\u0cb5" - "\u0cb9", "\u0cde", "\u0ce0" - "\u0ce1", "\u0d05" - "\u0d0c", "\u0d0e" - "\u0d10", "\u0d12" - "\u0d28", "\u0d2a" - "\u0d39", "\u0d60" - "\u0d61", "\u0e01" - "\u0e2e", "\u0e30", "\u0e32" - "\u0e33", "\u0e40" - "\u0e45", "\u0e81" - "\u0e82", "\u0e84", "\u0e87" - "\u0e88", "\u0e8a", "\u0e8d", "\u0e94" - "\u0e97", "\u0e99" - "\u0e9f", "\u0ea1" - "\u0ea3", "\u0ea5", "\u0ea7", "\u0eaa" - "\u0eab", "\u0ead" - "\u0eae", "\u0eb0", "\u0eb2" - "\u0eb3", "\u0ebd", "\u0ec0" - "\u0ec4", "\u0f40" - "\u0f47", "\u0f49" - "\u0f69", "\u10a0" - "\u10c5", "\u10d0" - "\u10f6", "\u1100", "\u1102" - "\u1103", "\u1105" - "\u1107", "\u1109", "\u110b" - "\u110c", "\u110e" - "\u1112", "\u113c", "\u113e", "\u1140", "\u114c", "\u114e", "\u1150", "\u1154" - "\u1155", "\u1159", "\u115f" - "\u1161", "\u1163", "\u1165", "\u1167", "\u1169", "\u116d" - "\u116e", "\u1172" - "\u1173", "\u1175", "\u119e", "\u11a8", "\u11ab", "\u11ae" - "\u11af", "\u11b7" - "\u11b8", "\u11ba", "\u11bc" - "\u11c2", "\u11eb", "\u11f0", "\u11f9", "\u1e00" - "\u1e9b", "\u1ea0" - "\u1ef9", "\u1f00" - "\u1f15", "\u1f18" - "\u1f1d", "\u1f20" - "\u1f45", "\u1f48" - "\u1f4d", "\u1f50" - "\u1f57", "\u1f59", "\u1f5b", "\u1f5d", "\u1f5f" - "\u1f7d", "\u1f80" - "\u1fb4", "\u1fb6" - "\u1fbc", "\u1fbe", "\u1fc2" - "\u1fc4", "\u1fc6" - "\u1fcc", "\u1fd0" - "\u1fd3", "\u1fd6" - "\u1fdb", "\u1fe0" - "\u1fec", "\u1ff2" - "\u1ff4", "\u1ff6" - "\u1ffc", "\u2126", "\u212a" - "\u212b", "\u212e", "\u2180" - "\u2182", "\u3041" - "\u3094", "\u30a1" - "\u30fa", "\u3105" - "\u312c", "\uac00" - "\ud7a3"] > } TOKEN : { < #Ideographic : ["\u4e00" - "\u9fa5", "\u3007", "\u3021" - "\u3029"] > } TOKEN : { < #CombiningChar : ["\u0300" - "\u0345", "\u0360" - "\u0361", "\u0483" - "\u0486", "\u0591" - "\u05a1", "\u05a3" - "\u05b9", "\u05bb" - "\u05bd", "\u05bf", "\u05c1" - "\u05c2", "\u05c4", "\u064b" - "\u0652", "\u0670", "\u06d6" - "\u06dc", "\u06dd" - "\u06df", "\u06e0" - "\u06e4", "\u06e7" - "\u06e8", "\u06ea" - "\u06ed", "\u0901" - "\u0903", "\u093c", "\u093e" - "\u094c", "\u094d", "\u0951" - "\u0954", "\u0962" - "\u0963", "\u0981" - "\u0983", "\u09bc", "\u09be", "\u09bf", "\u09c0" - "\u09c4", "\u09c7" - "\u09c8", "\u09cb" - "\u09cd", "\u09d7", "\u09e2" - "\u09e3", "\u0a02", "\u0a3c", "\u0a3e", "\u0a3f", "\u0a40" - "\u0a42", "\u0a47" - "\u0a48", "\u0a4b" - "\u0a4d", "\u0a70" - "\u0a71", "\u0a81" - "\u0a83", "\u0abc", "\u0abe" - "\u0ac5", "\u0ac7" - "\u0ac9", "\u0acb" - "\u0acd", "\u0b01" - "\u0b03", "\u0b3c", "\u0b3e" - "\u0b43", "\u0b47" - "\u0b48", "\u0b4b" - "\u0b4d", "\u0b56" - "\u0b57", "\u0b82" - "\u0b83", "\u0bbe" - "\u0bc2", "\u0bc6" - "\u0bc8", "\u0bca" - "\u0bcd", "\u0bd7", "\u0c01" - "\u0c03", "\u0c3e" - "\u0c44", "\u0c46" - "\u0c48", "\u0c4a" - "\u0c4d", "\u0c55" - "\u0c56", "\u0c82" - "\u0c83", "\u0cbe" - "\u0cc4", "\u0cc6" - "\u0cc8", "\u0cca" - "\u0ccd", "\u0cd5" - "\u0cd6", "\u0d02" - "\u0d03", "\u0d3e" - "\u0d43", "\u0d46" - "\u0d48", "\u0d4a" - "\u0d4d", "\u0d57", "\u0e31", "\u0e34" - "\u0e3a", "\u0e47" - "\u0e4e", "\u0eb1", "\u0eb4" - "\u0eb9", "\u0ebb" - "\u0ebc", "\u0ec8" - "\u0ecd", "\u0f18" - "\u0f19", "\u0f35", "\u0f37", "\u0f39", "\u0f3e", "\u0f3f", "\u0f71" - "\u0f84", "\u0f86" - "\u0f8b", "\u0f90" - "\u0f95", "\u0f97", "\u0f99" - "\u0fad", "\u0fb1" - "\u0fb7", "\u0fb9", "\u20d0" - "\u20dc", "\u20e1", "\u302a" - "\u302f", "\u3099", "\u309a"] > } TOKEN : { < #Digit : ["0" - "9", "\u0660" - "\u0669", "\u06f0" - "\u06f9", "\u0966" - "\u096f", "\u09e6" - "\u09ef", "\u0a66" - "\u0a6f", "\u0ae6" - "\u0aef", "\u0b66" - "\u0b6f", "\u0be7" - "\u0bef", "\u0c66" - "\u0c6f", "\u0ce6" - "\u0cef", "\u0d66" - "\u0d6f", "\u0e50" - "\u0e59", "\u0ed0" - "\u0ed9", "\u0f20" - "\u0f29"] > } TOKEN : { < #Extender : ["\u00b7", "\u02d0", "\u02d1", "\u0387", "\u0640", "\u0e46", "\u0ec6", "\u3005", "\u3031" - "\u3035", "\u309d" - "\u309e", "\u30fc" - "\u30fe"] > } SKIP : { < CommentStart : "(:" > { pushState(); } : EXPR_COMMENT } SKIP : { < CommentEnd : ":)" > { popState(); } } SKIP : { < CommentContent : > } SKIP : { < ImplicitlyAllowedWhitespace : ()+ > }