OSDN Git Service

removed all files
[xerial/xerial-core.git] / src / main / java / org / xerial / lens / relation / query / impl / XPathParser.java
diff --git a/src/main/java/org/xerial/lens/relation/query/impl/XPathParser.java b/src/main/java/org/xerial/lens/relation/query/impl/XPathParser.java
deleted file mode 100755 (executable)
index 86d2477..0000000
+++ /dev/null
@@ -1,2108 +0,0 @@
-// $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