+++ /dev/null
-// $ANTLR 3.1.3 Mar 17, 2009 19:23:44 XPath.g 2009-09-30 22:59:29\r
-\r
-/*--------------------------------------------------------------------------\r
- * Copyright 2009 Taro L. Saito\r
- *\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- *--------------------------------------------------------------------------*/\r
-//--------------------------------------\r
-// XerialJ\r
-//\r
-// XPathParser.g\r
-// Since: Aug 6, 2009 08:30:02 AM\r
-//\r
-//--------------------------------------\r
-package org.xerial.lens.relation.query.impl;\r
-\r
-\r
-\r
-\r
-import org.antlr.runtime.*;\r
-import java.util.Stack;\r
-import java.util.List;\r
-import java.util.ArrayList;\r
-import java.util.Map;\r
-import java.util.HashMap;\r
-\r
-import org.antlr.runtime.tree.*;\r
-\r
-public class XPathParser extends Parser {\r
- public static final String[] tokenNames = new String[] {\r
- "<invalid>", "<EOR>", "<DOWN>", "<UP>", "XPATH", "NAME", "VALUE", "STEP", "AXIS", "PREDICATE", "LineBreakChar", "LineComment", "LineBreak", "Digit", "Letter", "HexDigit", "UnicodeChar", "EscapeSequence", "StringChar", "StringChar_s", "String", "Integer", "Frac", "Exp", "Double", "Comma", "Colon", "UnsafeUnicodeChar", "SafeFirstLetter", "SafeLetter", "WhiteSpace", "QNameChar", "QName", "WhiteSpaces", "'/'", "'//'", "'@'", "'['", "']'", "'='", "'!='", "'>'", "'>='", "'<'", "'<='", "'~='", "'('", "')'"\r
- };\r
- public static final int T__42=42;\r
- public static final int Digit=13;\r
- public static final int Frac=22;\r
- public static final int HexDigit=15;\r
- public static final int T__47=47;\r
- public static final int STEP=7;\r
- public static final int VALUE=6;\r
- public static final int T__39=39;\r
- public static final int PREDICATE=9;\r
- public static final int Letter=14;\r
- public static final int T__46=46;\r
- public static final int Comma=25;\r
- public static final int EscapeSequence=17;\r
- public static final int XPATH=4;\r
- public static final int Integer=21;\r
- public static final int WhiteSpace=30;\r
- public static final int T__34=34;\r
- public static final int AXIS=8;\r
- public static final int LineComment=11;\r
- public static final int Colon=26;\r
- public static final int T__35=35;\r
- public static final int SafeFirstLetter=28;\r
- public static final int T__36=36;\r
- public static final int Exp=23;\r
- public static final int QNameChar=31;\r
- public static final int T__44=44;\r
- public static final int UnicodeChar=16;\r
- public static final int StringChar=18;\r
- public static final int LineBreak=12;\r
- public static final int T__45=45;\r
- public static final int String=20;\r
- public static final int SafeLetter=29;\r
- public static final int LineBreakChar=10;\r
- public static final int T__43=43;\r
- public static final int QName=32;\r
- public static final int T__40=40;\r
- public static final int EOF=-1;\r
- public static final int T__38=38;\r
- public static final int T__37=37;\r
- public static final int StringChar_s=19;\r
- public static final int UnsafeUnicodeChar=27;\r
- public static final int Double=24;\r
- public static final int NAME=5;\r
- public static final int T__41=41;\r
- public static final int WhiteSpaces=33;\r
-\r
- // delegates\r
- // delegators\r
-\r
-\r
- public XPathParser(TokenStream input) {\r
- this(input, new RecognizerSharedState());\r
- }\r
- public XPathParser(TokenStream input, RecognizerSharedState state) {\r
- super(input, state);\r
- \r
- }\r
- \r
- protected TreeAdaptor adaptor = new CommonTreeAdaptor();\r
-\r
- public void setTreeAdaptor(TreeAdaptor adaptor) {\r
- this.adaptor = adaptor;\r
- }\r
- public TreeAdaptor getTreeAdaptor() {\r
- return adaptor;\r
- }\r
-\r
- public String[] getTokenNames() { return XPathParser.tokenNames; }\r
- public String getGrammarFileName() { return "XPath.g"; }\r
-\r
-\r
-\r
-\r
-\r
- public static class xpath_return extends ParserRuleReturnScope {\r
- Object tree;\r
- public Object getTree() { return tree; }\r
- };\r
-\r
- // $ANTLR start "xpath"\r
- // XPath.g:162:1: xpath : locationExpr -> ^( XPATH locationExpr ) ;\r
- public final XPathParser.xpath_return xpath() throws RecognitionException {\r
- XPathParser.xpath_return retval = new XPathParser.xpath_return();\r
- retval.start = input.LT(1);\r
-\r
- Object root_0 = null;\r
-\r
- XPathParser.locationExpr_return locationExpr1 = null;\r
-\r
-\r
- RewriteRuleSubtreeStream stream_locationExpr=new RewriteRuleSubtreeStream(adaptor,"rule locationExpr");\r
- try {\r
- // XPath.g:163:3: ( locationExpr -> ^( XPATH locationExpr ) )\r
- // XPath.g:163:5: locationExpr\r
- {\r
- pushFollow(FOLLOW_locationExpr_in_xpath620);\r
- locationExpr1=locationExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) stream_locationExpr.add(locationExpr1.getTree());\r
-\r
-\r
- // AST REWRITE\r
- // elements: locationExpr\r
- // token labels: \r
- // rule labels: retval\r
- // token list labels: \r
- // rule list labels: \r
- // wildcard labels: \r
- if ( state.backtracking==0 ) {\r
- retval.tree = root_0;\r
- RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
-\r
- root_0 = (Object)adaptor.nil();\r
- // 164:3: -> ^( XPATH locationExpr )\r
- {\r
- // XPath.g:164:6: ^( XPATH locationExpr )\r
- {\r
- Object root_1 = (Object)adaptor.nil();\r
- root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(XPATH, "XPATH"), root_1);\r
-\r
- adaptor.addChild(root_1, stream_locationExpr.nextTree());\r
-\r
- adaptor.addChild(root_0, root_1);\r
- }\r
-\r
- }\r
-\r
- retval.tree = root_0;}\r
- }\r
-\r
- retval.stop = input.LT(-1);\r
-\r
- if ( state.backtracking==0 ) {\r
-\r
- retval.tree = (Object)adaptor.rulePostProcessing(root_0);\r
- adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);\r
- }\r
- }\r
- catch (RecognitionException re) {\r
- reportError(re);\r
- recover(input,re);\r
- retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);\r
-\r
- }\r
- finally {\r
- }\r
- return retval;\r
- }\r
- // $ANTLR end "xpath"\r
-\r
- public static class locationExpr_return extends ParserRuleReturnScope {\r
- Object tree;\r
- public Object getTree() { return tree; }\r
- };\r
-\r
- // $ANTLR start "locationExpr"\r
- // XPath.g:167:1: fragment locationExpr : relativePath ;\r
- public final XPathParser.locationExpr_return locationExpr() throws RecognitionException {\r
- XPathParser.locationExpr_return retval = new XPathParser.locationExpr_return();\r
- retval.start = input.LT(1);\r
-\r
- Object root_0 = null;\r
-\r
- XPathParser.relativePath_return relativePath2 = null;\r
-\r
-\r
-\r
- try {\r
- // XPath.g:169:3: ( relativePath )\r
- // XPath.g:169:5: relativePath\r
- {\r
- root_0 = (Object)adaptor.nil();\r
-\r
- pushFollow(FOLLOW_relativePath_in_locationExpr646);\r
- relativePath2=relativePath();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) adaptor.addChild(root_0, relativePath2.getTree());\r
-\r
- }\r
-\r
- retval.stop = input.LT(-1);\r
-\r
- if ( state.backtracking==0 ) {\r
-\r
- retval.tree = (Object)adaptor.rulePostProcessing(root_0);\r
- adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);\r
- }\r
- }\r
- catch (RecognitionException re) {\r
- reportError(re);\r
- recover(input,re);\r
- retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);\r
-\r
- }\r
- finally {\r
- }\r
- return retval;\r
- }\r
- // $ANTLR end "locationExpr"\r
-\r
- public static class relativePath_return extends ParserRuleReturnScope {\r
- Object tree;\r
- public Object getTree() { return tree; }\r
- };\r
-\r
- // $ANTLR start "relativePath"\r
- // XPath.g:172:1: fragment relativePath : ( step ( relativePath )? -> ^( STEP step ( relativePath )? ) | '/' step ( relativePath )? -> ^( STEP AXIS[\"PC\"] step ( relativePath )? ) | '//' step ( relativePath )? -> ^( STEP AXIS[\"AD\"] step ( relativePath )? ) );\r
- public final XPathParser.relativePath_return relativePath() throws RecognitionException {\r
- XPathParser.relativePath_return retval = new XPathParser.relativePath_return();\r
- retval.start = input.LT(1);\r
-\r
- Object root_0 = null;\r
-\r
- Token char_literal5=null;\r
- Token string_literal8=null;\r
- XPathParser.step_return step3 = null;\r
-\r
- XPathParser.relativePath_return relativePath4 = null;\r
-\r
- XPathParser.step_return step6 = null;\r
-\r
- XPathParser.relativePath_return relativePath7 = null;\r
-\r
- XPathParser.step_return step9 = null;\r
-\r
- XPathParser.relativePath_return relativePath10 = null;\r
-\r
-\r
- Object char_literal5_tree=null;\r
- Object string_literal8_tree=null;\r
- RewriteRuleTokenStream stream_35=new RewriteRuleTokenStream(adaptor,"token 35");\r
- RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34");\r
- RewriteRuleSubtreeStream stream_relativePath=new RewriteRuleSubtreeStream(adaptor,"rule relativePath");\r
- RewriteRuleSubtreeStream stream_step=new RewriteRuleSubtreeStream(adaptor,"rule step");\r
- try {\r
- // XPath.g:174:3: ( step ( relativePath )? -> ^( STEP step ( relativePath )? ) | '/' step ( relativePath )? -> ^( STEP AXIS[\"PC\"] step ( relativePath )? ) | '//' step ( relativePath )? -> ^( STEP AXIS[\"AD\"] step ( relativePath )? ) )\r
- int alt4=3;\r
- switch ( input.LA(1) ) {\r
- case QName:\r
- case 36:\r
- {\r
- alt4=1;\r
- }\r
- break;\r
- case 34:\r
- {\r
- alt4=2;\r
- }\r
- break;\r
- case 35:\r
- {\r
- alt4=3;\r
- }\r
- break;\r
- default:\r
- if (state.backtracking>0) {state.failed=true; return retval;}\r
- NoViableAltException nvae =\r
- new NoViableAltException("", 4, 0, input);\r
-\r
- throw nvae;\r
- }\r
-\r
- switch (alt4) {\r
- case 1 :\r
- // XPath.g:174:5: step ( relativePath )?\r
- {\r
- pushFollow(FOLLOW_step_in_relativePath663);\r
- step3=step();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) stream_step.add(step3.getTree());\r
- // XPath.g:174:10: ( relativePath )?\r
- int alt1=2;\r
- int LA1_0 = input.LA(1);\r
-\r
- if ( (LA1_0==QName||(LA1_0>=34 && LA1_0<=36)) ) {\r
- alt1=1;\r
- }\r
- switch (alt1) {\r
- case 1 :\r
- // XPath.g:174:10: relativePath\r
- {\r
- pushFollow(FOLLOW_relativePath_in_relativePath665);\r
- relativePath4=relativePath();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) stream_relativePath.add(relativePath4.getTree());\r
-\r
- }\r
- break;\r
-\r
- }\r
-\r
-\r
-\r
- // AST REWRITE\r
- // elements: step, relativePath\r
- // token labels: \r
- // rule labels: retval\r
- // token list labels: \r
- // rule list labels: \r
- // wildcard labels: \r
- if ( state.backtracking==0 ) {\r
- retval.tree = root_0;\r
- RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
-\r
- root_0 = (Object)adaptor.nil();\r
- // 175:4: -> ^( STEP step ( relativePath )? )\r
- {\r
- // XPath.g:175:7: ^( STEP step ( relativePath )? )\r
- {\r
- Object root_1 = (Object)adaptor.nil();\r
- root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STEP, "STEP"), root_1);\r
-\r
- adaptor.addChild(root_1, stream_step.nextTree());\r
- // XPath.g:175:19: ( relativePath )?\r
- if ( stream_relativePath.hasNext() ) {\r
- adaptor.addChild(root_1, stream_relativePath.nextTree());\r
-\r
- }\r
- stream_relativePath.reset();\r
-\r
- adaptor.addChild(root_0, root_1);\r
- }\r
-\r
- }\r
-\r
- retval.tree = root_0;}\r
- }\r
- break;\r
- case 2 :\r
- // XPath.g:176:5: '/' step ( relativePath )?\r
- {\r
- char_literal5=(Token)match(input,34,FOLLOW_34_in_relativePath686); if (state.failed) return retval; \r
- if ( state.backtracking==0 ) stream_34.add(char_literal5);\r
-\r
- pushFollow(FOLLOW_step_in_relativePath688);\r
- step6=step();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) stream_step.add(step6.getTree());\r
- // XPath.g:176:14: ( relativePath )?\r
- int alt2=2;\r
- int LA2_0 = input.LA(1);\r
-\r
- if ( (LA2_0==QName||(LA2_0>=34 && LA2_0<=36)) ) {\r
- alt2=1;\r
- }\r
- switch (alt2) {\r
- case 1 :\r
- // XPath.g:176:14: relativePath\r
- {\r
- pushFollow(FOLLOW_relativePath_in_relativePath690);\r
- relativePath7=relativePath();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) stream_relativePath.add(relativePath7.getTree());\r
-\r
- }\r
- break;\r
-\r
- }\r
-\r
-\r
-\r
- // AST REWRITE\r
- // elements: relativePath, step\r
- // token labels: \r
- // rule labels: retval\r
- // token list labels: \r
- // rule list labels: \r
- // wildcard labels: \r
- if ( state.backtracking==0 ) {\r
- retval.tree = root_0;\r
- RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
-\r
- root_0 = (Object)adaptor.nil();\r
- // 177:4: -> ^( STEP AXIS[\"PC\"] step ( relativePath )? )\r
- {\r
- // XPath.g:177:7: ^( STEP AXIS[\"PC\"] step ( relativePath )? )\r
- {\r
- Object root_1 = (Object)adaptor.nil();\r
- root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STEP, "STEP"), root_1);\r
-\r
- adaptor.addChild(root_1, (Object)adaptor.create(AXIS, "PC"));\r
- adaptor.addChild(root_1, stream_step.nextTree());\r
- // XPath.g:177:30: ( relativePath )?\r
- if ( stream_relativePath.hasNext() ) {\r
- adaptor.addChild(root_1, stream_relativePath.nextTree());\r
-\r
- }\r
- stream_relativePath.reset();\r
-\r
- adaptor.addChild(root_0, root_1);\r
- }\r
-\r
- }\r
-\r
- retval.tree = root_0;}\r
- }\r
- break;\r
- case 3 :\r
- // XPath.g:178:5: '//' step ( relativePath )?\r
- {\r
- string_literal8=(Token)match(input,35,FOLLOW_35_in_relativePath714); if (state.failed) return retval; \r
- if ( state.backtracking==0 ) stream_35.add(string_literal8);\r
-\r
- pushFollow(FOLLOW_step_in_relativePath716);\r
- step9=step();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) stream_step.add(step9.getTree());\r
- // XPath.g:178:15: ( relativePath )?\r
- int alt3=2;\r
- int LA3_0 = input.LA(1);\r
-\r
- if ( (LA3_0==QName||(LA3_0>=34 && LA3_0<=36)) ) {\r
- alt3=1;\r
- }\r
- switch (alt3) {\r
- case 1 :\r
- // XPath.g:178:15: relativePath\r
- {\r
- pushFollow(FOLLOW_relativePath_in_relativePath718);\r
- relativePath10=relativePath();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) stream_relativePath.add(relativePath10.getTree());\r
-\r
- }\r
- break;\r
-\r
- }\r
-\r
-\r
-\r
- // AST REWRITE\r
- // elements: relativePath, step\r
- // token labels: \r
- // rule labels: retval\r
- // token list labels: \r
- // rule list labels: \r
- // wildcard labels: \r
- if ( state.backtracking==0 ) {\r
- retval.tree = root_0;\r
- RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
-\r
- root_0 = (Object)adaptor.nil();\r
- // 179:4: -> ^( STEP AXIS[\"AD\"] step ( relativePath )? )\r
- {\r
- // XPath.g:179:7: ^( STEP AXIS[\"AD\"] step ( relativePath )? )\r
- {\r
- Object root_1 = (Object)adaptor.nil();\r
- root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STEP, "STEP"), root_1);\r
-\r
- adaptor.addChild(root_1, (Object)adaptor.create(AXIS, "AD"));\r
- adaptor.addChild(root_1, stream_step.nextTree());\r
- // XPath.g:179:30: ( relativePath )?\r
- if ( stream_relativePath.hasNext() ) {\r
- adaptor.addChild(root_1, stream_relativePath.nextTree());\r
-\r
- }\r
- stream_relativePath.reset();\r
-\r
- adaptor.addChild(root_0, root_1);\r
- }\r
-\r
- }\r
-\r
- retval.tree = root_0;}\r
- }\r
- break;\r
-\r
- }\r
- retval.stop = input.LT(-1);\r
-\r
- if ( state.backtracking==0 ) {\r
-\r
- retval.tree = (Object)adaptor.rulePostProcessing(root_0);\r
- adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);\r
- }\r
- }\r
- catch (RecognitionException re) {\r
- reportError(re);\r
- recover(input,re);\r
- retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);\r
-\r
- }\r
- finally {\r
- }\r
- return retval;\r
- }\r
- // $ANTLR end "relativePath"\r
-\r
- public static class step_return extends ParserRuleReturnScope {\r
- Object tree;\r
- public Object getTree() { return tree; }\r
- };\r
-\r
- // $ANTLR start "step"\r
- // XPath.g:183:1: fragment step : nodeTest ( predicate )* -> NAME[$nodeTest.text] ( predicate )* ;\r
- public final XPathParser.step_return step() throws RecognitionException {\r
- XPathParser.step_return retval = new XPathParser.step_return();\r
- retval.start = input.LT(1);\r
-\r
- Object root_0 = null;\r
-\r
- XPathParser.nodeTest_return nodeTest11 = null;\r
-\r
- XPathParser.predicate_return predicate12 = null;\r
-\r
-\r
- RewriteRuleSubtreeStream stream_nodeTest=new RewriteRuleSubtreeStream(adaptor,"rule nodeTest");\r
- RewriteRuleSubtreeStream stream_predicate=new RewriteRuleSubtreeStream(adaptor,"rule predicate");\r
- try {\r
- // XPath.g:185:3: ( nodeTest ( predicate )* -> NAME[$nodeTest.text] ( predicate )* )\r
- // XPath.g:185:5: nodeTest ( predicate )*\r
- {\r
- pushFollow(FOLLOW_nodeTest_in_step755);\r
- nodeTest11=nodeTest();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) stream_nodeTest.add(nodeTest11.getTree());\r
- // XPath.g:185:14: ( predicate )*\r
- loop5:\r
- do {\r
- int alt5=2;\r
- int LA5_0 = input.LA(1);\r
-\r
- if ( (LA5_0==37) ) {\r
- alt5=1;\r
- }\r
-\r
-\r
- switch (alt5) {\r
- case 1 :\r
- // XPath.g:185:14: predicate\r
- {\r
- pushFollow(FOLLOW_predicate_in_step757);\r
- predicate12=predicate();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) stream_predicate.add(predicate12.getTree());\r
-\r
- }\r
- break;\r
-\r
- default :\r
- break loop5;\r
- }\r
- } while (true);\r
-\r
-\r
-\r
- // AST REWRITE\r
- // elements: predicate\r
- // token labels: \r
- // rule labels: retval\r
- // token list labels: \r
- // rule list labels: \r
- // wildcard labels: \r
- if ( state.backtracking==0 ) {\r
- retval.tree = root_0;\r
- RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
-\r
- root_0 = (Object)adaptor.nil();\r
- // 185:25: -> NAME[$nodeTest.text] ( predicate )*\r
- {\r
- adaptor.addChild(root_0, (Object)adaptor.create(NAME, (nodeTest11!=null?input.toString(nodeTest11.start,nodeTest11.stop):null)));\r
- // XPath.g:185:49: ( predicate )*\r
- while ( stream_predicate.hasNext() ) {\r
- adaptor.addChild(root_0, stream_predicate.nextTree());\r
-\r
- }\r
- stream_predicate.reset();\r
-\r
- }\r
-\r
- retval.tree = root_0;}\r
- }\r
-\r
- retval.stop = input.LT(-1);\r
-\r
- if ( state.backtracking==0 ) {\r
-\r
- retval.tree = (Object)adaptor.rulePostProcessing(root_0);\r
- adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);\r
- }\r
- }\r
- catch (RecognitionException re) {\r
- reportError(re);\r
- recover(input,re);\r
- retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);\r
-\r
- }\r
- finally {\r
- }\r
- return retval;\r
- }\r
- // $ANTLR end "step"\r
-\r
- public static class nodeTest_return extends ParserRuleReturnScope {\r
- Object tree;\r
- public Object getTree() { return tree; }\r
- };\r
-\r
- // $ANTLR start "nodeTest"\r
- // XPath.g:189:1: fragment nodeTest : ( '@' )? ( QName ':' )? QName ;\r
- public final XPathParser.nodeTest_return nodeTest() throws RecognitionException {\r
- XPathParser.nodeTest_return retval = new XPathParser.nodeTest_return();\r
- retval.start = input.LT(1);\r
-\r
- Object root_0 = null;\r
-\r
- Token char_literal13=null;\r
- Token QName14=null;\r
- Token char_literal15=null;\r
- Token QName16=null;\r
-\r
- Object char_literal13_tree=null;\r
- Object QName14_tree=null;\r
- Object char_literal15_tree=null;\r
- Object QName16_tree=null;\r
-\r
- try {\r
- // XPath.g:191:3: ( ( '@' )? ( QName ':' )? QName )\r
- // XPath.g:191:5: ( '@' )? ( QName ':' )? QName\r
- {\r
- root_0 = (Object)adaptor.nil();\r
-\r
- // XPath.g:191:5: ( '@' )?\r
- int alt6=2;\r
- int LA6_0 = input.LA(1);\r
-\r
- if ( (LA6_0==36) ) {\r
- alt6=1;\r
- }\r
- switch (alt6) {\r
- case 1 :\r
- // XPath.g:191:5: '@'\r
- {\r
- char_literal13=(Token)match(input,36,FOLLOW_36_in_nodeTest785); if (state.failed) return retval;\r
- if ( state.backtracking==0 ) {\r
- char_literal13_tree = (Object)adaptor.create(char_literal13);\r
- adaptor.addChild(root_0, char_literal13_tree);\r
- }\r
-\r
- }\r
- break;\r
-\r
- }\r
-\r
- // XPath.g:191:10: ( QName ':' )?\r
- int alt7=2;\r
- int LA7_0 = input.LA(1);\r
-\r
- if ( (LA7_0==QName) ) {\r
- int LA7_1 = input.LA(2);\r
-\r
- if ( (LA7_1==Colon) ) {\r
- alt7=1;\r
- }\r
- }\r
- switch (alt7) {\r
- case 1 :\r
- // XPath.g:191:11: QName ':'\r
- {\r
- QName14=(Token)match(input,QName,FOLLOW_QName_in_nodeTest789); if (state.failed) return retval;\r
- if ( state.backtracking==0 ) {\r
- QName14_tree = (Object)adaptor.create(QName14);\r
- adaptor.addChild(root_0, QName14_tree);\r
- }\r
- char_literal15=(Token)match(input,Colon,FOLLOW_Colon_in_nodeTest791); if (state.failed) return retval;\r
- if ( state.backtracking==0 ) {\r
- char_literal15_tree = (Object)adaptor.create(char_literal15);\r
- adaptor.addChild(root_0, char_literal15_tree);\r
- }\r
-\r
- }\r
- break;\r
-\r
- }\r
-\r
- QName16=(Token)match(input,QName,FOLLOW_QName_in_nodeTest795); if (state.failed) return retval;\r
- if ( state.backtracking==0 ) {\r
- QName16_tree = (Object)adaptor.create(QName16);\r
- adaptor.addChild(root_0, QName16_tree);\r
- }\r
-\r
- }\r
-\r
- retval.stop = input.LT(-1);\r
-\r
- if ( state.backtracking==0 ) {\r
-\r
- retval.tree = (Object)adaptor.rulePostProcessing(root_0);\r
- adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);\r
- }\r
- }\r
- catch (RecognitionException re) {\r
- reportError(re);\r
- recover(input,re);\r
- retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);\r
-\r
- }\r
- finally {\r
- }\r
- return retval;\r
- }\r
- // $ANTLR end "nodeTest"\r
-\r
- public static class predicate_return extends ParserRuleReturnScope {\r
- Object tree;\r
- public Object getTree() { return tree; }\r
- };\r
-\r
- // $ANTLR start "predicate"\r
- // XPath.g:194:1: fragment predicate : '[' expr ']' -> ^( PREDICATE expr ) ;\r
- public final XPathParser.predicate_return predicate() throws RecognitionException {\r
- XPathParser.predicate_return retval = new XPathParser.predicate_return();\r
- retval.start = input.LT(1);\r
-\r
- Object root_0 = null;\r
-\r
- Token char_literal17=null;\r
- Token char_literal19=null;\r
- XPathParser.expr_return expr18 = null;\r
-\r
-\r
- Object char_literal17_tree=null;\r
- Object char_literal19_tree=null;\r
- RewriteRuleTokenStream stream_37=new RewriteRuleTokenStream(adaptor,"token 37");\r
- RewriteRuleTokenStream stream_38=new RewriteRuleTokenStream(adaptor,"token 38");\r
- RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");\r
- try {\r
- // XPath.g:196:3: ( '[' expr ']' -> ^( PREDICATE expr ) )\r
- // XPath.g:196:5: '[' expr ']'\r
- {\r
- char_literal17=(Token)match(input,37,FOLLOW_37_in_predicate813); if (state.failed) return retval; \r
- if ( state.backtracking==0 ) stream_37.add(char_literal17);\r
-\r
- pushFollow(FOLLOW_expr_in_predicate815);\r
- expr18=expr();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) stream_expr.add(expr18.getTree());\r
- char_literal19=(Token)match(input,38,FOLLOW_38_in_predicate817); if (state.failed) return retval; \r
- if ( state.backtracking==0 ) stream_38.add(char_literal19);\r
-\r
-\r
-\r
- // AST REWRITE\r
- // elements: expr\r
- // token labels: \r
- // rule labels: retval\r
- // token list labels: \r
- // rule list labels: \r
- // wildcard labels: \r
- if ( state.backtracking==0 ) {\r
- retval.tree = root_0;\r
- RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
-\r
- root_0 = (Object)adaptor.nil();\r
- // 197:3: -> ^( PREDICATE expr )\r
- {\r
- // XPath.g:197:6: ^( PREDICATE expr )\r
- {\r
- Object root_1 = (Object)adaptor.nil();\r
- root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PREDICATE, "PREDICATE"), root_1);\r
-\r
- adaptor.addChild(root_1, stream_expr.nextTree());\r
-\r
- adaptor.addChild(root_0, root_1);\r
- }\r
-\r
- }\r
-\r
- retval.tree = root_0;}\r
- }\r
-\r
- retval.stop = input.LT(-1);\r
-\r
- if ( state.backtracking==0 ) {\r
-\r
- retval.tree = (Object)adaptor.rulePostProcessing(root_0);\r
- adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);\r
- }\r
- }\r
- catch (RecognitionException re) {\r
- reportError(re);\r
- recover(input,re);\r
- retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);\r
-\r
- }\r
- finally {\r
- }\r
- return retval;\r
- }\r
- // $ANTLR end "predicate"\r
-\r
- public static class expr_return extends ParserRuleReturnScope {\r
- Object tree;\r
- public Object getTree() { return tree; }\r
- };\r
-\r
- // $ANTLR start "expr"\r
- // XPath.g:200:1: expr : comparisonExpr ;\r
- public final XPathParser.expr_return expr() throws RecognitionException {\r
- XPathParser.expr_return retval = new XPathParser.expr_return();\r
- retval.start = input.LT(1);\r
-\r
- Object root_0 = null;\r
-\r
- XPathParser.comparisonExpr_return comparisonExpr20 = null;\r
-\r
-\r
-\r
- try {\r
- // XPath.g:201:3: ( comparisonExpr )\r
- // XPath.g:201:5: comparisonExpr\r
- {\r
- root_0 = (Object)adaptor.nil();\r
-\r
- pushFollow(FOLLOW_comparisonExpr_in_expr840);\r
- comparisonExpr20=comparisonExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) adaptor.addChild(root_0, comparisonExpr20.getTree());\r
-\r
- }\r
-\r
- retval.stop = input.LT(-1);\r
-\r
- if ( state.backtracking==0 ) {\r
-\r
- retval.tree = (Object)adaptor.rulePostProcessing(root_0);\r
- adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);\r
- }\r
- }\r
- catch (RecognitionException re) {\r
- reportError(re);\r
- recover(input,re);\r
- retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);\r
-\r
- }\r
- finally {\r
- }\r
- return retval;\r
- }\r
- // $ANTLR end "expr"\r
-\r
- public static class comparisonExpr_return extends ParserRuleReturnScope {\r
- Object tree;\r
- public Object getTree() { return tree; }\r
- };\r
-\r
- // $ANTLR start "comparisonExpr"\r
- // XPath.g:204:1: fragment comparisonExpr : ( pathExpr | ( pathExpr '=' )=> pathExpr '=' pathExpr | ( pathExpr '!=' )=> pathExpr '!=' pathExpr | ( pathExpr '>' )=> pathExpr '>' pathExpr | ( pathExpr '>=' )=> pathExpr '>=' pathExpr | ( pathExpr '<' )=> pathExpr '<' pathExpr | ( pathExpr '<=' )=> pathExpr '<=' pathExpr | ( pathExpr '~=' )=> pathExpr '~=' pathExpr );\r
- public final XPathParser.comparisonExpr_return comparisonExpr() throws RecognitionException {\r
- XPathParser.comparisonExpr_return retval = new XPathParser.comparisonExpr_return();\r
- retval.start = input.LT(1);\r
-\r
- Object root_0 = null;\r
-\r
- Token char_literal23=null;\r
- Token string_literal26=null;\r
- Token char_literal29=null;\r
- Token string_literal32=null;\r
- Token char_literal35=null;\r
- Token string_literal38=null;\r
- Token string_literal41=null;\r
- XPathParser.pathExpr_return pathExpr21 = null;\r
-\r
- XPathParser.pathExpr_return pathExpr22 = null;\r
-\r
- XPathParser.pathExpr_return pathExpr24 = null;\r
-\r
- XPathParser.pathExpr_return pathExpr25 = null;\r
-\r
- XPathParser.pathExpr_return pathExpr27 = null;\r
-\r
- XPathParser.pathExpr_return pathExpr28 = null;\r
-\r
- XPathParser.pathExpr_return pathExpr30 = null;\r
-\r
- XPathParser.pathExpr_return pathExpr31 = null;\r
-\r
- XPathParser.pathExpr_return pathExpr33 = null;\r
-\r
- XPathParser.pathExpr_return pathExpr34 = null;\r
-\r
- XPathParser.pathExpr_return pathExpr36 = null;\r
-\r
- XPathParser.pathExpr_return pathExpr37 = null;\r
-\r
- XPathParser.pathExpr_return pathExpr39 = null;\r
-\r
- XPathParser.pathExpr_return pathExpr40 = null;\r
-\r
- XPathParser.pathExpr_return pathExpr42 = null;\r
-\r
-\r
- Object char_literal23_tree=null;\r
- Object string_literal26_tree=null;\r
- Object char_literal29_tree=null;\r
- Object string_literal32_tree=null;\r
- Object char_literal35_tree=null;\r
- Object string_literal38_tree=null;\r
- Object string_literal41_tree=null;\r
-\r
- try {\r
- // XPath.g:206:3: ( pathExpr | ( pathExpr '=' )=> pathExpr '=' pathExpr | ( pathExpr '!=' )=> pathExpr '!=' pathExpr | ( pathExpr '>' )=> pathExpr '>' pathExpr | ( pathExpr '>=' )=> pathExpr '>=' pathExpr | ( pathExpr '<' )=> pathExpr '<' pathExpr | ( pathExpr '<=' )=> pathExpr '<=' pathExpr | ( pathExpr '~=' )=> pathExpr '~=' pathExpr )\r
- int alt8=8;\r
- alt8 = dfa8.predict(input);\r
- switch (alt8) {\r
- case 1 :\r
- // XPath.g:206:5: pathExpr\r
- {\r
- root_0 = (Object)adaptor.nil();\r
-\r
- pushFollow(FOLLOW_pathExpr_in_comparisonExpr855);\r
- pathExpr21=pathExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr21.getTree());\r
-\r
- }\r
- break;\r
- case 2 :\r
- // XPath.g:207:5: ( pathExpr '=' )=> pathExpr '=' pathExpr\r
- {\r
- root_0 = (Object)adaptor.nil();\r
-\r
- pushFollow(FOLLOW_pathExpr_in_comparisonExpr869);\r
- pathExpr22=pathExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr22.getTree());\r
- char_literal23=(Token)match(input,39,FOLLOW_39_in_comparisonExpr871); if (state.failed) return retval;\r
- if ( state.backtracking==0 ) {\r
- char_literal23_tree = (Object)adaptor.create(char_literal23);\r
- adaptor.addChild(root_0, char_literal23_tree);\r
- }\r
- pushFollow(FOLLOW_pathExpr_in_comparisonExpr873);\r
- pathExpr24=pathExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr24.getTree());\r
-\r
- }\r
- break;\r
- case 3 :\r
- // XPath.g:208:5: ( pathExpr '!=' )=> pathExpr '!=' pathExpr\r
- {\r
- root_0 = (Object)adaptor.nil();\r
-\r
- pushFollow(FOLLOW_pathExpr_in_comparisonExpr887);\r
- pathExpr25=pathExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr25.getTree());\r
- string_literal26=(Token)match(input,40,FOLLOW_40_in_comparisonExpr889); if (state.failed) return retval;\r
- if ( state.backtracking==0 ) {\r
- string_literal26_tree = (Object)adaptor.create(string_literal26);\r
- adaptor.addChild(root_0, string_literal26_tree);\r
- }\r
- pushFollow(FOLLOW_pathExpr_in_comparisonExpr891);\r
- pathExpr27=pathExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr27.getTree());\r
-\r
- }\r
- break;\r
- case 4 :\r
- // XPath.g:209:5: ( pathExpr '>' )=> pathExpr '>' pathExpr\r
- {\r
- root_0 = (Object)adaptor.nil();\r
-\r
- pushFollow(FOLLOW_pathExpr_in_comparisonExpr905);\r
- pathExpr28=pathExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr28.getTree());\r
- char_literal29=(Token)match(input,41,FOLLOW_41_in_comparisonExpr907); if (state.failed) return retval;\r
- if ( state.backtracking==0 ) {\r
- char_literal29_tree = (Object)adaptor.create(char_literal29);\r
- adaptor.addChild(root_0, char_literal29_tree);\r
- }\r
- pushFollow(FOLLOW_pathExpr_in_comparisonExpr909);\r
- pathExpr30=pathExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr30.getTree());\r
-\r
- }\r
- break;\r
- case 5 :\r
- // XPath.g:210:5: ( pathExpr '>=' )=> pathExpr '>=' pathExpr\r
- {\r
- root_0 = (Object)adaptor.nil();\r
-\r
- pushFollow(FOLLOW_pathExpr_in_comparisonExpr923);\r
- pathExpr31=pathExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr31.getTree());\r
- string_literal32=(Token)match(input,42,FOLLOW_42_in_comparisonExpr925); if (state.failed) return retval;\r
- if ( state.backtracking==0 ) {\r
- string_literal32_tree = (Object)adaptor.create(string_literal32);\r
- adaptor.addChild(root_0, string_literal32_tree);\r
- }\r
- pushFollow(FOLLOW_pathExpr_in_comparisonExpr927);\r
- pathExpr33=pathExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr33.getTree());\r
-\r
- }\r
- break;\r
- case 6 :\r
- // XPath.g:211:5: ( pathExpr '<' )=> pathExpr '<' pathExpr\r
- {\r
- root_0 = (Object)adaptor.nil();\r
-\r
- pushFollow(FOLLOW_pathExpr_in_comparisonExpr941);\r
- pathExpr34=pathExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr34.getTree());\r
- char_literal35=(Token)match(input,43,FOLLOW_43_in_comparisonExpr943); if (state.failed) return retval;\r
- if ( state.backtracking==0 ) {\r
- char_literal35_tree = (Object)adaptor.create(char_literal35);\r
- adaptor.addChild(root_0, char_literal35_tree);\r
- }\r
- pushFollow(FOLLOW_pathExpr_in_comparisonExpr945);\r
- pathExpr36=pathExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr36.getTree());\r
-\r
- }\r
- break;\r
- case 7 :\r
- // XPath.g:212:5: ( pathExpr '<=' )=> pathExpr '<=' pathExpr\r
- {\r
- root_0 = (Object)adaptor.nil();\r
-\r
- pushFollow(FOLLOW_pathExpr_in_comparisonExpr959);\r
- pathExpr37=pathExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr37.getTree());\r
- string_literal38=(Token)match(input,44,FOLLOW_44_in_comparisonExpr961); if (state.failed) return retval;\r
- if ( state.backtracking==0 ) {\r
- string_literal38_tree = (Object)adaptor.create(string_literal38);\r
- adaptor.addChild(root_0, string_literal38_tree);\r
- }\r
- pushFollow(FOLLOW_pathExpr_in_comparisonExpr963);\r
- pathExpr39=pathExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr39.getTree());\r
-\r
- }\r
- break;\r
- case 8 :\r
- // XPath.g:213:5: ( pathExpr '~=' )=> pathExpr '~=' pathExpr\r
- {\r
- root_0 = (Object)adaptor.nil();\r
-\r
- pushFollow(FOLLOW_pathExpr_in_comparisonExpr977);\r
- pathExpr40=pathExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr40.getTree());\r
- string_literal41=(Token)match(input,45,FOLLOW_45_in_comparisonExpr979); if (state.failed) return retval;\r
- if ( state.backtracking==0 ) {\r
- string_literal41_tree = (Object)adaptor.create(string_literal41);\r
- adaptor.addChild(root_0, string_literal41_tree);\r
- }\r
- pushFollow(FOLLOW_pathExpr_in_comparisonExpr981);\r
- pathExpr42=pathExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr42.getTree());\r
-\r
- }\r
- break;\r
-\r
- }\r
- retval.stop = input.LT(-1);\r
-\r
- if ( state.backtracking==0 ) {\r
-\r
- retval.tree = (Object)adaptor.rulePostProcessing(root_0);\r
- adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);\r
- }\r
- }\r
- catch (RecognitionException re) {\r
- reportError(re);\r
- recover(input,re);\r
- retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);\r
-\r
- }\r
- finally {\r
- }\r
- return retval;\r
- }\r
- // $ANTLR end "comparisonExpr"\r
-\r
- public static class pathExpr_return extends ParserRuleReturnScope {\r
- Object tree;\r
- public Object getTree() { return tree; }\r
- };\r
-\r
- // $ANTLR start "pathExpr"\r
- // XPath.g:217:1: fragment pathExpr : ( locationExpr | primaryExpr );\r
- public final XPathParser.pathExpr_return pathExpr() throws RecognitionException {\r
- XPathParser.pathExpr_return retval = new XPathParser.pathExpr_return();\r
- retval.start = input.LT(1);\r
-\r
- Object root_0 = null;\r
-\r
- XPathParser.locationExpr_return locationExpr43 = null;\r
-\r
- XPathParser.primaryExpr_return primaryExpr44 = null;\r
-\r
-\r
-\r
- try {\r
- // XPath.g:219:3: ( locationExpr | primaryExpr )\r
- int alt9=2;\r
- switch ( input.LA(1) ) {\r
- case 34:\r
- case 35:\r
- case 36:\r
- {\r
- alt9=1;\r
- }\r
- break;\r
- case QName:\r
- {\r
- int LA9_2 = input.LA(2);\r
-\r
- if ( ((LA9_2>=Comma && LA9_2<=Colon)||LA9_2==QName||(LA9_2>=34 && LA9_2<=45)||LA9_2==47) ) {\r
- alt9=1;\r
- }\r
- else if ( (LA9_2==46) ) {\r
- alt9=2;\r
- }\r
- else {\r
- if (state.backtracking>0) {state.failed=true; return retval;}\r
- NoViableAltException nvae =\r
- new NoViableAltException("", 9, 2, input);\r
-\r
- throw nvae;\r
- }\r
- }\r
- break;\r
- case String:\r
- case Integer:\r
- case Double:\r
- {\r
- alt9=2;\r
- }\r
- break;\r
- default:\r
- if (state.backtracking>0) {state.failed=true; return retval;}\r
- NoViableAltException nvae =\r
- new NoViableAltException("", 9, 0, input);\r
-\r
- throw nvae;\r
- }\r
-\r
- switch (alt9) {\r
- case 1 :\r
- // XPath.g:219:5: locationExpr\r
- {\r
- root_0 = (Object)adaptor.nil();\r
-\r
- pushFollow(FOLLOW_locationExpr_in_pathExpr997);\r
- locationExpr43=locationExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) adaptor.addChild(root_0, locationExpr43.getTree());\r
-\r
- }\r
- break;\r
- case 2 :\r
- // XPath.g:220:5: primaryExpr\r
- {\r
- root_0 = (Object)adaptor.nil();\r
-\r
- pushFollow(FOLLOW_primaryExpr_in_pathExpr1003);\r
- primaryExpr44=primaryExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) adaptor.addChild(root_0, primaryExpr44.getTree());\r
-\r
- }\r
- break;\r
-\r
- }\r
- retval.stop = input.LT(-1);\r
-\r
- if ( state.backtracking==0 ) {\r
-\r
- retval.tree = (Object)adaptor.rulePostProcessing(root_0);\r
- adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);\r
- }\r
- }\r
- catch (RecognitionException re) {\r
- reportError(re);\r
- recover(input,re);\r
- retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);\r
-\r
- }\r
- finally {\r
- }\r
- return retval;\r
- }\r
- // $ANTLR end "pathExpr"\r
-\r
- public static class primaryExpr_return extends ParserRuleReturnScope {\r
- Object tree;\r
- public Object getTree() { return tree; }\r
- };\r
-\r
- // $ANTLR start "primaryExpr"\r
- // XPath.g:223:1: fragment primaryExpr : ( String | Integer | Double | functionCall );\r
- public final XPathParser.primaryExpr_return primaryExpr() throws RecognitionException {\r
- XPathParser.primaryExpr_return retval = new XPathParser.primaryExpr_return();\r
- retval.start = input.LT(1);\r
-\r
- Object root_0 = null;\r
-\r
- Token String45=null;\r
- Token Integer46=null;\r
- Token Double47=null;\r
- XPathParser.functionCall_return functionCall48 = null;\r
-\r
-\r
- Object String45_tree=null;\r
- Object Integer46_tree=null;\r
- Object Double47_tree=null;\r
-\r
- try {\r
- // XPath.g:225:3: ( String | Integer | Double | functionCall )\r
- int alt10=4;\r
- switch ( input.LA(1) ) {\r
- case String:\r
- {\r
- alt10=1;\r
- }\r
- break;\r
- case Integer:\r
- {\r
- alt10=2;\r
- }\r
- break;\r
- case Double:\r
- {\r
- alt10=3;\r
- }\r
- break;\r
- case QName:\r
- {\r
- alt10=4;\r
- }\r
- break;\r
- default:\r
- if (state.backtracking>0) {state.failed=true; return retval;}\r
- NoViableAltException nvae =\r
- new NoViableAltException("", 10, 0, input);\r
-\r
- throw nvae;\r
- }\r
-\r
- switch (alt10) {\r
- case 1 :\r
- // XPath.g:225:5: String\r
- {\r
- root_0 = (Object)adaptor.nil();\r
-\r
- String45=(Token)match(input,String,FOLLOW_String_in_primaryExpr1022); if (state.failed) return retval;\r
- if ( state.backtracking==0 ) {\r
- String45_tree = (Object)adaptor.create(String45);\r
- adaptor.addChild(root_0, String45_tree);\r
- }\r
-\r
- }\r
- break;\r
- case 2 :\r
- // XPath.g:226:5: Integer\r
- {\r
- root_0 = (Object)adaptor.nil();\r
-\r
- Integer46=(Token)match(input,Integer,FOLLOW_Integer_in_primaryExpr1028); if (state.failed) return retval;\r
- if ( state.backtracking==0 ) {\r
- Integer46_tree = (Object)adaptor.create(Integer46);\r
- adaptor.addChild(root_0, Integer46_tree);\r
- }\r
-\r
- }\r
- break;\r
- case 3 :\r
- // XPath.g:227:5: Double\r
- {\r
- root_0 = (Object)adaptor.nil();\r
-\r
- Double47=(Token)match(input,Double,FOLLOW_Double_in_primaryExpr1034); if (state.failed) return retval;\r
- if ( state.backtracking==0 ) {\r
- Double47_tree = (Object)adaptor.create(Double47);\r
- adaptor.addChild(root_0, Double47_tree);\r
- }\r
-\r
- }\r
- break;\r
- case 4 :\r
- // XPath.g:228:5: functionCall\r
- {\r
- root_0 = (Object)adaptor.nil();\r
-\r
- pushFollow(FOLLOW_functionCall_in_primaryExpr1040);\r
- functionCall48=functionCall();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) adaptor.addChild(root_0, functionCall48.getTree());\r
-\r
- }\r
- break;\r
-\r
- }\r
- retval.stop = input.LT(-1);\r
-\r
- if ( state.backtracking==0 ) {\r
-\r
- retval.tree = (Object)adaptor.rulePostProcessing(root_0);\r
- adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);\r
- }\r
- }\r
- catch (RecognitionException re) {\r
- reportError(re);\r
- recover(input,re);\r
- retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);\r
-\r
- }\r
- finally {\r
- }\r
- return retval;\r
- }\r
- // $ANTLR end "primaryExpr"\r
-\r
- public static class functionCall_return extends ParserRuleReturnScope {\r
- Object tree;\r
- public Object getTree() { return tree; }\r
- };\r
-\r
- // $ANTLR start "functionCall"\r
- // XPath.g:232:1: fragment functionCall : QName '(' ( expr ( ',' expr )* )? ')' ;\r
- public final XPathParser.functionCall_return functionCall() throws RecognitionException {\r
- XPathParser.functionCall_return retval = new XPathParser.functionCall_return();\r
- retval.start = input.LT(1);\r
-\r
- Object root_0 = null;\r
-\r
- Token QName49=null;\r
- Token char_literal50=null;\r
- Token char_literal52=null;\r
- Token char_literal54=null;\r
- XPathParser.expr_return expr51 = null;\r
-\r
- XPathParser.expr_return expr53 = null;\r
-\r
-\r
- Object QName49_tree=null;\r
- Object char_literal50_tree=null;\r
- Object char_literal52_tree=null;\r
- Object char_literal54_tree=null;\r
-\r
- try {\r
- // XPath.g:234:3: ( QName '(' ( expr ( ',' expr )* )? ')' )\r
- // XPath.g:234:5: QName '(' ( expr ( ',' expr )* )? ')'\r
- {\r
- root_0 = (Object)adaptor.nil();\r
-\r
- QName49=(Token)match(input,QName,FOLLOW_QName_in_functionCall1060); if (state.failed) return retval;\r
- if ( state.backtracking==0 ) {\r
- QName49_tree = (Object)adaptor.create(QName49);\r
- adaptor.addChild(root_0, QName49_tree);\r
- }\r
- char_literal50=(Token)match(input,46,FOLLOW_46_in_functionCall1062); if (state.failed) return retval;\r
- if ( state.backtracking==0 ) {\r
- char_literal50_tree = (Object)adaptor.create(char_literal50);\r
- adaptor.addChild(root_0, char_literal50_tree);\r
- }\r
- // XPath.g:234:15: ( expr ( ',' expr )* )?\r
- int alt12=2;\r
- int LA12_0 = input.LA(1);\r
-\r
- if ( ((LA12_0>=String && LA12_0<=Integer)||LA12_0==Double||LA12_0==QName||(LA12_0>=34 && LA12_0<=36)) ) {\r
- alt12=1;\r
- }\r
- switch (alt12) {\r
- case 1 :\r
- // XPath.g:234:16: expr ( ',' expr )*\r
- {\r
- pushFollow(FOLLOW_expr_in_functionCall1065);\r
- expr51=expr();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) adaptor.addChild(root_0, expr51.getTree());\r
- // XPath.g:234:21: ( ',' expr )*\r
- loop11:\r
- do {\r
- int alt11=2;\r
- int LA11_0 = input.LA(1);\r
-\r
- if ( (LA11_0==Comma) ) {\r
- alt11=1;\r
- }\r
-\r
-\r
- switch (alt11) {\r
- case 1 :\r
- // XPath.g:234:22: ',' expr\r
- {\r
- char_literal52=(Token)match(input,Comma,FOLLOW_Comma_in_functionCall1068); if (state.failed) return retval;\r
- if ( state.backtracking==0 ) {\r
- char_literal52_tree = (Object)adaptor.create(char_literal52);\r
- adaptor.addChild(root_0, char_literal52_tree);\r
- }\r
- pushFollow(FOLLOW_expr_in_functionCall1070);\r
- expr53=expr();\r
-\r
- state._fsp--;\r
- if (state.failed) return retval;\r
- if ( state.backtracking==0 ) adaptor.addChild(root_0, expr53.getTree());\r
-\r
- }\r
- break;\r
-\r
- default :\r
- break loop11;\r
- }\r
- } while (true);\r
-\r
-\r
- }\r
- break;\r
-\r
- }\r
-\r
- char_literal54=(Token)match(input,47,FOLLOW_47_in_functionCall1076); if (state.failed) return retval;\r
- if ( state.backtracking==0 ) {\r
- char_literal54_tree = (Object)adaptor.create(char_literal54);\r
- adaptor.addChild(root_0, char_literal54_tree);\r
- }\r
-\r
- }\r
-\r
- retval.stop = input.LT(-1);\r
-\r
- if ( state.backtracking==0 ) {\r
-\r
- retval.tree = (Object)adaptor.rulePostProcessing(root_0);\r
- adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);\r
- }\r
- }\r
- catch (RecognitionException re) {\r
- reportError(re);\r
- recover(input,re);\r
- retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);\r
-\r
- }\r
- finally {\r
- }\r
- return retval;\r
- }\r
- // $ANTLR end "functionCall"\r
-\r
- // $ANTLR start synpred1_XPath\r
- public final void synpred1_XPath_fragment() throws RecognitionException { \r
- // XPath.g:207:5: ( pathExpr '=' )\r
- // XPath.g:207:6: pathExpr '='\r
- {\r
- pushFollow(FOLLOW_pathExpr_in_synpred1_XPath862);\r
- pathExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return ;\r
- match(input,39,FOLLOW_39_in_synpred1_XPath864); if (state.failed) return ;\r
-\r
- }\r
- }\r
- // $ANTLR end synpred1_XPath\r
-\r
- // $ANTLR start synpred2_XPath\r
- public final void synpred2_XPath_fragment() throws RecognitionException { \r
- // XPath.g:208:5: ( pathExpr '!=' )\r
- // XPath.g:208:6: pathExpr '!='\r
- {\r
- pushFollow(FOLLOW_pathExpr_in_synpred2_XPath880);\r
- pathExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return ;\r
- match(input,40,FOLLOW_40_in_synpred2_XPath882); if (state.failed) return ;\r
-\r
- }\r
- }\r
- // $ANTLR end synpred2_XPath\r
-\r
- // $ANTLR start synpred3_XPath\r
- public final void synpred3_XPath_fragment() throws RecognitionException { \r
- // XPath.g:209:5: ( pathExpr '>' )\r
- // XPath.g:209:6: pathExpr '>'\r
- {\r
- pushFollow(FOLLOW_pathExpr_in_synpred3_XPath898);\r
- pathExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return ;\r
- match(input,41,FOLLOW_41_in_synpred3_XPath900); if (state.failed) return ;\r
-\r
- }\r
- }\r
- // $ANTLR end synpred3_XPath\r
-\r
- // $ANTLR start synpred4_XPath\r
- public final void synpred4_XPath_fragment() throws RecognitionException { \r
- // XPath.g:210:5: ( pathExpr '>=' )\r
- // XPath.g:210:6: pathExpr '>='\r
- {\r
- pushFollow(FOLLOW_pathExpr_in_synpred4_XPath916);\r
- pathExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return ;\r
- match(input,42,FOLLOW_42_in_synpred4_XPath918); if (state.failed) return ;\r
-\r
- }\r
- }\r
- // $ANTLR end synpred4_XPath\r
-\r
- // $ANTLR start synpred5_XPath\r
- public final void synpred5_XPath_fragment() throws RecognitionException { \r
- // XPath.g:211:5: ( pathExpr '<' )\r
- // XPath.g:211:6: pathExpr '<'\r
- {\r
- pushFollow(FOLLOW_pathExpr_in_synpred5_XPath934);\r
- pathExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return ;\r
- match(input,43,FOLLOW_43_in_synpred5_XPath936); if (state.failed) return ;\r
-\r
- }\r
- }\r
- // $ANTLR end synpred5_XPath\r
-\r
- // $ANTLR start synpred6_XPath\r
- public final void synpred6_XPath_fragment() throws RecognitionException { \r
- // XPath.g:212:5: ( pathExpr '<=' )\r
- // XPath.g:212:6: pathExpr '<='\r
- {\r
- pushFollow(FOLLOW_pathExpr_in_synpred6_XPath952);\r
- pathExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return ;\r
- match(input,44,FOLLOW_44_in_synpred6_XPath954); if (state.failed) return ;\r
-\r
- }\r
- }\r
- // $ANTLR end synpred6_XPath\r
-\r
- // $ANTLR start synpred7_XPath\r
- public final void synpred7_XPath_fragment() throws RecognitionException { \r
- // XPath.g:213:5: ( pathExpr '~=' )\r
- // XPath.g:213:6: pathExpr '~='\r
- {\r
- pushFollow(FOLLOW_pathExpr_in_synpred7_XPath970);\r
- pathExpr();\r
-\r
- state._fsp--;\r
- if (state.failed) return ;\r
- match(input,45,FOLLOW_45_in_synpred7_XPath972); if (state.failed) return ;\r
-\r
- }\r
- }\r
- // $ANTLR end synpred7_XPath\r
-\r
- // Delegated rules\r
-\r
- public final boolean synpred5_XPath() {\r
- state.backtracking++;\r
- int start = input.mark();\r
- try {\r
- synpred5_XPath_fragment(); // can never throw exception\r
- } catch (RecognitionException re) {\r
- System.err.println("impossible: "+re);\r
- }\r
- boolean success = !state.failed;\r
- input.rewind(start);\r
- state.backtracking--;\r
- state.failed=false;\r
- return success;\r
- }\r
- public final boolean synpred6_XPath() {\r
- state.backtracking++;\r
- int start = input.mark();\r
- try {\r
- synpred6_XPath_fragment(); // can never throw exception\r
- } catch (RecognitionException re) {\r
- System.err.println("impossible: "+re);\r
- }\r
- boolean success = !state.failed;\r
- input.rewind(start);\r
- state.backtracking--;\r
- state.failed=false;\r
- return success;\r
- }\r
- public final boolean synpred3_XPath() {\r
- state.backtracking++;\r
- int start = input.mark();\r
- try {\r
- synpred3_XPath_fragment(); // can never throw exception\r
- } catch (RecognitionException re) {\r
- System.err.println("impossible: "+re);\r
- }\r
- boolean success = !state.failed;\r
- input.rewind(start);\r
- state.backtracking--;\r
- state.failed=false;\r
- return success;\r
- }\r
- public final boolean synpred7_XPath() {\r
- state.backtracking++;\r
- int start = input.mark();\r
- try {\r
- synpred7_XPath_fragment(); // can never throw exception\r
- } catch (RecognitionException re) {\r
- System.err.println("impossible: "+re);\r
- }\r
- boolean success = !state.failed;\r
- input.rewind(start);\r
- state.backtracking--;\r
- state.failed=false;\r
- return success;\r
- }\r
- public final boolean synpred4_XPath() {\r
- state.backtracking++;\r
- int start = input.mark();\r
- try {\r
- synpred4_XPath_fragment(); // can never throw exception\r
- } catch (RecognitionException re) {\r
- System.err.println("impossible: "+re);\r
- }\r
- boolean success = !state.failed;\r
- input.rewind(start);\r
- state.backtracking--;\r
- state.failed=false;\r
- return success;\r
- }\r
- public final boolean synpred2_XPath() {\r
- state.backtracking++;\r
- int start = input.mark();\r
- try {\r
- synpred2_XPath_fragment(); // can never throw exception\r
- } catch (RecognitionException re) {\r
- System.err.println("impossible: "+re);\r
- }\r
- boolean success = !state.failed;\r
- input.rewind(start);\r
- state.backtracking--;\r
- state.failed=false;\r
- return success;\r
- }\r
- public final boolean synpred1_XPath() {\r
- state.backtracking++;\r
- int start = input.mark();\r
- try {\r
- synpred1_XPath_fragment(); // can never throw exception\r
- } catch (RecognitionException re) {\r
- System.err.println("impossible: "+re);\r
- }\r
- boolean success = !state.failed;\r
- input.rewind(start);\r
- state.backtracking--;\r
- state.failed=false;\r
- return success;\r
- }\r
-\r
-\r
- protected DFA8 dfa8 = new DFA8(this);\r
- static final String DFA8_eotS =\r
- "\20\uffff";\r
- static final String DFA8_eofS =\r
- "\20\uffff";\r
- static final String DFA8_minS =\r
- "\1\24\7\0\10\uffff";\r
- static final String DFA8_maxS =\r
- "\1\44\7\0\10\uffff";\r
- static final String DFA8_acceptS =\r
- "\10\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10";\r
- static final String DFA8_specialS =\r
- "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\10\uffff}>";\r
- static final String[] DFA8_transitionS = {\r
- "\1\5\1\6\2\uffff\1\7\7\uffff\1\2\1\uffff\1\3\1\4\1\1",\r
- "\1\uffff",\r
- "\1\uffff",\r
- "\1\uffff",\r
- "\1\uffff",\r
- "\1\uffff",\r
- "\1\uffff",\r
- "\1\uffff",\r
- "",\r
- "",\r
- "",\r
- "",\r
- "",\r
- "",\r
- "",\r
- ""\r
- };\r
-\r
- static final short[] DFA8_eot = DFA.unpackEncodedString(DFA8_eotS);\r
- static final short[] DFA8_eof = DFA.unpackEncodedString(DFA8_eofS);\r
- static final char[] DFA8_min = DFA.unpackEncodedStringToUnsignedChars(DFA8_minS);\r
- static final char[] DFA8_max = DFA.unpackEncodedStringToUnsignedChars(DFA8_maxS);\r
- static final short[] DFA8_accept = DFA.unpackEncodedString(DFA8_acceptS);\r
- static final short[] DFA8_special = DFA.unpackEncodedString(DFA8_specialS);\r
- static final short[][] DFA8_transition;\r
-\r
- static {\r
- int numStates = DFA8_transitionS.length;\r
- DFA8_transition = new short[numStates][];\r
- for (int i=0; i<numStates; i++) {\r
- DFA8_transition[i] = DFA.unpackEncodedString(DFA8_transitionS[i]);\r
- }\r
- }\r
-\r
- class DFA8 extends DFA {\r
-\r
- public DFA8(BaseRecognizer recognizer) {\r
- this.recognizer = recognizer;\r
- this.decisionNumber = 8;\r
- this.eot = DFA8_eot;\r
- this.eof = DFA8_eof;\r
- this.min = DFA8_min;\r
- this.max = DFA8_max;\r
- this.accept = DFA8_accept;\r
- this.special = DFA8_special;\r
- this.transition = DFA8_transition;\r
- }\r
- public String getDescription() {\r
- return "204:1: fragment comparisonExpr : ( pathExpr | ( pathExpr '=' )=> pathExpr '=' pathExpr | ( pathExpr '!=' )=> pathExpr '!=' pathExpr | ( pathExpr '>' )=> pathExpr '>' pathExpr | ( pathExpr '>=' )=> pathExpr '>=' pathExpr | ( pathExpr '<' )=> pathExpr '<' pathExpr | ( pathExpr '<=' )=> pathExpr '<=' pathExpr | ( pathExpr '~=' )=> pathExpr '~=' pathExpr );";\r
- }\r
- public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {\r
- TokenStream input = (TokenStream)_input;\r
- int _s = s;\r
- switch ( s ) {\r
- case 0 : \r
- int LA8_1 = input.LA(1);\r
-\r
- \r
- int index8_1 = input.index();\r
- input.rewind();\r
- s = -1;\r
- if ( (true) ) {s = 8;}\r
-\r
- else if ( (synpred1_XPath()) ) {s = 9;}\r
-\r
- else if ( (synpred2_XPath()) ) {s = 10;}\r
-\r
- else if ( (synpred3_XPath()) ) {s = 11;}\r
-\r
- else if ( (synpred4_XPath()) ) {s = 12;}\r
-\r
- else if ( (synpred5_XPath()) ) {s = 13;}\r
-\r
- else if ( (synpred6_XPath()) ) {s = 14;}\r
-\r
- else if ( (synpred7_XPath()) ) {s = 15;}\r
-\r
- \r
- input.seek(index8_1);\r
- if ( s>=0 ) return s;\r
- break;\r
- case 1 : \r
- int LA8_2 = input.LA(1);\r
-\r
- \r
- int index8_2 = input.index();\r
- input.rewind();\r
- s = -1;\r
- if ( (true) ) {s = 8;}\r
-\r
- else if ( (synpred1_XPath()) ) {s = 9;}\r
-\r
- else if ( (synpred2_XPath()) ) {s = 10;}\r
-\r
- else if ( (synpred3_XPath()) ) {s = 11;}\r
-\r
- else if ( (synpred4_XPath()) ) {s = 12;}\r
-\r
- else if ( (synpred5_XPath()) ) {s = 13;}\r
-\r
- else if ( (synpred6_XPath()) ) {s = 14;}\r
-\r
- else if ( (synpred7_XPath()) ) {s = 15;}\r
-\r
- \r
- input.seek(index8_2);\r
- if ( s>=0 ) return s;\r
- break;\r
- case 2 : \r
- int LA8_3 = input.LA(1);\r
-\r
- \r
- int index8_3 = input.index();\r
- input.rewind();\r
- s = -1;\r
- if ( (true) ) {s = 8;}\r
-\r
- else if ( (synpred1_XPath()) ) {s = 9;}\r
-\r
- else if ( (synpred2_XPath()) ) {s = 10;}\r
-\r
- else if ( (synpred3_XPath()) ) {s = 11;}\r
-\r
- else if ( (synpred4_XPath()) ) {s = 12;}\r
-\r
- else if ( (synpred5_XPath()) ) {s = 13;}\r
-\r
- else if ( (synpred6_XPath()) ) {s = 14;}\r
-\r
- else if ( (synpred7_XPath()) ) {s = 15;}\r
-\r
- \r
- input.seek(index8_3);\r
- if ( s>=0 ) return s;\r
- break;\r
- case 3 : \r
- int LA8_4 = input.LA(1);\r
-\r
- \r
- int index8_4 = input.index();\r
- input.rewind();\r
- s = -1;\r
- if ( (true) ) {s = 8;}\r
-\r
- else if ( (synpred1_XPath()) ) {s = 9;}\r
-\r
- else if ( (synpred2_XPath()) ) {s = 10;}\r
-\r
- else if ( (synpred3_XPath()) ) {s = 11;}\r
-\r
- else if ( (synpred4_XPath()) ) {s = 12;}\r
-\r
- else if ( (synpred5_XPath()) ) {s = 13;}\r
-\r
- else if ( (synpred6_XPath()) ) {s = 14;}\r
-\r
- else if ( (synpred7_XPath()) ) {s = 15;}\r
-\r
- \r
- input.seek(index8_4);\r
- if ( s>=0 ) return s;\r
- break;\r
- case 4 : \r
- int LA8_5 = input.LA(1);\r
-\r
- \r
- int index8_5 = input.index();\r
- input.rewind();\r
- s = -1;\r
- if ( (true) ) {s = 8;}\r
-\r
- else if ( (synpred1_XPath()) ) {s = 9;}\r
-\r
- else if ( (synpred2_XPath()) ) {s = 10;}\r
-\r
- else if ( (synpred3_XPath()) ) {s = 11;}\r
-\r
- else if ( (synpred4_XPath()) ) {s = 12;}\r
-\r
- else if ( (synpred5_XPath()) ) {s = 13;}\r
-\r
- else if ( (synpred6_XPath()) ) {s = 14;}\r
-\r
- else if ( (synpred7_XPath()) ) {s = 15;}\r
-\r
- \r
- input.seek(index8_5);\r
- if ( s>=0 ) return s;\r
- break;\r
- case 5 : \r
- int LA8_6 = input.LA(1);\r
-\r
- \r
- int index8_6 = input.index();\r
- input.rewind();\r
- s = -1;\r
- if ( (true) ) {s = 8;}\r
-\r
- else if ( (synpred1_XPath()) ) {s = 9;}\r
-\r
- else if ( (synpred2_XPath()) ) {s = 10;}\r
-\r
- else if ( (synpred3_XPath()) ) {s = 11;}\r
-\r
- else if ( (synpred4_XPath()) ) {s = 12;}\r
-\r
- else if ( (synpred5_XPath()) ) {s = 13;}\r
-\r
- else if ( (synpred6_XPath()) ) {s = 14;}\r
-\r
- else if ( (synpred7_XPath()) ) {s = 15;}\r
-\r
- \r
- input.seek(index8_6);\r
- if ( s>=0 ) return s;\r
- break;\r
- case 6 : \r
- int LA8_7 = input.LA(1);\r
-\r
- \r
- int index8_7 = input.index();\r
- input.rewind();\r
- s = -1;\r
- if ( (true) ) {s = 8;}\r
-\r
- else if ( (synpred1_XPath()) ) {s = 9;}\r
-\r
- else if ( (synpred2_XPath()) ) {s = 10;}\r
-\r
- else if ( (synpred3_XPath()) ) {s = 11;}\r
-\r
- else if ( (synpred4_XPath()) ) {s = 12;}\r
-\r
- else if ( (synpred5_XPath()) ) {s = 13;}\r
-\r
- else if ( (synpred6_XPath()) ) {s = 14;}\r
-\r
- else if ( (synpred7_XPath()) ) {s = 15;}\r
-\r
- \r
- input.seek(index8_7);\r
- if ( s>=0 ) return s;\r
- break;\r
- }\r
- if (state.backtracking>0) {state.failed=true; return -1;}\r
- NoViableAltException nvae =\r
- new NoViableAltException(getDescription(), 8, _s, input);\r
- error(nvae);\r
- throw nvae;\r
- }\r
- }\r
- \r
-\r
- public static final BitSet FOLLOW_locationExpr_in_xpath620 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_relativePath_in_locationExpr646 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_step_in_relativePath663 = new BitSet(new long[]{0x0000001D00000002L});\r
- public static final BitSet FOLLOW_relativePath_in_relativePath665 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_34_in_relativePath686 = new BitSet(new long[]{0x0000001100000000L});\r
- public static final BitSet FOLLOW_step_in_relativePath688 = new BitSet(new long[]{0x0000001D00000002L});\r
- public static final BitSet FOLLOW_relativePath_in_relativePath690 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_35_in_relativePath714 = new BitSet(new long[]{0x0000001100000000L});\r
- public static final BitSet FOLLOW_step_in_relativePath716 = new BitSet(new long[]{0x0000001D00000002L});\r
- public static final BitSet FOLLOW_relativePath_in_relativePath718 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_nodeTest_in_step755 = new BitSet(new long[]{0x0000002000000002L});\r
- public static final BitSet FOLLOW_predicate_in_step757 = new BitSet(new long[]{0x0000002000000002L});\r
- public static final BitSet FOLLOW_36_in_nodeTest785 = new BitSet(new long[]{0x0000000100000000L});\r
- public static final BitSet FOLLOW_QName_in_nodeTest789 = new BitSet(new long[]{0x0000000004000000L});\r
- public static final BitSet FOLLOW_Colon_in_nodeTest791 = new BitSet(new long[]{0x0000000100000000L});\r
- public static final BitSet FOLLOW_QName_in_nodeTest795 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_37_in_predicate813 = new BitSet(new long[]{0x0000001D01300000L});\r
- public static final BitSet FOLLOW_expr_in_predicate815 = new BitSet(new long[]{0x0000004000000000L});\r
- public static final BitSet FOLLOW_38_in_predicate817 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_comparisonExpr_in_expr840 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_pathExpr_in_comparisonExpr855 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_pathExpr_in_comparisonExpr869 = new BitSet(new long[]{0x0000008000000000L});\r
- public static final BitSet FOLLOW_39_in_comparisonExpr871 = new BitSet(new long[]{0x0000001D01300000L});\r
- public static final BitSet FOLLOW_pathExpr_in_comparisonExpr873 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_pathExpr_in_comparisonExpr887 = new BitSet(new long[]{0x0000010000000000L});\r
- public static final BitSet FOLLOW_40_in_comparisonExpr889 = new BitSet(new long[]{0x0000001D01300000L});\r
- public static final BitSet FOLLOW_pathExpr_in_comparisonExpr891 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_pathExpr_in_comparisonExpr905 = new BitSet(new long[]{0x0000020000000000L});\r
- public static final BitSet FOLLOW_41_in_comparisonExpr907 = new BitSet(new long[]{0x0000001D01300000L});\r
- public static final BitSet FOLLOW_pathExpr_in_comparisonExpr909 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_pathExpr_in_comparisonExpr923 = new BitSet(new long[]{0x0000040000000000L});\r
- public static final BitSet FOLLOW_42_in_comparisonExpr925 = new BitSet(new long[]{0x0000001D01300000L});\r
- public static final BitSet FOLLOW_pathExpr_in_comparisonExpr927 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_pathExpr_in_comparisonExpr941 = new BitSet(new long[]{0x0000080000000000L});\r
- public static final BitSet FOLLOW_43_in_comparisonExpr943 = new BitSet(new long[]{0x0000001D01300000L});\r
- public static final BitSet FOLLOW_pathExpr_in_comparisonExpr945 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_pathExpr_in_comparisonExpr959 = new BitSet(new long[]{0x0000100000000000L});\r
- public static final BitSet FOLLOW_44_in_comparisonExpr961 = new BitSet(new long[]{0x0000001D01300000L});\r
- public static final BitSet FOLLOW_pathExpr_in_comparisonExpr963 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_pathExpr_in_comparisonExpr977 = new BitSet(new long[]{0x0000200000000000L});\r
- public static final BitSet FOLLOW_45_in_comparisonExpr979 = new BitSet(new long[]{0x0000001D01300000L});\r
- public static final BitSet FOLLOW_pathExpr_in_comparisonExpr981 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_locationExpr_in_pathExpr997 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_primaryExpr_in_pathExpr1003 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_String_in_primaryExpr1022 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_Integer_in_primaryExpr1028 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_Double_in_primaryExpr1034 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_functionCall_in_primaryExpr1040 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_QName_in_functionCall1060 = new BitSet(new long[]{0x0000400000000000L});\r
- public static final BitSet FOLLOW_46_in_functionCall1062 = new BitSet(new long[]{0x0000801D01300000L});\r
- public static final BitSet FOLLOW_expr_in_functionCall1065 = new BitSet(new long[]{0x0000800002000000L});\r
- public static final BitSet FOLLOW_Comma_in_functionCall1068 = new BitSet(new long[]{0x0000001D01300000L});\r
- public static final BitSet FOLLOW_expr_in_functionCall1070 = new BitSet(new long[]{0x0000800002000000L});\r
- public static final BitSet FOLLOW_47_in_functionCall1076 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_pathExpr_in_synpred1_XPath862 = new BitSet(new long[]{0x0000008000000000L});\r
- public static final BitSet FOLLOW_39_in_synpred1_XPath864 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_pathExpr_in_synpred2_XPath880 = new BitSet(new long[]{0x0000010000000000L});\r
- public static final BitSet FOLLOW_40_in_synpred2_XPath882 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_pathExpr_in_synpred3_XPath898 = new BitSet(new long[]{0x0000020000000000L});\r
- public static final BitSet FOLLOW_41_in_synpred3_XPath900 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_pathExpr_in_synpred4_XPath916 = new BitSet(new long[]{0x0000040000000000L});\r
- public static final BitSet FOLLOW_42_in_synpred4_XPath918 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_pathExpr_in_synpred5_XPath934 = new BitSet(new long[]{0x0000080000000000L});\r
- public static final BitSet FOLLOW_43_in_synpred5_XPath936 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_pathExpr_in_synpred6_XPath952 = new BitSet(new long[]{0x0000100000000000L});\r
- public static final BitSet FOLLOW_44_in_synpred6_XPath954 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_pathExpr_in_synpred7_XPath970 = new BitSet(new long[]{0x0000200000000000L});\r
- public static final BitSet FOLLOW_45_in_synpred7_XPath972 = new BitSet(new long[]{0x0000000000000002L});\r
-\r
-}
\ No newline at end of file