False: 'false';\r
Null: 'null';\r
\r
-LBrace: '{' ;\r
-RBrace: '}' ;\r
-LBracket: '[' ;\r
-RBracket: ']' ;\r
\r
// comparison operator\r
Lt: '<';\r
Match: '~=';\r
Regex: '/' (options{greedy=false;}: .)* '/' ('a' .. 'z' | 'A' .. 'Z')* ;\r
\r
+\r
Dot: '.';\r
Comma: ',';\r
Colon: ':';\r
\r
relation_i: nodeName alias? LParen! nodeItem (Comma! nodeItem)* RParen!;\r
\r
+\r
fragment\r
nodeName\r
: QName -> NAME[$QName.text]\r
INDEX=15\r
PATTERNMATCH=9\r
-Match=44\r
-RBrace=35\r
-Regex=45\r
-LBracket=36\r
+Match=40\r
+Regex=41\r
Digit=19\r
Frac=28\r
HexDigit=21\r
ALIAS=11\r
VALUE=14\r
Letter=20\r
-Comma=47\r
-Dot=46\r
+Comma=43\r
+Dot=42\r
EscapeSequence=23\r
Integer=27\r
-WhiteSpace=56\r
+WhiteSpace=52\r
OPERATOR=7\r
False=32\r
-Colon=48\r
+Colon=44\r
LineComment=17\r
NODEVALUE=12\r
-As=49\r
-SafeFirstLetter=54\r
+As=45\r
+SafeFirstLetter=50\r
Null=33\r
-Star=52\r
-Eq=42\r
+Star=48\r
+Eq=38\r
Exp=29\r
-QNameChar=57\r
+QNameChar=53\r
RELATION=5\r
-Gt=39\r
-RParen=51\r
+Gt=35\r
+RParen=47\r
UnicodeChar=22\r
StringChar=24\r
True=31\r
OPERAND=8\r
LineBreak=18\r
-LParen=50\r
+LParen=46\r
String=26\r
-SafeLetter=55\r
+SafeLetter=51\r
LineBreakChar=16\r
COMPARE=6\r
-QName=58\r
-Geq=41\r
+QName=54\r
+Geq=37\r
NODE=10\r
StringChar_s=25\r
-Neq=43\r
-UnsafeUnicodeChar=53\r
+Neq=39\r
+UnsafeUnicodeChar=49\r
Double=30\r
-LBrace=34\r
-RBracket=37\r
-Lt=38\r
+Lt=34\r
NAME=13\r
-Leq=40\r
-WhiteSpaces=59\r
+Leq=36\r
+WhiteSpaces=55\r
-// $ANTLR 3.1.3 Mar 17, 2009 19:23:44 LensQuery.g 2009-09-10 16:56:16\r
+// $ANTLR 3.1.3 Mar 17, 2009 19:23:44 LensQuery.g 2009-09-29 14:01:34\r
\r
/*--------------------------------------------------------------------------\r
* Copyright 2009 Taro L. Saito\r
public class LensQueryLexer extends Lexer {\r
public static final int INDEX=15;\r
public static final int PATTERNMATCH=9;\r
- public static final int Match=44;\r
- public static final int RBrace=35;\r
- public static final int LBracket=36;\r
- public static final int Regex=45;\r
+ public static final int Match=40;\r
+ public static final int Regex=41;\r
public static final int Digit=19;\r
public static final int Frac=28;\r
public static final int HexDigit=21;\r
public static final int ALIAS=11;\r
public static final int VALUE=14;\r
public static final int Letter=20;\r
- public static final int Comma=47;\r
- public static final int Dot=46;\r
+ public static final int Comma=43;\r
+ public static final int Dot=42;\r
public static final int EscapeSequence=23;\r
public static final int Integer=27;\r
- public static final int WhiteSpace=56;\r
+ public static final int WhiteSpace=52;\r
public static final int OPERATOR=7;\r
public static final int False=32;\r
- public static final int Colon=48;\r
+ public static final int Colon=44;\r
public static final int LineComment=17;\r
public static final int NODEVALUE=12;\r
- public static final int As=49;\r
- public static final int SafeFirstLetter=54;\r
+ public static final int As=45;\r
+ public static final int SafeFirstLetter=50;\r
public static final int Null=33;\r
- public static final int Star=52;\r
- public static final int Eq=42;\r
+ public static final int Star=48;\r
+ public static final int Eq=38;\r
public static final int Exp=29;\r
- public static final int QNameChar=57;\r
+ public static final int QNameChar=53;\r
public static final int RELATION=5;\r
- public static final int Gt=39;\r
- public static final int RParen=51;\r
+ public static final int Gt=35;\r
+ public static final int RParen=47;\r
public static final int UnicodeChar=22;\r
public static final int StringChar=24;\r
public static final int True=31;\r
public static final int OPERAND=8;\r
public static final int LineBreak=18;\r
- public static final int LParen=50;\r
+ public static final int LParen=46;\r
public static final int String=26;\r
- public static final int SafeLetter=55;\r
+ public static final int SafeLetter=51;\r
public static final int LineBreakChar=16;\r
public static final int COMPARE=6;\r
- public static final int QName=58;\r
- public static final int Geq=41;\r
+ public static final int QName=54;\r
+ public static final int Geq=37;\r
public static final int EOF=-1;\r
public static final int NODE=10;\r
- public static final int Neq=43;\r
+ public static final int Neq=39;\r
public static final int StringChar_s=25;\r
- public static final int UnsafeUnicodeChar=53;\r
- public static final int LBrace=34;\r
+ public static final int UnsafeUnicodeChar=49;\r
public static final int Double=30;\r
- public static final int Lt=38;\r
- public static final int RBracket=37;\r
+ public static final int Lt=34;\r
public static final int NAME=13;\r
- public static final int Leq=40;\r
- public static final int WhiteSpaces=59;\r
+ public static final int Leq=36;\r
+ public static final int WhiteSpaces=55;\r
\r
\r
\r
}\r
// $ANTLR end "Null"\r
\r
- // $ANTLR start "LBrace"\r
- public final void mLBrace() throws RecognitionException {\r
- try {\r
- int _type = LBrace;\r
- int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // LensQuery.g:146:7: ( '{' )\r
- // LensQuery.g:146:9: '{'\r
- {\r
- match('{'); \r
-\r
- }\r
-\r
- state.type = _type;\r
- state.channel = _channel;\r
- }\r
- finally {\r
- }\r
- }\r
- // $ANTLR end "LBrace"\r
-\r
- // $ANTLR start "RBrace"\r
- public final void mRBrace() throws RecognitionException {\r
- try {\r
- int _type = RBrace;\r
- int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // LensQuery.g:147:7: ( '}' )\r
- // LensQuery.g:147:9: '}'\r
- {\r
- match('}'); \r
-\r
- }\r
-\r
- state.type = _type;\r
- state.channel = _channel;\r
- }\r
- finally {\r
- }\r
- }\r
- // $ANTLR end "RBrace"\r
-\r
- // $ANTLR start "LBracket"\r
- public final void mLBracket() throws RecognitionException {\r
- try {\r
- int _type = LBracket;\r
- int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // LensQuery.g:148:9: ( '[' )\r
- // LensQuery.g:148:11: '['\r
- {\r
- match('['); \r
-\r
- }\r
-\r
- state.type = _type;\r
- state.channel = _channel;\r
- }\r
- finally {\r
- }\r
- }\r
- // $ANTLR end "LBracket"\r
-\r
- // $ANTLR start "RBracket"\r
- public final void mRBracket() throws RecognitionException {\r
- try {\r
- int _type = RBracket;\r
- int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // LensQuery.g:149:9: ( ']' )\r
- // LensQuery.g:149:11: ']'\r
- {\r
- match(']'); \r
-\r
- }\r
-\r
- state.type = _type;\r
- state.channel = _channel;\r
- }\r
- finally {\r
- }\r
- }\r
- // $ANTLR end "RBracket"\r
-\r
// $ANTLR start "Lt"\r
public final void mLt() throws RecognitionException {\r
try {\r
int _type = Lt;\r
int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // LensQuery.g:152:3: ( '<' )\r
- // LensQuery.g:152:5: '<'\r
+ // LensQuery.g:148:3: ( '<' )\r
+ // LensQuery.g:148:5: '<'\r
{\r
match('<'); \r
\r
try {\r
int _type = Gt;\r
int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // LensQuery.g:153:3: ( '>' )\r
- // LensQuery.g:153:5: '>'\r
+ // LensQuery.g:149:3: ( '>' )\r
+ // LensQuery.g:149:5: '>'\r
{\r
match('>'); \r
\r
try {\r
int _type = Leq;\r
int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // LensQuery.g:154:4: ( '<=' )\r
- // LensQuery.g:154:6: '<='\r
+ // LensQuery.g:150:4: ( '<=' )\r
+ // LensQuery.g:150:6: '<='\r
{\r
match("<="); \r
\r
try {\r
int _type = Geq;\r
int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // LensQuery.g:155:4: ( '>=' )\r
- // LensQuery.g:155:6: '>='\r
+ // LensQuery.g:151:4: ( '>=' )\r
+ // LensQuery.g:151:6: '>='\r
{\r
match(">="); \r
\r
try {\r
int _type = Eq;\r
int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // LensQuery.g:156:3: ( '=' )\r
- // LensQuery.g:156:5: '='\r
+ // LensQuery.g:152:3: ( '=' )\r
+ // LensQuery.g:152:5: '='\r
{\r
match('='); \r
\r
try {\r
int _type = Neq;\r
int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // LensQuery.g:157:4: ( '!=' )\r
- // LensQuery.g:157:6: '!='\r
+ // LensQuery.g:153:4: ( '!=' )\r
+ // LensQuery.g:153:6: '!='\r
{\r
match("!="); \r
\r
try {\r
int _type = Match;\r
int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // LensQuery.g:158:6: ( '~=' )\r
- // LensQuery.g:158:8: '~='\r
+ // LensQuery.g:154:6: ( '~=' )\r
+ // LensQuery.g:154:8: '~='\r
{\r
match("~="); \r
\r
try {\r
int _type = Regex;\r
int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // LensQuery.g:159:6: ( '/' ( options {greedy=false; } : . )* '/' ( 'a' .. 'z' | 'A' .. 'Z' )* )\r
- // LensQuery.g:159:8: '/' ( options {greedy=false; } : . )* '/' ( 'a' .. 'z' | 'A' .. 'Z' )*\r
+ // LensQuery.g:155:6: ( '/' ( options {greedy=false; } : . )* '/' ( 'a' .. 'z' | 'A' .. 'Z' )* )\r
+ // LensQuery.g:155:8: '/' ( options {greedy=false; } : . )* '/' ( 'a' .. 'z' | 'A' .. 'Z' )*\r
{\r
match('/'); \r
- // LensQuery.g:159:13: ( options {greedy=false; } : . )*\r
+ // LensQuery.g:155:13: ( options {greedy=false; } : . )*\r
loop14:\r
do {\r
int alt14=2;\r
\r
switch (alt14) {\r
case 1 :\r
- // LensQuery.g:159:38: .\r
+ // LensQuery.g:155:38: .\r
{\r
matchAny(); \r
\r
} while (true);\r
\r
match('/'); \r
- // LensQuery.g:159:46: ( 'a' .. 'z' | 'A' .. 'Z' )*\r
+ // LensQuery.g:155:46: ( 'a' .. 'z' | 'A' .. 'Z' )*\r
loop15:\r
do {\r
int alt15=2;\r
try {\r
int _type = Dot;\r
int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // LensQuery.g:161:4: ( '.' )\r
- // LensQuery.g:161:6: '.'\r
+ // LensQuery.g:158:4: ( '.' )\r
+ // LensQuery.g:158:6: '.'\r
{\r
match('.'); \r
\r
try {\r
int _type = Comma;\r
int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // LensQuery.g:162:6: ( ',' )\r
- // LensQuery.g:162:8: ','\r
+ // LensQuery.g:159:6: ( ',' )\r
+ // LensQuery.g:159:8: ','\r
{\r
match(','); \r
\r
try {\r
int _type = Colon;\r
int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // LensQuery.g:163:6: ( ':' )\r
- // LensQuery.g:163:8: ':'\r
+ // LensQuery.g:160:6: ( ':' )\r
+ // LensQuery.g:160:8: ':'\r
{\r
match(':'); \r
\r
try {\r
int _type = As;\r
int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // LensQuery.g:165:3: ( 'as' )\r
- // LensQuery.g:165:5: 'as'\r
+ // LensQuery.g:162:3: ( 'as' )\r
+ // LensQuery.g:162:5: 'as'\r
{\r
match("as"); \r
\r
try {\r
int _type = LParen;\r
int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // LensQuery.g:167:7: ( '(' )\r
- // LensQuery.g:167:9: '('\r
+ // LensQuery.g:164:7: ( '(' )\r
+ // LensQuery.g:164:9: '('\r
{\r
match('('); \r
\r
try {\r
int _type = RParen;\r
int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // LensQuery.g:168:7: ( ')' )\r
- // LensQuery.g:168:9: ')'\r
+ // LensQuery.g:165:7: ( ')' )\r
+ // LensQuery.g:165:9: ')'\r
{\r
match(')'); \r
\r
try {\r
int _type = Star;\r
int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // LensQuery.g:170:5: ( '*' )\r
- // LensQuery.g:170:7: '*'\r
+ // LensQuery.g:167:5: ( '*' )\r
+ // LensQuery.g:167:7: '*'\r
{\r
match('*'); \r
\r
// $ANTLR start "UnsafeUnicodeChar"\r
public final void mUnsafeUnicodeChar() throws RecognitionException {\r
try {\r
- // LensQuery.g:173:18: ( '(' | ')' | '[' | ']' | '{' | '}' | ',' | ':' | '#' | '<' | '>' | '|' | '*' | '\\'' | '\"' | '@' | '%' | '\\\\' | '.' | '-' )\r
+ // LensQuery.g:170:18: ( '(' | ')' | '[' | ']' | '{' | '}' | ',' | ':' | '#' | '<' | '>' | '|' | '*' | '\\'' | '\"' | '@' | '%' | '\\\\' | '.' | '-' )\r
// LensQuery.g:\r
{\r
if ( (input.LA(1)>='\"' && input.LA(1)<='#')||input.LA(1)=='%'||(input.LA(1)>='\'' && input.LA(1)<='*')||(input.LA(1)>=',' && input.LA(1)<='.')||input.LA(1)==':'||input.LA(1)=='<'||input.LA(1)=='>'||input.LA(1)=='@'||(input.LA(1)>='[' && input.LA(1)<=']')||(input.LA(1)>='{' && input.LA(1)<='}') ) {\r
// $ANTLR start "SafeFirstLetter"\r
public final void mSafeFirstLetter() throws RecognitionException {\r
try {\r
- // LensQuery.g:175:25: ( 'A' .. 'Z' | 'a' .. 'z' )\r
+ // LensQuery.g:172:25: ( 'A' .. 'Z' | 'a' .. 'z' )\r
// LensQuery.g:\r
{\r
if ( (input.LA(1)>='A' && input.LA(1)<='Z')||(input.LA(1)>='a' && input.LA(1)<='z') ) {\r
// $ANTLR start "SafeLetter"\r
public final void mSafeLetter() throws RecognitionException {\r
try {\r
- // LensQuery.g:176:20: ( SafeFirstLetter | '0' .. '9' | '-' | '_' )\r
+ // LensQuery.g:173:20: ( SafeFirstLetter | '0' .. '9' | '-' | '_' )\r
// LensQuery.g:\r
{\r
if ( input.LA(1)=='-'||(input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {\r
// $ANTLR start "QNameChar"\r
public final void mQNameChar() throws RecognitionException {\r
try {\r
- // LensQuery.g:179:19: (~ ( LineBreakChar | UnsafeUnicodeChar | WhiteSpace ) )\r
- // LensQuery.g:179:21: ~ ( LineBreakChar | UnsafeUnicodeChar | WhiteSpace )\r
+ // LensQuery.g:176:19: (~ ( LineBreakChar | UnsafeUnicodeChar | WhiteSpace ) )\r
+ // LensQuery.g:176:21: ~ ( LineBreakChar | UnsafeUnicodeChar | WhiteSpace )\r
{\r
if ( (input.LA(1)>='\u0000' && input.LA(1)<='\b')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\u001F')||input.LA(1)=='!'||input.LA(1)=='$'||input.LA(1)=='&'||input.LA(1)=='+'||(input.LA(1)>='/' && input.LA(1)<='9')||input.LA(1)==';'||input.LA(1)=='='||input.LA(1)=='?'||(input.LA(1)>='A' && input.LA(1)<='Z')||(input.LA(1)>='^' && input.LA(1)<='z')||(input.LA(1)>='~' && input.LA(1)<='\uFFFF') ) {\r
input.consume();\r
try {\r
int _type = QName;\r
int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // LensQuery.g:180:6: ( ( QNameChar )+ ( Dot ( QNameChar )+ )* )\r
- // LensQuery.g:180:8: ( QNameChar )+ ( Dot ( QNameChar )+ )*\r
+ // LensQuery.g:177:6: ( ( QNameChar )+ ( Dot ( QNameChar )+ )* )\r
+ // LensQuery.g:177:8: ( QNameChar )+ ( Dot ( QNameChar )+ )*\r
{\r
- // LensQuery.g:180:8: ( QNameChar )+\r
+ // LensQuery.g:177:8: ( QNameChar )+\r
int cnt16=0;\r
loop16:\r
do {\r
\r
switch (alt16) {\r
case 1 :\r
- // LensQuery.g:180:8: QNameChar\r
+ // LensQuery.g:177:8: QNameChar\r
{\r
mQNameChar(); \r
\r
cnt16++;\r
} while (true);\r
\r
- // LensQuery.g:180:19: ( Dot ( QNameChar )+ )*\r
+ // LensQuery.g:177:19: ( Dot ( QNameChar )+ )*\r
loop18:\r
do {\r
int alt18=2;\r
\r
switch (alt18) {\r
case 1 :\r
- // LensQuery.g:180:20: Dot ( QNameChar )+\r
+ // LensQuery.g:177:20: Dot ( QNameChar )+\r
{\r
mDot(); \r
- // LensQuery.g:180:24: ( QNameChar )+\r
+ // LensQuery.g:177:24: ( QNameChar )+\r
int cnt17=0;\r
loop17:\r
do {\r
\r
switch (alt17) {\r
case 1 :\r
- // LensQuery.g:180:24: QNameChar\r
+ // LensQuery.g:177:24: QNameChar\r
{\r
mQNameChar(); \r
\r
// $ANTLR start "WhiteSpace"\r
public final void mWhiteSpace() throws RecognitionException {\r
try {\r
- // LensQuery.g:184:11: ( ' ' | '\\t' )\r
+ // LensQuery.g:181:11: ( ' ' | '\\t' )\r
// LensQuery.g:\r
{\r
if ( input.LA(1)=='\t'||input.LA(1)==' ' ) {\r
try {\r
int _type = WhiteSpaces;\r
int _channel = DEFAULT_TOKEN_CHANNEL;\r
- // LensQuery.g:186:12: ( ( WhiteSpace )+ )\r
- // LensQuery.g:186:14: ( WhiteSpace )+\r
+ // LensQuery.g:183:12: ( ( WhiteSpace )+ )\r
+ // LensQuery.g:183:14: ( WhiteSpace )+\r
{\r
- // LensQuery.g:186:14: ( WhiteSpace )+\r
+ // LensQuery.g:183:14: ( WhiteSpace )+\r
int cnt19=0;\r
loop19:\r
do {\r
\r
switch (alt19) {\r
case 1 :\r
- // LensQuery.g:186:14: WhiteSpace\r
+ // LensQuery.g:183:14: WhiteSpace\r
{\r
mWhiteSpace(); \r
\r
// $ANTLR end "WhiteSpaces"\r
\r
public void mTokens() throws RecognitionException {\r
- // LensQuery.g:1:8: ( LineComment | LineBreak | String | Integer | Double | True | False | Null | LBrace | RBrace | LBracket | RBracket | Lt | Gt | Leq | Geq | Eq | Neq | Match | Regex | Dot | Comma | Colon | As | LParen | RParen | Star | QName | WhiteSpaces )\r
- int alt20=29;\r
+ // LensQuery.g:1:8: ( LineComment | LineBreak | String | Integer | Double | True | False | Null | Lt | Gt | Leq | Geq | Eq | Neq | Match | Regex | Dot | Comma | Colon | As | LParen | RParen | Star | QName | WhiteSpaces )\r
+ int alt20=25;\r
alt20 = dfa20.predict(input);\r
switch (alt20) {\r
case 1 :\r
}\r
break;\r
case 9 :\r
- // LensQuery.g:1:70: LBrace\r
- {\r
- mLBrace(); \r
-\r
- }\r
- break;\r
- case 10 :\r
- // LensQuery.g:1:77: RBrace\r
- {\r
- mRBrace(); \r
-\r
- }\r
- break;\r
- case 11 :\r
- // LensQuery.g:1:84: LBracket\r
- {\r
- mLBracket(); \r
-\r
- }\r
- break;\r
- case 12 :\r
- // LensQuery.g:1:93: RBracket\r
- {\r
- mRBracket(); \r
-\r
- }\r
- break;\r
- case 13 :\r
- // LensQuery.g:1:102: Lt\r
+ // LensQuery.g:1:70: Lt\r
{\r
mLt(); \r
\r
}\r
break;\r
- case 14 :\r
- // LensQuery.g:1:105: Gt\r
+ case 10 :\r
+ // LensQuery.g:1:73: Gt\r
{\r
mGt(); \r
\r
}\r
break;\r
- case 15 :\r
- // LensQuery.g:1:108: Leq\r
+ case 11 :\r
+ // LensQuery.g:1:76: Leq\r
{\r
mLeq(); \r
\r
}\r
break;\r
- case 16 :\r
- // LensQuery.g:1:112: Geq\r
+ case 12 :\r
+ // LensQuery.g:1:80: Geq\r
{\r
mGeq(); \r
\r
}\r
break;\r
- case 17 :\r
- // LensQuery.g:1:116: Eq\r
+ case 13 :\r
+ // LensQuery.g:1:84: Eq\r
{\r
mEq(); \r
\r
}\r
break;\r
- case 18 :\r
- // LensQuery.g:1:119: Neq\r
+ case 14 :\r
+ // LensQuery.g:1:87: Neq\r
{\r
mNeq(); \r
\r
}\r
break;\r
- case 19 :\r
- // LensQuery.g:1:123: Match\r
+ case 15 :\r
+ // LensQuery.g:1:91: Match\r
{\r
mMatch(); \r
\r
}\r
break;\r
- case 20 :\r
- // LensQuery.g:1:129: Regex\r
+ case 16 :\r
+ // LensQuery.g:1:97: Regex\r
{\r
mRegex(); \r
\r
}\r
break;\r
- case 21 :\r
- // LensQuery.g:1:135: Dot\r
+ case 17 :\r
+ // LensQuery.g:1:103: Dot\r
{\r
mDot(); \r
\r
}\r
break;\r
- case 22 :\r
- // LensQuery.g:1:139: Comma\r
+ case 18 :\r
+ // LensQuery.g:1:107: Comma\r
{\r
mComma(); \r
\r
}\r
break;\r
- case 23 :\r
- // LensQuery.g:1:145: Colon\r
+ case 19 :\r
+ // LensQuery.g:1:113: Colon\r
{\r
mColon(); \r
\r
}\r
break;\r
- case 24 :\r
- // LensQuery.g:1:151: As\r
+ case 20 :\r
+ // LensQuery.g:1:119: As\r
{\r
mAs(); \r
\r
}\r
break;\r
- case 25 :\r
- // LensQuery.g:1:154: LParen\r
+ case 21 :\r
+ // LensQuery.g:1:122: LParen\r
{\r
mLParen(); \r
\r
}\r
break;\r
- case 26 :\r
- // LensQuery.g:1:161: RParen\r
+ case 22 :\r
+ // LensQuery.g:1:129: RParen\r
{\r
mRParen(); \r
\r
}\r
break;\r
- case 27 :\r
- // LensQuery.g:1:168: Star\r
+ case 23 :\r
+ // LensQuery.g:1:136: Star\r
{\r
mStar(); \r
\r
}\r
break;\r
- case 28 :\r
- // LensQuery.g:1:173: QName\r
+ case 24 :\r
+ // LensQuery.g:1:141: QName\r
{\r
mQName(); \r
\r
}\r
break;\r
- case 29 :\r
- // LensQuery.g:1:179: WhiteSpaces\r
+ case 25 :\r
+ // LensQuery.g:1:147: WhiteSpaces\r
{\r
mWhiteSpaces(); \r
\r
\r
protected DFA20 dfa20 = new DFA20(this);\r
static final String DFA20_eotS =\r
- "\5\uffff\2\37\3\33\4\uffff\1\47\1\51\1\52\3\33\3\uffff\1\33\5\uffff"+\r
- "\2\37\2\uffff\1\33\1\37\3\33\5\uffff\1\72\1\73\1\uffff\1\57\1\uffff"+\r
- "\1\33\1\77\1\uffff\1\37\1\62\1\33\1\62\3\33\2\uffff\1\57\1\33\1"+\r
- "\57\1\uffff\1\33\1\107\1\33\1\111\1\57\1\33\1\62\1\uffff\1\112\2"+\r
- "\uffff";\r
+ "\5\uffff\2\33\3\27\1\43\1\45\1\46\3\27\3\uffff\1\27\5\uffff\2\33"+\r
+ "\2\uffff\1\27\1\33\3\27\5\uffff\1\66\1\67\1\uffff\1\53\1\uffff\1"+\r
+ "\27\1\73\1\uffff\1\33\1\56\1\27\1\56\3\27\2\uffff\1\53\1\27\1\53"+\r
+ "\1\uffff\1\27\1\103\1\27\1\105\1\53\1\27\1\56\1\uffff\1\106\2\uffff";\r
static final String DFA20_eofS =\r
- "\113\uffff";\r
+ "\107\uffff";\r
static final String DFA20_minS =\r
- "\1\0\3\uffff\1\60\2\0\1\162\1\141\1\165\4\uffff\2\75\1\0\2\75\1"+\r
- "\0\3\uffff\1\163\5\uffff\2\56\1\uffff\1\0\1\53\1\0\1\165\2\154\5"+\r
- "\uffff\4\0\1\uffff\2\0\1\uffff\1\56\1\0\1\60\1\0\1\145\1\163\1\154"+\r
- "\2\uffff\3\0\1\uffff\1\53\1\0\1\145\2\0\1\60\1\0\1\uffff\1\0\2\uffff";\r
+ "\1\0\3\uffff\1\60\2\0\1\162\1\141\1\165\2\75\1\0\2\75\1\0\3\uffff"+\r
+ "\1\163\5\uffff\2\56\1\uffff\1\0\1\53\1\0\1\165\2\154\5\uffff\4\0"+\r
+ "\1\uffff\2\0\1\uffff\1\56\1\0\1\60\1\0\1\145\1\163\1\154\2\uffff"+\r
+ "\3\0\1\uffff\1\53\1\0\1\145\2\0\1\60\1\0\1\uffff\1\0\2\uffff";\r
static final String DFA20_maxS =\r
- "\1\uffff\3\uffff\1\71\2\uffff\1\162\1\141\1\165\4\uffff\2\75\1"+\r
- "\uffff\2\75\1\uffff\3\uffff\1\163\5\uffff\2\145\1\uffff\1\uffff"+\r
- "\1\71\1\uffff\1\165\2\154\5\uffff\4\uffff\1\uffff\2\uffff\1\uffff"+\r
- "\1\145\1\uffff\1\71\1\uffff\1\145\1\163\1\154\2\uffff\3\uffff\1"+\r
- "\uffff\1\71\1\uffff\1\145\2\uffff\1\71\1\uffff\1\uffff\1\uffff\2"+\r
- "\uffff";\r
+ "\1\uffff\3\uffff\1\71\2\uffff\1\162\1\141\1\165\2\75\1\uffff\2"+\r
+ "\75\1\uffff\3\uffff\1\163\5\uffff\2\145\1\uffff\1\uffff\1\71\1\uffff"+\r
+ "\1\165\2\154\5\uffff\4\uffff\1\uffff\2\uffff\1\uffff\1\145\1\uffff"+\r
+ "\1\71\1\uffff\1\145\1\163\1\154\2\uffff\3\uffff\1\uffff\1\71\1\uffff"+\r
+ "\1\145\2\uffff\1\71\1\uffff\1\uffff\1\uffff\2\uffff";\r
static final String DFA20_acceptS =\r
- "\1\uffff\1\1\1\2\1\3\6\uffff\1\11\1\12\1\13\1\14\6\uffff\1\25\1"+\r
- "\26\1\27\1\uffff\1\31\1\32\1\33\1\34\1\35\2\uffff\1\4\6\uffff\1"+\r
- "\17\1\15\1\20\1\16\1\21\4\uffff\1\24\2\uffff\1\5\7\uffff\1\22\1"+\r
- "\23\3\uffff\1\30\7\uffff\1\6\1\uffff\1\10\1\7";\r
+ "\1\uffff\1\1\1\2\1\3\14\uffff\1\21\1\22\1\23\1\uffff\1\25\1\26"+\r
+ "\1\27\1\30\1\31\2\uffff\1\4\6\uffff\1\13\1\11\1\14\1\12\1\15\4\uffff"+\r
+ "\1\20\2\uffff\1\5\7\uffff\1\16\1\17\3\uffff\1\24\7\uffff\1\6\1\uffff"+\r
+ "\1\10\1\7";\r
static final String DFA20_specialS =\r
- "\1\0\4\uffff\1\20\1\1\11\uffff\1\21\2\uffff\1\22\14\uffff\1\6\1"+\r
- "\uffff\1\25\10\uffff\1\2\1\17\1\12\1\24\1\uffff\1\14\1\16\2\uffff"+\r
- "\1\11\1\uffff\1\10\5\uffff\1\5\1\26\1\23\2\uffff\1\3\1\uffff\1\4"+\r
- "\1\13\1\uffff\1\15\1\uffff\1\7\2\uffff}>";\r
+ "\1\20\4\uffff\1\26\1\14\5\uffff\1\4\2\uffff\1\22\14\uffff\1\21"+\r
+ "\1\uffff\1\7\10\uffff\1\0\1\23\1\5\1\16\1\uffff\1\2\1\17\2\uffff"+\r
+ "\1\25\1\uffff\1\6\5\uffff\1\10\1\15\1\24\2\uffff\1\1\1\uffff\1\13"+\r
+ "\1\3\1\uffff\1\12\1\uffff\1\11\2\uffff}>";\r
static final String[] DFA20_transitionS = {\r
- "\11\33\1\34\1\2\2\33\1\2\22\33\1\34\1\21\1\3\1\1\1\33\1\uffff"+\r
- "\1\33\1\uffff\1\30\1\31\1\32\1\33\1\25\1\4\1\24\1\23\1\5\11"+\r
- "\6\1\26\1\33\1\16\1\20\1\17\1\33\1\uffff\32\33\1\14\1\uffff"+\r
- "\1\15\3\33\1\27\4\33\1\10\7\33\1\11\5\33\1\7\6\33\1\12\1\uffff"+\r
- "\1\13\1\22\uff81\33",\r
+ "\11\27\1\30\1\2\2\27\1\2\22\27\1\30\1\15\1\3\1\1\1\27\1\uffff"+\r
+ "\1\27\1\uffff\1\24\1\25\1\26\1\27\1\21\1\4\1\20\1\17\1\5\11"+\r
+ "\6\1\22\1\27\1\12\1\14\1\13\1\27\1\uffff\32\27\3\uffff\3\27"+\r
+ "\1\23\4\27\1\10\7\27\1\11\5\27\1\7\6\27\3\uffff\1\16\uff81\27",\r
"",\r
"",\r
"",\r
- "\1\35\11\36",\r
- "\11\33\2\uffff\2\33\1\uffff\22\33\1\uffff\1\33\2\uffff\1\33"+\r
- "\1\uffff\1\33\4\uffff\1\33\2\uffff\1\40\13\33\1\uffff\1\33\1"+\r
- "\uffff\1\33\1\uffff\1\33\1\uffff\4\33\1\41\25\33\3\uffff\7\33"+\r
- "\1\41\25\33\3\uffff\uff82\33",\r
- "\11\33\2\uffff\2\33\1\uffff\22\33\1\uffff\1\33\2\uffff\1\33"+\r
- "\1\uffff\1\33\4\uffff\1\33\2\uffff\1\40\1\33\12\42\1\uffff\1"+\r
- "\33\1\uffff\1\33\1\uffff\1\33\1\uffff\4\33\1\41\25\33\3\uffff"+\r
- "\7\33\1\41\25\33\3\uffff\uff82\33",\r
- "\1\43",\r
+ "\1\31\11\32",\r
+ "\11\27\2\uffff\2\27\1\uffff\22\27\1\uffff\1\27\2\uffff\1\27"+\r
+ "\1\uffff\1\27\4\uffff\1\27\2\uffff\1\34\13\27\1\uffff\1\27\1"+\r
+ "\uffff\1\27\1\uffff\1\27\1\uffff\4\27\1\35\25\27\3\uffff\7\27"+\r
+ "\1\35\25\27\3\uffff\uff82\27",\r
+ "\11\27\2\uffff\2\27\1\uffff\22\27\1\uffff\1\27\2\uffff\1\27"+\r
+ "\1\uffff\1\27\4\uffff\1\27\2\uffff\1\34\1\27\12\36\1\uffff\1"+\r
+ "\27\1\uffff\1\27\1\uffff\1\27\1\uffff\4\27\1\35\25\27\3\uffff"+\r
+ "\7\27\1\35\25\27\3\uffff\uff82\27",\r
+ "\1\37",\r
+ "\1\40",\r
+ "\1\41",\r
+ "\1\42",\r
"\1\44",\r
- "\1\45",\r
- "",\r
- "",\r
- "",\r
- "",\r
- "\1\46",\r
+ "\11\27\2\uffff\2\27\1\uffff\22\27\1\uffff\1\27\2\uffff\1\27"+\r
+ "\1\uffff\1\27\4\uffff\1\27\2\uffff\14\27\1\uffff\1\27\1\uffff"+\r
+ "\1\27\1\uffff\1\27\1\uffff\32\27\3\uffff\35\27\3\uffff\uff82"+\r
+ "\27",\r
+ "\1\47",\r
"\1\50",\r
- "\11\33\2\uffff\2\33\1\uffff\22\33\1\uffff\1\33\2\uffff\1\33"+\r
- "\1\uffff\1\33\4\uffff\1\33\2\uffff\14\33\1\uffff\1\33\1\uffff"+\r
- "\1\33\1\uffff\1\33\1\uffff\32\33\3\uffff\35\33\3\uffff\uff82"+\r
- "\33",\r
- "\1\53",\r
- "\1\54",\r
- "\11\60\2\57\2\60\1\57\22\60\1\57\1\60\2\57\1\60\1\57\1\60"+\r
- "\4\57\1\60\2\57\1\55\1\56\12\60\1\57\1\60\1\57\1\60\1\57\1\60"+\r
- "\1\57\32\60\3\57\35\60\3\57\uff82\60",\r
+ "\11\54\2\53\2\54\1\53\22\54\1\53\1\54\2\53\1\54\1\53\1\54"+\r
+ "\4\53\1\54\2\53\1\51\1\52\12\54\1\53\1\54\1\53\1\54\1\53\1\54"+\r
+ "\1\53\32\54\3\53\35\54\3\53\uff82\54",\r
"",\r
"",\r
"",\r
- "\1\61",\r
+ "\1\55",\r
"",\r
"",\r
"",\r
"",\r
"",\r
- "\1\62\26\uffff\1\62\37\uffff\1\62",\r
- "\1\62\1\uffff\12\63\13\uffff\1\62\37\uffff\1\62",\r
+ "\1\56\26\uffff\1\56\37\uffff\1\56",\r
+ "\1\56\1\uffff\12\57\13\uffff\1\56\37\uffff\1\56",\r
"",\r
- "\11\33\2\uffff\2\33\1\uffff\22\33\1\uffff\1\33\2\uffff\1\33"+\r
- "\1\uffff\1\33\4\uffff\1\33\3\uffff\1\33\12\64\1\uffff\1\33\1"+\r
- "\uffff\1\33\1\uffff\1\33\1\uffff\32\33\3\uffff\35\33\3\uffff"+\r
- "\uff82\33",\r
- "\1\65\1\uffff\1\62\2\uffff\12\66",\r
- "\11\33\2\uffff\2\33\1\uffff\22\33\1\uffff\1\33\2\uffff\1\33"+\r
- "\1\uffff\1\33\4\uffff\1\33\2\uffff\1\40\1\33\12\42\1\uffff\1"+\r
- "\33\1\uffff\1\33\1\uffff\1\33\1\uffff\4\33\1\41\25\33\3\uffff"+\r
- "\7\33\1\41\25\33\3\uffff\uff82\33",\r
- "\1\67",\r
- "\1\70",\r
- "\1\71",\r
+ "\11\27\2\uffff\2\27\1\uffff\22\27\1\uffff\1\27\2\uffff\1\27"+\r
+ "\1\uffff\1\27\4\uffff\1\27\3\uffff\1\27\12\60\1\uffff\1\27\1"+\r
+ "\uffff\1\27\1\uffff\1\27\1\uffff\32\27\3\uffff\35\27\3\uffff"+\r
+ "\uff82\27",\r
+ "\1\61\1\uffff\1\56\2\uffff\12\62",\r
+ "\11\27\2\uffff\2\27\1\uffff\22\27\1\uffff\1\27\2\uffff\1\27"+\r
+ "\1\uffff\1\27\4\uffff\1\27\2\uffff\1\34\1\27\12\36\1\uffff\1"+\r
+ "\27\1\uffff\1\27\1\uffff\1\27\1\uffff\4\27\1\35\25\27\3\uffff"+\r
+ "\7\27\1\35\25\27\3\uffff\uff82\27",\r
+ "\1\63",\r
+ "\1\64",\r
+ "\1\65",\r
"",\r
"",\r
"",\r
"",\r
"",\r
- "\11\33\2\uffff\2\33\1\uffff\22\33\1\uffff\1\33\2\uffff\1\33"+\r
- "\1\uffff\1\33\4\uffff\1\33\2\uffff\14\33\1\uffff\1\33\1\uffff"+\r
- "\1\33\1\uffff\1\33\1\uffff\32\33\3\uffff\35\33\3\uffff\uff82"+\r
- "\33",\r
- "\11\33\2\uffff\2\33\1\uffff\22\33\1\uffff\1\33\2\uffff\1\33"+\r
- "\1\uffff\1\33\4\uffff\1\33\2\uffff\14\33\1\uffff\1\33\1\uffff"+\r
- "\1\33\1\uffff\1\33\1\uffff\32\33\3\uffff\35\33\3\uffff\uff82"+\r
- "\33",\r
- "\11\75\2\57\2\75\1\57\22\75\1\57\1\75\2\57\1\75\1\57\1\75"+\r
- "\4\57\1\75\3\57\1\74\12\75\1\57\1\75\1\57\1\75\1\57\1\75\1\57"+\r
- "\32\75\3\57\35\75\3\57\uff82\75",\r
- "\11\60\2\uffff\2\60\1\uffff\22\60\1\uffff\1\60\2\uffff\1\60"+\r
- "\1\uffff\1\60\4\uffff\1\60\2\uffff\1\55\1\56\12\60\1\uffff\1"+\r
- "\60\1\uffff\1\60\1\uffff\1\60\1\uffff\32\76\3\uffff\3\60\32"+\r
- "\76\3\uffff\uff82\60",\r
+ "\11\27\2\uffff\2\27\1\uffff\22\27\1\uffff\1\27\2\uffff\1\27"+\r
+ "\1\uffff\1\27\4\uffff\1\27\2\uffff\14\27\1\uffff\1\27\1\uffff"+\r
+ "\1\27\1\uffff\1\27\1\uffff\32\27\3\uffff\35\27\3\uffff\uff82"+\r
+ "\27",\r
+ "\11\27\2\uffff\2\27\1\uffff\22\27\1\uffff\1\27\2\uffff\1\27"+\r
+ "\1\uffff\1\27\4\uffff\1\27\2\uffff\14\27\1\uffff\1\27\1\uffff"+\r
+ "\1\27\1\uffff\1\27\1\uffff\32\27\3\uffff\35\27\3\uffff\uff82"+\r
+ "\27",\r
+ "\11\71\2\53\2\71\1\53\22\71\1\53\1\71\2\53\1\71\1\53\1\71"+\r
+ "\4\53\1\71\3\53\1\70\12\71\1\53\1\71\1\53\1\71\1\53\1\71\1\53"+\r
+ "\32\71\3\53\35\71\3\53\uff82\71",\r
+ "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\2\uffff\1\54"+\r
+ "\1\uffff\1\54\4\uffff\1\54\2\uffff\1\51\1\52\12\54\1\uffff\1"+\r
+ "\54\1\uffff\1\54\1\uffff\1\54\1\uffff\32\72\3\uffff\3\54\32"+\r
+ "\72\3\uffff\uff82\54",\r
"",\r
- "\11\60\2\57\2\60\1\57\22\60\1\57\1\60\2\57\1\60\1\57\1\60"+\r
- "\4\57\1\60\2\57\1\55\1\56\12\60\1\57\1\60\1\57\1\60\1\57\1\60"+\r
- "\1\57\32\60\3\57\35\60\3\57\uff82\60",\r
- "\11\33\2\uffff\2\33\1\uffff\22\33\1\uffff\1\33\2\uffff\1\33"+\r
- "\1\uffff\1\33\4\uffff\1\33\2\uffff\14\33\1\uffff\1\33\1\uffff"+\r
- "\1\33\1\uffff\1\33\1\uffff\32\33\3\uffff\35\33\3\uffff\uff82"+\r
- "\33",\r
+ "\11\54\2\53\2\54\1\53\22\54\1\53\1\54\2\53\1\54\1\53\1\54"+\r
+ "\4\53\1\54\2\53\1\51\1\52\12\54\1\53\1\54\1\53\1\54\1\53\1\54"+\r
+ "\1\53\32\54\3\53\35\54\3\53\uff82\54",\r
+ "\11\27\2\uffff\2\27\1\uffff\22\27\1\uffff\1\27\2\uffff\1\27"+\r
+ "\1\uffff\1\27\4\uffff\1\27\2\uffff\14\27\1\uffff\1\27\1\uffff"+\r
+ "\1\27\1\uffff\1\27\1\uffff\32\27\3\uffff\35\27\3\uffff\uff82"+\r
+ "\27",\r
"",\r
- "\1\62\1\uffff\12\63\13\uffff\1\62\37\uffff\1\62",\r
- "\11\33\2\uffff\2\33\1\uffff\22\33\1\uffff\1\33\2\uffff\1\33"+\r
- "\1\uffff\1\33\4\uffff\1\33\2\uffff\2\33\12\64\1\uffff\1\33\1"+\r
- "\uffff\1\33\1\uffff\1\33\1\uffff\4\33\1\100\25\33\3\uffff\7"+\r
- "\33\1\100\25\33\3\uffff\uff82\33",\r
- "\12\66",\r
- "\11\33\2\uffff\2\33\1\uffff\22\33\1\uffff\1\33\2\uffff\1\33"+\r
- "\1\uffff\1\33\4\uffff\1\33\2\uffff\2\33\12\66\1\uffff\1\33\1"+\r
- "\uffff\1\33\1\uffff\1\33\1\uffff\32\33\3\uffff\35\33\3\uffff"+\r
- "\uff82\33",\r
- "\1\101",\r
- "\1\102",\r
- "\1\103",\r
+ "\1\56\1\uffff\12\57\13\uffff\1\56\37\uffff\1\56",\r
+ "\11\27\2\uffff\2\27\1\uffff\22\27\1\uffff\1\27\2\uffff\1\27"+\r
+ "\1\uffff\1\27\4\uffff\1\27\2\uffff\2\27\12\60\1\uffff\1\27\1"+\r
+ "\uffff\1\27\1\uffff\1\27\1\uffff\4\27\1\74\25\27\3\uffff\7\27"+\r
+ "\1\74\25\27\3\uffff\uff82\27",\r
+ "\12\62",\r
+ "\11\27\2\uffff\2\27\1\uffff\22\27\1\uffff\1\27\2\uffff\1\27"+\r
+ "\1\uffff\1\27\4\uffff\1\27\2\uffff\2\27\12\62\1\uffff\1\27\1"+\r
+ "\uffff\1\27\1\uffff\1\27\1\uffff\32\27\3\uffff\35\27\3\uffff"+\r
+ "\uff82\27",\r
+ "\1\75",\r
+ "\1\76",\r
+ "\1\77",\r
"",\r
"",\r
- "\11\75\2\uffff\2\75\1\uffff\22\75\1\uffff\1\75\2\uffff\1\75"+\r
- "\1\uffff\1\75\4\uffff\1\75\2\uffff\1\55\1\74\12\75\1\uffff\1"+\r
- "\75\1\uffff\1\75\1\uffff\1\75\1\uffff\32\104\3\uffff\3\75\32"+\r
- "\104\3\uffff\uff82\75",\r
- "\11\75\2\57\2\75\1\57\22\75\1\57\1\75\2\57\1\75\1\57\1\75"+\r
- "\4\57\1\75\2\57\1\55\1\74\12\75\1\57\1\75\1\57\1\75\1\57\1\75"+\r
- "\1\57\32\75\3\57\35\75\3\57\uff82\75",\r
- "\11\60\2\uffff\2\60\1\uffff\22\60\1\uffff\1\60\2\uffff\1\60"+\r
- "\1\uffff\1\60\4\uffff\1\60\2\uffff\1\55\1\56\12\60\1\uffff\1"+\r
- "\60\1\uffff\1\60\1\uffff\1\60\1\uffff\32\76\3\uffff\3\60\32"+\r
- "\76\3\uffff\uff82\60",\r
+ "\11\71\2\uffff\2\71\1\uffff\22\71\1\uffff\1\71\2\uffff\1\71"+\r
+ "\1\uffff\1\71\4\uffff\1\71\2\uffff\1\51\1\70\12\71\1\uffff\1"+\r
+ "\71\1\uffff\1\71\1\uffff\1\71\1\uffff\32\100\3\uffff\3\71\32"+\r
+ "\100\3\uffff\uff82\71",\r
+ "\11\71\2\53\2\71\1\53\22\71\1\53\1\71\2\53\1\71\1\53\1\71"+\r
+ "\4\53\1\71\2\53\1\51\1\70\12\71\1\53\1\71\1\53\1\71\1\53\1\71"+\r
+ "\1\53\32\71\3\53\35\71\3\53\uff82\71",\r
+ "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\2\uffff\1\54"+\r
+ "\1\uffff\1\54\4\uffff\1\54\2\uffff\1\51\1\52\12\54\1\uffff\1"+\r
+ "\54\1\uffff\1\54\1\uffff\1\54\1\uffff\32\72\3\uffff\3\54\32"+\r
+ "\72\3\uffff\uff82\54",\r
"",\r
- "\1\105\1\uffff\1\62\2\uffff\12\106",\r
- "\11\33\2\uffff\2\33\1\uffff\22\33\1\uffff\1\33\2\uffff\1\33"+\r
- "\1\uffff\1\33\4\uffff\1\33\2\uffff\14\33\1\uffff\1\33\1\uffff"+\r
- "\1\33\1\uffff\1\33\1\uffff\32\33\3\uffff\35\33\3\uffff\uff82"+\r
- "\33",\r
- "\1\110",\r
- "\11\33\2\uffff\2\33\1\uffff\22\33\1\uffff\1\33\2\uffff\1\33"+\r
- "\1\uffff\1\33\4\uffff\1\33\2\uffff\14\33\1\uffff\1\33\1\uffff"+\r
- "\1\33\1\uffff\1\33\1\uffff\32\33\3\uffff\35\33\3\uffff\uff82"+\r
- "\33",\r
- "\11\75\2\uffff\2\75\1\uffff\22\75\1\uffff\1\75\2\uffff\1\75"+\r
- "\1\uffff\1\75\4\uffff\1\75\2\uffff\1\55\1\74\12\75\1\uffff\1"+\r
- "\75\1\uffff\1\75\1\uffff\1\75\1\uffff\32\104\3\uffff\3\75\32"+\r
- "\104\3\uffff\uff82\75",\r
- "\12\106",\r
- "\11\33\2\uffff\2\33\1\uffff\22\33\1\uffff\1\33\2\uffff\1\33"+\r
- "\1\uffff\1\33\4\uffff\1\33\2\uffff\2\33\12\106\1\uffff\1\33"+\r
- "\1\uffff\1\33\1\uffff\1\33\1\uffff\32\33\3\uffff\35\33\3\uffff"+\r
- "\uff82\33",\r
+ "\1\101\1\uffff\1\56\2\uffff\12\102",\r
+ "\11\27\2\uffff\2\27\1\uffff\22\27\1\uffff\1\27\2\uffff\1\27"+\r
+ "\1\uffff\1\27\4\uffff\1\27\2\uffff\14\27\1\uffff\1\27\1\uffff"+\r
+ "\1\27\1\uffff\1\27\1\uffff\32\27\3\uffff\35\27\3\uffff\uff82"+\r
+ "\27",\r
+ "\1\104",\r
+ "\11\27\2\uffff\2\27\1\uffff\22\27\1\uffff\1\27\2\uffff\1\27"+\r
+ "\1\uffff\1\27\4\uffff\1\27\2\uffff\14\27\1\uffff\1\27\1\uffff"+\r
+ "\1\27\1\uffff\1\27\1\uffff\32\27\3\uffff\35\27\3\uffff\uff82"+\r
+ "\27",\r
+ "\11\71\2\uffff\2\71\1\uffff\22\71\1\uffff\1\71\2\uffff\1\71"+\r
+ "\1\uffff\1\71\4\uffff\1\71\2\uffff\1\51\1\70\12\71\1\uffff\1"+\r
+ "\71\1\uffff\1\71\1\uffff\1\71\1\uffff\32\100\3\uffff\3\71\32"+\r
+ "\100\3\uffff\uff82\71",\r
+ "\12\102",\r
+ "\11\27\2\uffff\2\27\1\uffff\22\27\1\uffff\1\27\2\uffff\1\27"+\r
+ "\1\uffff\1\27\4\uffff\1\27\2\uffff\2\27\12\102\1\uffff\1\27"+\r
+ "\1\uffff\1\27\1\uffff\1\27\1\uffff\32\27\3\uffff\35\27\3\uffff"+\r
+ "\uff82\27",\r
"",\r
- "\11\33\2\uffff\2\33\1\uffff\22\33\1\uffff\1\33\2\uffff\1\33"+\r
- "\1\uffff\1\33\4\uffff\1\33\2\uffff\14\33\1\uffff\1\33\1\uffff"+\r
- "\1\33\1\uffff\1\33\1\uffff\32\33\3\uffff\35\33\3\uffff\uff82"+\r
- "\33",\r
+ "\11\27\2\uffff\2\27\1\uffff\22\27\1\uffff\1\27\2\uffff\1\27"+\r
+ "\1\uffff\1\27\4\uffff\1\27\2\uffff\14\27\1\uffff\1\27\1\uffff"+\r
+ "\1\27\1\uffff\1\27\1\uffff\32\27\3\uffff\35\27\3\uffff\uff82"+\r
+ "\27",\r
"",\r
""\r
};\r
this.transition = DFA20_transition;\r
}\r
public String getDescription() {\r
- return "1:1: Tokens : ( LineComment | LineBreak | String | Integer | Double | True | False | Null | LBrace | RBrace | LBracket | RBracket | Lt | Gt | Leq | Geq | Eq | Neq | Match | Regex | Dot | Comma | Colon | As | LParen | RParen | Star | QName | WhiteSpaces );";\r
+ return "1:1: Tokens : ( LineComment | LineBreak | String | Integer | Double | True | False | Null | Lt | Gt | Leq | Geq | Eq | Neq | Match | Regex | Dot | Comma | Colon | As | LParen | RParen | Star | QName | WhiteSpaces );";\r
}\r
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {\r
IntStream input = _input;\r
int _s = s;\r
switch ( s ) {\r
case 0 : \r
- int LA20_0 = input.LA(1);\r
+ int LA20_39 = input.LA(1);\r
\r
s = -1;\r
- if ( (LA20_0=='#') ) {s = 1;}\r
-\r
- else if ( (LA20_0=='\n'||LA20_0=='\r') ) {s = 2;}\r
-\r
- else if ( (LA20_0=='\"') ) {s = 3;}\r
-\r
- else if ( (LA20_0=='-') ) {s = 4;}\r
-\r
- else if ( (LA20_0=='0') ) {s = 5;}\r
-\r
- else if ( ((LA20_0>='1' && LA20_0<='9')) ) {s = 6;}\r
-\r
- else if ( (LA20_0=='t') ) {s = 7;}\r
-\r
- else if ( (LA20_0=='f') ) {s = 8;}\r
-\r
- else if ( (LA20_0=='n') ) {s = 9;}\r
-\r
- else if ( (LA20_0=='{') ) {s = 10;}\r
-\r
- else if ( (LA20_0=='}') ) {s = 11;}\r
-\r
- else if ( (LA20_0=='[') ) {s = 12;}\r
-\r
- else if ( (LA20_0==']') ) {s = 13;}\r
-\r
- else if ( (LA20_0=='<') ) {s = 14;}\r
-\r
- else if ( (LA20_0=='>') ) {s = 15;}\r
-\r
- else if ( (LA20_0=='=') ) {s = 16;}\r
-\r
- else if ( (LA20_0=='!') ) {s = 17;}\r
-\r
- else if ( (LA20_0=='~') ) {s = 18;}\r
-\r
- else if ( (LA20_0=='/') ) {s = 19;}\r
-\r
- else if ( (LA20_0=='.') ) {s = 20;}\r
-\r
- else if ( (LA20_0==',') ) {s = 21;}\r
-\r
- else if ( (LA20_0==':') ) {s = 22;}\r
-\r
- else if ( (LA20_0=='a') ) {s = 23;}\r
-\r
- else if ( (LA20_0=='(') ) {s = 24;}\r
+ if ( ((LA20_39>='\u0000' && LA20_39<='\b')||(LA20_39>='\u000B' && LA20_39<='\f')||(LA20_39>='\u000E' && LA20_39<='\u001F')||LA20_39=='!'||LA20_39=='$'||LA20_39=='&'||LA20_39=='+'||(LA20_39>='.' && LA20_39<='9')||LA20_39==';'||LA20_39=='='||LA20_39=='?'||(LA20_39>='A' && LA20_39<='Z')||(LA20_39>='^' && LA20_39<='z')||(LA20_39>='~' && LA20_39<='\uFFFF')) ) {s = 23;}\r
\r
- else if ( (LA20_0==')') ) {s = 25;}\r
-\r
- else if ( (LA20_0=='*') ) {s = 26;}\r
-\r
- else if ( ((LA20_0>='\u0000' && LA20_0<='\b')||(LA20_0>='\u000B' && LA20_0<='\f')||(LA20_0>='\u000E' && LA20_0<='\u001F')||LA20_0=='$'||LA20_0=='&'||LA20_0=='+'||LA20_0==';'||LA20_0=='?'||(LA20_0>='A' && LA20_0<='Z')||(LA20_0>='^' && LA20_0<='`')||(LA20_0>='b' && LA20_0<='e')||(LA20_0>='g' && LA20_0<='m')||(LA20_0>='o' && LA20_0<='s')||(LA20_0>='u' && LA20_0<='z')||(LA20_0>='\u007F' && LA20_0<='\uFFFF')) ) {s = 27;}\r
-\r
- else if ( (LA20_0=='\t'||LA20_0==' ') ) {s = 28;}\r
+ else s = 54;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 1 : \r
- int LA20_6 = input.LA(1);\r
+ int LA20_61 = input.LA(1);\r
\r
s = -1;\r
- if ( (LA20_6=='.') ) {s = 32;}\r
-\r
- else if ( ((LA20_6>='0' && LA20_6<='9')) ) {s = 34;}\r
-\r
- else if ( (LA20_6=='E'||LA20_6=='e') ) {s = 33;}\r
+ if ( ((LA20_61>='\u0000' && LA20_61<='\b')||(LA20_61>='\u000B' && LA20_61<='\f')||(LA20_61>='\u000E' && LA20_61<='\u001F')||LA20_61=='!'||LA20_61=='$'||LA20_61=='&'||LA20_61=='+'||(LA20_61>='.' && LA20_61<='9')||LA20_61==';'||LA20_61=='='||LA20_61=='?'||(LA20_61>='A' && LA20_61<='Z')||(LA20_61>='^' && LA20_61<='z')||(LA20_61>='~' && LA20_61<='\uFFFF')) ) {s = 23;}\r
\r
- else if ( ((LA20_6>='\u0000' && LA20_6<='\b')||(LA20_6>='\u000B' && LA20_6<='\f')||(LA20_6>='\u000E' && LA20_6<='\u001F')||LA20_6=='!'||LA20_6=='$'||LA20_6=='&'||LA20_6=='+'||LA20_6=='/'||LA20_6==';'||LA20_6=='='||LA20_6=='?'||(LA20_6>='A' && LA20_6<='D')||(LA20_6>='F' && LA20_6<='Z')||(LA20_6>='^' && LA20_6<='d')||(LA20_6>='f' && LA20_6<='z')||(LA20_6>='~' && LA20_6<='\uFFFF')) ) {s = 27;}\r
-\r
- else s = 31;\r
+ else s = 67;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 2 : \r
- int LA20_43 = input.LA(1);\r
+ int LA20_44 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA20_43>='\u0000' && LA20_43<='\b')||(LA20_43>='\u000B' && LA20_43<='\f')||(LA20_43>='\u000E' && LA20_43<='\u001F')||LA20_43=='!'||LA20_43=='$'||LA20_43=='&'||LA20_43=='+'||(LA20_43>='.' && LA20_43<='9')||LA20_43==';'||LA20_43=='='||LA20_43=='?'||(LA20_43>='A' && LA20_43<='Z')||(LA20_43>='^' && LA20_43<='z')||(LA20_43>='~' && LA20_43<='\uFFFF')) ) {s = 27;}\r
+ if ( (LA20_44=='.') ) {s = 41;}\r
+\r
+ else if ( (LA20_44=='/') ) {s = 42;}\r
+\r
+ else if ( ((LA20_44>='\u0000' && LA20_44<='\b')||(LA20_44>='\u000B' && LA20_44<='\f')||(LA20_44>='\u000E' && LA20_44<='\u001F')||LA20_44=='!'||LA20_44=='$'||LA20_44=='&'||LA20_44=='+'||(LA20_44>='0' && LA20_44<='9')||LA20_44==';'||LA20_44=='='||LA20_44=='?'||(LA20_44>='A' && LA20_44<='Z')||(LA20_44>='^' && LA20_44<='z')||(LA20_44>='~' && LA20_44<='\uFFFF')) ) {s = 44;}\r
\r
- else s = 58;\r
+ else if ( ((LA20_44>='\t' && LA20_44<='\n')||LA20_44=='\r'||LA20_44==' '||(LA20_44>='\"' && LA20_44<='#')||LA20_44=='%'||(LA20_44>='\'' && LA20_44<='*')||(LA20_44>=',' && LA20_44<='-')||LA20_44==':'||LA20_44=='<'||LA20_44=='>'||LA20_44=='@'||(LA20_44>='[' && LA20_44<=']')||(LA20_44>='{' && LA20_44<='}')) ) {s = 43;}\r
+\r
+ else s = 23;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 3 : \r
- int LA20_65 = input.LA(1);\r
+ int LA20_64 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA20_65>='\u0000' && LA20_65<='\b')||(LA20_65>='\u000B' && LA20_65<='\f')||(LA20_65>='\u000E' && LA20_65<='\u001F')||LA20_65=='!'||LA20_65=='$'||LA20_65=='&'||LA20_65=='+'||(LA20_65>='.' && LA20_65<='9')||LA20_65==';'||LA20_65=='='||LA20_65=='?'||(LA20_65>='A' && LA20_65<='Z')||(LA20_65>='^' && LA20_65<='z')||(LA20_65>='~' && LA20_65<='\uFFFF')) ) {s = 27;}\r
+ if ( (LA20_64=='/') ) {s = 56;}\r
+\r
+ else if ( (LA20_64=='.') ) {s = 41;}\r
+\r
+ else if ( ((LA20_64>='A' && LA20_64<='Z')||(LA20_64>='a' && LA20_64<='z')) ) {s = 64;}\r
\r
- else s = 71;\r
+ else if ( ((LA20_64>='\u0000' && LA20_64<='\b')||(LA20_64>='\u000B' && LA20_64<='\f')||(LA20_64>='\u000E' && LA20_64<='\u001F')||LA20_64=='!'||LA20_64=='$'||LA20_64=='&'||LA20_64=='+'||(LA20_64>='0' && LA20_64<='9')||LA20_64==';'||LA20_64=='='||LA20_64=='?'||(LA20_64>='^' && LA20_64<='`')||(LA20_64>='~' && LA20_64<='\uFFFF')) ) {s = 57;}\r
+\r
+ else s = 43;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 4 : \r
- int LA20_67 = input.LA(1);\r
+ int LA20_12 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA20_67>='\u0000' && LA20_67<='\b')||(LA20_67>='\u000B' && LA20_67<='\f')||(LA20_67>='\u000E' && LA20_67<='\u001F')||LA20_67=='!'||LA20_67=='$'||LA20_67=='&'||LA20_67=='+'||(LA20_67>='.' && LA20_67<='9')||LA20_67==';'||LA20_67=='='||LA20_67=='?'||(LA20_67>='A' && LA20_67<='Z')||(LA20_67>='^' && LA20_67<='z')||(LA20_67>='~' && LA20_67<='\uFFFF')) ) {s = 27;}\r
+ if ( ((LA20_12>='\u0000' && LA20_12<='\b')||(LA20_12>='\u000B' && LA20_12<='\f')||(LA20_12>='\u000E' && LA20_12<='\u001F')||LA20_12=='!'||LA20_12=='$'||LA20_12=='&'||LA20_12=='+'||(LA20_12>='.' && LA20_12<='9')||LA20_12==';'||LA20_12=='='||LA20_12=='?'||(LA20_12>='A' && LA20_12<='Z')||(LA20_12>='^' && LA20_12<='z')||(LA20_12>='~' && LA20_12<='\uFFFF')) ) {s = 23;}\r
\r
- else s = 73;\r
+ else s = 38;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 5 : \r
- int LA20_60 = input.LA(1);\r
+ int LA20_41 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA20_60>='A' && LA20_60<='Z')||(LA20_60>='a' && LA20_60<='z')) ) {s = 68;}\r
-\r
- else if ( (LA20_60=='/') ) {s = 60;}\r
+ if ( (LA20_41=='/') ) {s = 56;}\r
\r
- else if ( (LA20_60=='.') ) {s = 45;}\r
+ else if ( ((LA20_41>='\u0000' && LA20_41<='\b')||(LA20_41>='\u000B' && LA20_41<='\f')||(LA20_41>='\u000E' && LA20_41<='\u001F')||LA20_41=='!'||LA20_41=='$'||LA20_41=='&'||LA20_41=='+'||(LA20_41>='0' && LA20_41<='9')||LA20_41==';'||LA20_41=='='||LA20_41=='?'||(LA20_41>='A' && LA20_41<='Z')||(LA20_41>='^' && LA20_41<='z')||(LA20_41>='~' && LA20_41<='\uFFFF')) ) {s = 57;}\r
\r
- else if ( ((LA20_60>='\u0000' && LA20_60<='\b')||(LA20_60>='\u000B' && LA20_60<='\f')||(LA20_60>='\u000E' && LA20_60<='\u001F')||LA20_60=='!'||LA20_60=='$'||LA20_60=='&'||LA20_60=='+'||(LA20_60>='0' && LA20_60<='9')||LA20_60==';'||LA20_60=='='||LA20_60=='?'||(LA20_60>='^' && LA20_60<='`')||(LA20_60>='~' && LA20_60<='\uFFFF')) ) {s = 61;}\r
-\r
- else s = 47;\r
+ else if ( ((LA20_41>='\t' && LA20_41<='\n')||LA20_41=='\r'||LA20_41==' '||(LA20_41>='\"' && LA20_41<='#')||LA20_41=='%'||(LA20_41>='\'' && LA20_41<='*')||(LA20_41>=',' && LA20_41<='.')||LA20_41==':'||LA20_41=='<'||LA20_41=='>'||LA20_41=='@'||(LA20_41>='[' && LA20_41<=']')||(LA20_41>='{' && LA20_41<='}')) ) {s = 43;}\r
\r
if ( s>=0 ) return s;\r
break;\r
case 6 : \r
- int LA20_32 = input.LA(1);\r
+ int LA20_50 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA20_32>='0' && LA20_32<='9')) ) {s = 52;}\r
+ if ( ((LA20_50>='\u0000' && LA20_50<='\b')||(LA20_50>='\u000B' && LA20_50<='\f')||(LA20_50>='\u000E' && LA20_50<='\u001F')||LA20_50=='!'||LA20_50=='$'||LA20_50=='&'||LA20_50=='+'||(LA20_50>='.' && LA20_50<='/')||LA20_50==';'||LA20_50=='='||LA20_50=='?'||(LA20_50>='A' && LA20_50<='Z')||(LA20_50>='^' && LA20_50<='z')||(LA20_50>='~' && LA20_50<='\uFFFF')) ) {s = 23;}\r
+\r
+ else if ( ((LA20_50>='0' && LA20_50<='9')) ) {s = 50;}\r
\r
- else if ( ((LA20_32>='\u0000' && LA20_32<='\b')||(LA20_32>='\u000B' && LA20_32<='\f')||(LA20_32>='\u000E' && LA20_32<='\u001F')||LA20_32=='!'||LA20_32=='$'||LA20_32=='&'||LA20_32=='+'||LA20_32=='/'||LA20_32==';'||LA20_32=='='||LA20_32=='?'||(LA20_32>='A' && LA20_32<='Z')||(LA20_32>='^' && LA20_32<='z')||(LA20_32>='~' && LA20_32<='\uFFFF')) ) {s = 27;}\r
+ else s = 46;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 7 : \r
- int LA20_72 = input.LA(1);\r
+ int LA20_30 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA20_72>='\u0000' && LA20_72<='\b')||(LA20_72>='\u000B' && LA20_72<='\f')||(LA20_72>='\u000E' && LA20_72<='\u001F')||LA20_72=='!'||LA20_72=='$'||LA20_72=='&'||LA20_72=='+'||(LA20_72>='.' && LA20_72<='9')||LA20_72==';'||LA20_72=='='||LA20_72=='?'||(LA20_72>='A' && LA20_72<='Z')||(LA20_72>='^' && LA20_72<='z')||(LA20_72>='~' && LA20_72<='\uFFFF')) ) {s = 27;}\r
+ if ( (LA20_30=='.') ) {s = 28;}\r
\r
- else s = 74;\r
+ else if ( ((LA20_30>='0' && LA20_30<='9')) ) {s = 30;}\r
+\r
+ else if ( (LA20_30=='E'||LA20_30=='e') ) {s = 29;}\r
+\r
+ else if ( ((LA20_30>='\u0000' && LA20_30<='\b')||(LA20_30>='\u000B' && LA20_30<='\f')||(LA20_30>='\u000E' && LA20_30<='\u001F')||LA20_30=='!'||LA20_30=='$'||LA20_30=='&'||LA20_30=='+'||LA20_30=='/'||LA20_30==';'||LA20_30=='='||LA20_30=='?'||(LA20_30>='A' && LA20_30<='D')||(LA20_30>='F' && LA20_30<='Z')||(LA20_30>='^' && LA20_30<='d')||(LA20_30>='f' && LA20_30<='z')||(LA20_30>='~' && LA20_30<='\uFFFF')) ) {s = 23;}\r
+\r
+ else s = 27;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 8 : \r
- int LA20_54 = input.LA(1);\r
+ int LA20_56 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA20_54>='0' && LA20_54<='9')) ) {s = 54;}\r
+ if ( (LA20_56=='/') ) {s = 56;}\r
+\r
+ else if ( (LA20_56=='.') ) {s = 41;}\r
+\r
+ else if ( ((LA20_56>='A' && LA20_56<='Z')||(LA20_56>='a' && LA20_56<='z')) ) {s = 64;}\r
\r
- else if ( ((LA20_54>='\u0000' && LA20_54<='\b')||(LA20_54>='\u000B' && LA20_54<='\f')||(LA20_54>='\u000E' && LA20_54<='\u001F')||LA20_54=='!'||LA20_54=='$'||LA20_54=='&'||LA20_54=='+'||(LA20_54>='.' && LA20_54<='/')||LA20_54==';'||LA20_54=='='||LA20_54=='?'||(LA20_54>='A' && LA20_54<='Z')||(LA20_54>='^' && LA20_54<='z')||(LA20_54>='~' && LA20_54<='\uFFFF')) ) {s = 27;}\r
+ else if ( ((LA20_56>='\u0000' && LA20_56<='\b')||(LA20_56>='\u000B' && LA20_56<='\f')||(LA20_56>='\u000E' && LA20_56<='\u001F')||LA20_56=='!'||LA20_56=='$'||LA20_56=='&'||LA20_56=='+'||(LA20_56>='0' && LA20_56<='9')||LA20_56==';'||LA20_56=='='||LA20_56=='?'||(LA20_56>='^' && LA20_56<='`')||(LA20_56>='~' && LA20_56<='\uFFFF')) ) {s = 57;}\r
\r
- else s = 50;\r
+ else s = 43;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 9 : \r
- int LA20_52 = input.LA(1);\r
+ int LA20_68 = input.LA(1);\r
\r
s = -1;\r
- if ( (LA20_52=='E'||LA20_52=='e') ) {s = 64;}\r
-\r
- else if ( ((LA20_52>='0' && LA20_52<='9')) ) {s = 52;}\r
-\r
- else if ( ((LA20_52>='\u0000' && LA20_52<='\b')||(LA20_52>='\u000B' && LA20_52<='\f')||(LA20_52>='\u000E' && LA20_52<='\u001F')||LA20_52=='!'||LA20_52=='$'||LA20_52=='&'||LA20_52=='+'||(LA20_52>='.' && LA20_52<='/')||LA20_52==';'||LA20_52=='='||LA20_52=='?'||(LA20_52>='A' && LA20_52<='D')||(LA20_52>='F' && LA20_52<='Z')||(LA20_52>='^' && LA20_52<='d')||(LA20_52>='f' && LA20_52<='z')||(LA20_52>='~' && LA20_52<='\uFFFF')) ) {s = 27;}\r
+ if ( ((LA20_68>='\u0000' && LA20_68<='\b')||(LA20_68>='\u000B' && LA20_68<='\f')||(LA20_68>='\u000E' && LA20_68<='\u001F')||LA20_68=='!'||LA20_68=='$'||LA20_68=='&'||LA20_68=='+'||(LA20_68>='.' && LA20_68<='9')||LA20_68==';'||LA20_68=='='||LA20_68=='?'||(LA20_68>='A' && LA20_68<='Z')||(LA20_68>='^' && LA20_68<='z')||(LA20_68>='~' && LA20_68<='\uFFFF')) ) {s = 23;}\r
\r
- else s = 50;\r
+ else s = 70;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 10 : \r
- int LA20_45 = input.LA(1);\r
+ int LA20_66 = input.LA(1);\r
\r
s = -1;\r
- if ( (LA20_45=='/') ) {s = 60;}\r
+ if ( ((LA20_66>='0' && LA20_66<='9')) ) {s = 66;}\r
\r
- else if ( ((LA20_45>='\u0000' && LA20_45<='\b')||(LA20_45>='\u000B' && LA20_45<='\f')||(LA20_45>='\u000E' && LA20_45<='\u001F')||LA20_45=='!'||LA20_45=='$'||LA20_45=='&'||LA20_45=='+'||(LA20_45>='0' && LA20_45<='9')||LA20_45==';'||LA20_45=='='||LA20_45=='?'||(LA20_45>='A' && LA20_45<='Z')||(LA20_45>='^' && LA20_45<='z')||(LA20_45>='~' && LA20_45<='\uFFFF')) ) {s = 61;}\r
+ else if ( ((LA20_66>='\u0000' && LA20_66<='\b')||(LA20_66>='\u000B' && LA20_66<='\f')||(LA20_66>='\u000E' && LA20_66<='\u001F')||LA20_66=='!'||LA20_66=='$'||LA20_66=='&'||LA20_66=='+'||(LA20_66>='.' && LA20_66<='/')||LA20_66==';'||LA20_66=='='||LA20_66=='?'||(LA20_66>='A' && LA20_66<='Z')||(LA20_66>='^' && LA20_66<='z')||(LA20_66>='~' && LA20_66<='\uFFFF')) ) {s = 23;}\r
\r
- else if ( ((LA20_45>='\t' && LA20_45<='\n')||LA20_45=='\r'||LA20_45==' '||(LA20_45>='\"' && LA20_45<='#')||LA20_45=='%'||(LA20_45>='\'' && LA20_45<='*')||(LA20_45>=',' && LA20_45<='.')||LA20_45==':'||LA20_45=='<'||LA20_45=='>'||LA20_45=='@'||(LA20_45>='[' && LA20_45<=']')||(LA20_45>='{' && LA20_45<='}')) ) {s = 47;}\r
+ else s = 46;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 11 : \r
- int LA20_68 = input.LA(1);\r
+ int LA20_63 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA20_68>='A' && LA20_68<='Z')||(LA20_68>='a' && LA20_68<='z')) ) {s = 68;}\r
-\r
- else if ( (LA20_68=='/') ) {s = 60;}\r
-\r
- else if ( (LA20_68=='.') ) {s = 45;}\r
+ if ( ((LA20_63>='\u0000' && LA20_63<='\b')||(LA20_63>='\u000B' && LA20_63<='\f')||(LA20_63>='\u000E' && LA20_63<='\u001F')||LA20_63=='!'||LA20_63=='$'||LA20_63=='&'||LA20_63=='+'||(LA20_63>='.' && LA20_63<='9')||LA20_63==';'||LA20_63=='='||LA20_63=='?'||(LA20_63>='A' && LA20_63<='Z')||(LA20_63>='^' && LA20_63<='z')||(LA20_63>='~' && LA20_63<='\uFFFF')) ) {s = 23;}\r
\r
- else if ( ((LA20_68>='\u0000' && LA20_68<='\b')||(LA20_68>='\u000B' && LA20_68<='\f')||(LA20_68>='\u000E' && LA20_68<='\u001F')||LA20_68=='!'||LA20_68=='$'||LA20_68=='&'||LA20_68=='+'||(LA20_68>='0' && LA20_68<='9')||LA20_68==';'||LA20_68=='='||LA20_68=='?'||(LA20_68>='^' && LA20_68<='`')||(LA20_68>='~' && LA20_68<='\uFFFF')) ) {s = 61;}\r
-\r
- else s = 47;\r
+ else s = 69;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 12 : \r
- int LA20_48 = input.LA(1);\r
+ int LA20_6 = input.LA(1);\r
\r
s = -1;\r
- if ( (LA20_48=='.') ) {s = 45;}\r
+ if ( (LA20_6=='.') ) {s = 28;}\r
\r
- else if ( (LA20_48=='/') ) {s = 46;}\r
+ else if ( ((LA20_6>='0' && LA20_6<='9')) ) {s = 30;}\r
\r
- else if ( ((LA20_48>='\u0000' && LA20_48<='\b')||(LA20_48>='\u000B' && LA20_48<='\f')||(LA20_48>='\u000E' && LA20_48<='\u001F')||LA20_48=='!'||LA20_48=='$'||LA20_48=='&'||LA20_48=='+'||(LA20_48>='0' && LA20_48<='9')||LA20_48==';'||LA20_48=='='||LA20_48=='?'||(LA20_48>='A' && LA20_48<='Z')||(LA20_48>='^' && LA20_48<='z')||(LA20_48>='~' && LA20_48<='\uFFFF')) ) {s = 48;}\r
+ else if ( (LA20_6=='E'||LA20_6=='e') ) {s = 29;}\r
\r
- else if ( ((LA20_48>='\t' && LA20_48<='\n')||LA20_48=='\r'||LA20_48==' '||(LA20_48>='\"' && LA20_48<='#')||LA20_48=='%'||(LA20_48>='\'' && LA20_48<='*')||(LA20_48>=',' && LA20_48<='-')||LA20_48==':'||LA20_48=='<'||LA20_48=='>'||LA20_48=='@'||(LA20_48>='[' && LA20_48<=']')||(LA20_48>='{' && LA20_48<='}')) ) {s = 47;}\r
+ else if ( ((LA20_6>='\u0000' && LA20_6<='\b')||(LA20_6>='\u000B' && LA20_6<='\f')||(LA20_6>='\u000E' && LA20_6<='\u001F')||LA20_6=='!'||LA20_6=='$'||LA20_6=='&'||LA20_6=='+'||LA20_6=='/'||LA20_6==';'||LA20_6=='='||LA20_6=='?'||(LA20_6>='A' && LA20_6<='D')||(LA20_6>='F' && LA20_6<='Z')||(LA20_6>='^' && LA20_6<='d')||(LA20_6>='f' && LA20_6<='z')||(LA20_6>='~' && LA20_6<='\uFFFF')) ) {s = 23;}\r
\r
else s = 27;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 13 : \r
- int LA20_70 = input.LA(1);\r
+ int LA20_57 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA20_70>='0' && LA20_70<='9')) ) {s = 70;}\r
+ if ( (LA20_57=='/') ) {s = 56;}\r
\r
- else if ( ((LA20_70>='\u0000' && LA20_70<='\b')||(LA20_70>='\u000B' && LA20_70<='\f')||(LA20_70>='\u000E' && LA20_70<='\u001F')||LA20_70=='!'||LA20_70=='$'||LA20_70=='&'||LA20_70=='+'||(LA20_70>='.' && LA20_70<='/')||LA20_70==';'||LA20_70=='='||LA20_70=='?'||(LA20_70>='A' && LA20_70<='Z')||(LA20_70>='^' && LA20_70<='z')||(LA20_70>='~' && LA20_70<='\uFFFF')) ) {s = 27;}\r
+ else if ( (LA20_57=='.') ) {s = 41;}\r
\r
- else s = 50;\r
+ else if ( ((LA20_57>='\u0000' && LA20_57<='\b')||(LA20_57>='\u000B' && LA20_57<='\f')||(LA20_57>='\u000E' && LA20_57<='\u001F')||LA20_57=='!'||LA20_57=='$'||LA20_57=='&'||LA20_57=='+'||(LA20_57>='0' && LA20_57<='9')||LA20_57==';'||LA20_57=='='||LA20_57=='?'||(LA20_57>='A' && LA20_57<='Z')||(LA20_57>='^' && LA20_57<='z')||(LA20_57>='~' && LA20_57<='\uFFFF')) ) {s = 57;}\r
+\r
+ else if ( ((LA20_57>='\t' && LA20_57<='\n')||LA20_57=='\r'||LA20_57==' '||(LA20_57>='\"' && LA20_57<='#')||LA20_57=='%'||(LA20_57>='\'' && LA20_57<='*')||(LA20_57>=',' && LA20_57<='-')||LA20_57==':'||LA20_57=='<'||LA20_57=='>'||LA20_57=='@'||(LA20_57>='[' && LA20_57<=']')||(LA20_57>='{' && LA20_57<='}')) ) {s = 43;}\r
+\r
+ else s = 23;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 14 : \r
- int LA20_49 = input.LA(1);\r
+ int LA20_42 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA20_49>='\u0000' && LA20_49<='\b')||(LA20_49>='\u000B' && LA20_49<='\f')||(LA20_49>='\u000E' && LA20_49<='\u001F')||LA20_49=='!'||LA20_49=='$'||LA20_49=='&'||LA20_49=='+'||(LA20_49>='.' && LA20_49<='9')||LA20_49==';'||LA20_49=='='||LA20_49=='?'||(LA20_49>='A' && LA20_49<='Z')||(LA20_49>='^' && LA20_49<='z')||(LA20_49>='~' && LA20_49<='\uFFFF')) ) {s = 27;}\r
+ if ( (LA20_42=='.') ) {s = 41;}\r
+\r
+ else if ( (LA20_42=='/') ) {s = 42;}\r
+\r
+ else if ( ((LA20_42>='A' && LA20_42<='Z')||(LA20_42>='a' && LA20_42<='z')) ) {s = 58;}\r
\r
- else s = 63;\r
+ else if ( ((LA20_42>='\u0000' && LA20_42<='\b')||(LA20_42>='\u000B' && LA20_42<='\f')||(LA20_42>='\u000E' && LA20_42<='\u001F')||LA20_42=='!'||LA20_42=='$'||LA20_42=='&'||LA20_42=='+'||(LA20_42>='0' && LA20_42<='9')||LA20_42==';'||LA20_42=='='||LA20_42=='?'||(LA20_42>='^' && LA20_42<='`')||(LA20_42>='~' && LA20_42<='\uFFFF')) ) {s = 44;}\r
+\r
+ else s = 43;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 15 : \r
- int LA20_44 = input.LA(1);\r
+ int LA20_45 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA20_44>='\u0000' && LA20_44<='\b')||(LA20_44>='\u000B' && LA20_44<='\f')||(LA20_44>='\u000E' && LA20_44<='\u001F')||LA20_44=='!'||LA20_44=='$'||LA20_44=='&'||LA20_44=='+'||(LA20_44>='.' && LA20_44<='9')||LA20_44==';'||LA20_44=='='||LA20_44=='?'||(LA20_44>='A' && LA20_44<='Z')||(LA20_44>='^' && LA20_44<='z')||(LA20_44>='~' && LA20_44<='\uFFFF')) ) {s = 27;}\r
+ if ( ((LA20_45>='\u0000' && LA20_45<='\b')||(LA20_45>='\u000B' && LA20_45<='\f')||(LA20_45>='\u000E' && LA20_45<='\u001F')||LA20_45=='!'||LA20_45=='$'||LA20_45=='&'||LA20_45=='+'||(LA20_45>='.' && LA20_45<='9')||LA20_45==';'||LA20_45=='='||LA20_45=='?'||(LA20_45>='A' && LA20_45<='Z')||(LA20_45>='^' && LA20_45<='z')||(LA20_45>='~' && LA20_45<='\uFFFF')) ) {s = 23;}\r
\r
else s = 59;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 16 : \r
- int LA20_5 = input.LA(1);\r
+ int LA20_0 = input.LA(1);\r
\r
s = -1;\r
- if ( (LA20_5=='.') ) {s = 32;}\r
+ if ( (LA20_0=='#') ) {s = 1;}\r
+\r
+ else if ( (LA20_0=='\n'||LA20_0=='\r') ) {s = 2;}\r
+\r
+ else if ( (LA20_0=='\"') ) {s = 3;}\r
+\r
+ else if ( (LA20_0=='-') ) {s = 4;}\r
+\r
+ else if ( (LA20_0=='0') ) {s = 5;}\r
+\r
+ else if ( ((LA20_0>='1' && LA20_0<='9')) ) {s = 6;}\r
\r
- else if ( (LA20_5=='E'||LA20_5=='e') ) {s = 33;}\r
+ else if ( (LA20_0=='t') ) {s = 7;}\r
+\r
+ else if ( (LA20_0=='f') ) {s = 8;}\r
+\r
+ else if ( (LA20_0=='n') ) {s = 9;}\r
+\r
+ else if ( (LA20_0=='<') ) {s = 10;}\r
+\r
+ else if ( (LA20_0=='>') ) {s = 11;}\r
+\r
+ else if ( (LA20_0=='=') ) {s = 12;}\r
+\r
+ else if ( (LA20_0=='!') ) {s = 13;}\r
+\r
+ else if ( (LA20_0=='~') ) {s = 14;}\r
+\r
+ else if ( (LA20_0=='/') ) {s = 15;}\r
+\r
+ else if ( (LA20_0=='.') ) {s = 16;}\r
+\r
+ else if ( (LA20_0==',') ) {s = 17;}\r
+\r
+ else if ( (LA20_0==':') ) {s = 18;}\r
\r
- else if ( ((LA20_5>='\u0000' && LA20_5<='\b')||(LA20_5>='\u000B' && LA20_5<='\f')||(LA20_5>='\u000E' && LA20_5<='\u001F')||LA20_5=='!'||LA20_5=='$'||LA20_5=='&'||LA20_5=='+'||(LA20_5>='/' && LA20_5<='9')||LA20_5==';'||LA20_5=='='||LA20_5=='?'||(LA20_5>='A' && LA20_5<='D')||(LA20_5>='F' && LA20_5<='Z')||(LA20_5>='^' && LA20_5<='d')||(LA20_5>='f' && LA20_5<='z')||(LA20_5>='~' && LA20_5<='\uFFFF')) ) {s = 27;}\r
+ else if ( (LA20_0=='a') ) {s = 19;}\r
\r
- else s = 31;\r
+ else if ( (LA20_0=='(') ) {s = 20;}\r
+\r
+ else if ( (LA20_0==')') ) {s = 21;}\r
+\r
+ else if ( (LA20_0=='*') ) {s = 22;}\r
+\r
+ else if ( ((LA20_0>='\u0000' && LA20_0<='\b')||(LA20_0>='\u000B' && LA20_0<='\f')||(LA20_0>='\u000E' && LA20_0<='\u001F')||LA20_0=='$'||LA20_0=='&'||LA20_0=='+'||LA20_0==';'||LA20_0=='?'||(LA20_0>='A' && LA20_0<='Z')||(LA20_0>='^' && LA20_0<='`')||(LA20_0>='b' && LA20_0<='e')||(LA20_0>='g' && LA20_0<='m')||(LA20_0>='o' && LA20_0<='s')||(LA20_0>='u' && LA20_0<='z')||(LA20_0>='\u007F' && LA20_0<='\uFFFF')) ) {s = 23;}\r
+\r
+ else if ( (LA20_0=='\t'||LA20_0==' ') ) {s = 24;}\r
\r
if ( s>=0 ) return s;\r
break;\r
case 17 : \r
- int LA20_16 = input.LA(1);\r
+ int LA20_28 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA20_16>='\u0000' && LA20_16<='\b')||(LA20_16>='\u000B' && LA20_16<='\f')||(LA20_16>='\u000E' && LA20_16<='\u001F')||LA20_16=='!'||LA20_16=='$'||LA20_16=='&'||LA20_16=='+'||(LA20_16>='.' && LA20_16<='9')||LA20_16==';'||LA20_16=='='||LA20_16=='?'||(LA20_16>='A' && LA20_16<='Z')||(LA20_16>='^' && LA20_16<='z')||(LA20_16>='~' && LA20_16<='\uFFFF')) ) {s = 27;}\r
+ if ( ((LA20_28>='0' && LA20_28<='9')) ) {s = 48;}\r
\r
- else s = 42;\r
+ else if ( ((LA20_28>='\u0000' && LA20_28<='\b')||(LA20_28>='\u000B' && LA20_28<='\f')||(LA20_28>='\u000E' && LA20_28<='\u001F')||LA20_28=='!'||LA20_28=='$'||LA20_28=='&'||LA20_28=='+'||LA20_28=='/'||LA20_28==';'||LA20_28=='='||LA20_28=='?'||(LA20_28>='A' && LA20_28<='Z')||(LA20_28>='^' && LA20_28<='z')||(LA20_28>='~' && LA20_28<='\uFFFF')) ) {s = 23;}\r
\r
if ( s>=0 ) return s;\r
break;\r
case 18 : \r
- int LA20_19 = input.LA(1);\r
+ int LA20_15 = input.LA(1);\r
\r
s = -1;\r
- if ( (LA20_19=='.') ) {s = 45;}\r
+ if ( (LA20_15=='.') ) {s = 41;}\r
\r
- else if ( (LA20_19=='/') ) {s = 46;}\r
+ else if ( (LA20_15=='/') ) {s = 42;}\r
\r
- else if ( ((LA20_19>='\t' && LA20_19<='\n')||LA20_19=='\r'||LA20_19==' '||(LA20_19>='\"' && LA20_19<='#')||LA20_19=='%'||(LA20_19>='\'' && LA20_19<='*')||(LA20_19>=',' && LA20_19<='-')||LA20_19==':'||LA20_19=='<'||LA20_19=='>'||LA20_19=='@'||(LA20_19>='[' && LA20_19<=']')||(LA20_19>='{' && LA20_19<='}')) ) {s = 47;}\r
+ else if ( ((LA20_15>='\t' && LA20_15<='\n')||LA20_15=='\r'||LA20_15==' '||(LA20_15>='\"' && LA20_15<='#')||LA20_15=='%'||(LA20_15>='\'' && LA20_15<='*')||(LA20_15>=',' && LA20_15<='-')||LA20_15==':'||LA20_15=='<'||LA20_15=='>'||LA20_15=='@'||(LA20_15>='[' && LA20_15<=']')||(LA20_15>='{' && LA20_15<='}')) ) {s = 43;}\r
\r
- else if ( ((LA20_19>='\u0000' && LA20_19<='\b')||(LA20_19>='\u000B' && LA20_19<='\f')||(LA20_19>='\u000E' && LA20_19<='\u001F')||LA20_19=='!'||LA20_19=='$'||LA20_19=='&'||LA20_19=='+'||(LA20_19>='0' && LA20_19<='9')||LA20_19==';'||LA20_19=='='||LA20_19=='?'||(LA20_19>='A' && LA20_19<='Z')||(LA20_19>='^' && LA20_19<='z')||(LA20_19>='~' && LA20_19<='\uFFFF')) ) {s = 48;}\r
+ else if ( ((LA20_15>='\u0000' && LA20_15<='\b')||(LA20_15>='\u000B' && LA20_15<='\f')||(LA20_15>='\u000E' && LA20_15<='\u001F')||LA20_15=='!'||LA20_15=='$'||LA20_15=='&'||LA20_15=='+'||(LA20_15>='0' && LA20_15<='9')||LA20_15==';'||LA20_15=='='||LA20_15=='?'||(LA20_15>='A' && LA20_15<='Z')||(LA20_15>='^' && LA20_15<='z')||(LA20_15>='~' && LA20_15<='\uFFFF')) ) {s = 44;}\r
\r
- else s = 27;\r
+ else s = 23;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 19 : \r
- int LA20_62 = input.LA(1);\r
+ int LA20_40 = input.LA(1);\r
\r
s = -1;\r
- if ( (LA20_62=='.') ) {s = 45;}\r
-\r
- else if ( ((LA20_62>='A' && LA20_62<='Z')||(LA20_62>='a' && LA20_62<='z')) ) {s = 62;}\r
-\r
- else if ( (LA20_62=='/') ) {s = 46;}\r
+ if ( ((LA20_40>='\u0000' && LA20_40<='\b')||(LA20_40>='\u000B' && LA20_40<='\f')||(LA20_40>='\u000E' && LA20_40<='\u001F')||LA20_40=='!'||LA20_40=='$'||LA20_40=='&'||LA20_40=='+'||(LA20_40>='.' && LA20_40<='9')||LA20_40==';'||LA20_40=='='||LA20_40=='?'||(LA20_40>='A' && LA20_40<='Z')||(LA20_40>='^' && LA20_40<='z')||(LA20_40>='~' && LA20_40<='\uFFFF')) ) {s = 23;}\r
\r
- else if ( ((LA20_62>='\u0000' && LA20_62<='\b')||(LA20_62>='\u000B' && LA20_62<='\f')||(LA20_62>='\u000E' && LA20_62<='\u001F')||LA20_62=='!'||LA20_62=='$'||LA20_62=='&'||LA20_62=='+'||(LA20_62>='0' && LA20_62<='9')||LA20_62==';'||LA20_62=='='||LA20_62=='?'||(LA20_62>='^' && LA20_62<='`')||(LA20_62>='~' && LA20_62<='\uFFFF')) ) {s = 48;}\r
-\r
- else s = 47;\r
+ else s = 55;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 20 : \r
- int LA20_46 = input.LA(1);\r
+ int LA20_58 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA20_46>='A' && LA20_46<='Z')||(LA20_46>='a' && LA20_46<='z')) ) {s = 62;}\r
+ if ( (LA20_58=='.') ) {s = 41;}\r
\r
- else if ( (LA20_46=='.') ) {s = 45;}\r
+ else if ( (LA20_58=='/') ) {s = 42;}\r
\r
- else if ( (LA20_46=='/') ) {s = 46;}\r
+ else if ( ((LA20_58>='A' && LA20_58<='Z')||(LA20_58>='a' && LA20_58<='z')) ) {s = 58;}\r
\r
- else if ( ((LA20_46>='\u0000' && LA20_46<='\b')||(LA20_46>='\u000B' && LA20_46<='\f')||(LA20_46>='\u000E' && LA20_46<='\u001F')||LA20_46=='!'||LA20_46=='$'||LA20_46=='&'||LA20_46=='+'||(LA20_46>='0' && LA20_46<='9')||LA20_46==';'||LA20_46=='='||LA20_46=='?'||(LA20_46>='^' && LA20_46<='`')||(LA20_46>='~' && LA20_46<='\uFFFF')) ) {s = 48;}\r
+ else if ( ((LA20_58>='\u0000' && LA20_58<='\b')||(LA20_58>='\u000B' && LA20_58<='\f')||(LA20_58>='\u000E' && LA20_58<='\u001F')||LA20_58=='!'||LA20_58=='$'||LA20_58=='&'||LA20_58=='+'||(LA20_58>='0' && LA20_58<='9')||LA20_58==';'||LA20_58=='='||LA20_58=='?'||(LA20_58>='^' && LA20_58<='`')||(LA20_58>='~' && LA20_58<='\uFFFF')) ) {s = 44;}\r
\r
- else s = 47;\r
+ else s = 43;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 21 : \r
- int LA20_34 = input.LA(1);\r
+ int LA20_48 = input.LA(1);\r
\r
s = -1;\r
- if ( ((LA20_34>='0' && LA20_34<='9')) ) {s = 34;}\r
-\r
- else if ( (LA20_34=='.') ) {s = 32;}\r
+ if ( (LA20_48=='E'||LA20_48=='e') ) {s = 60;}\r
\r
- else if ( (LA20_34=='E'||LA20_34=='e') ) {s = 33;}\r
+ else if ( ((LA20_48>='0' && LA20_48<='9')) ) {s = 48;}\r
\r
- else if ( ((LA20_34>='\u0000' && LA20_34<='\b')||(LA20_34>='\u000B' && LA20_34<='\f')||(LA20_34>='\u000E' && LA20_34<='\u001F')||LA20_34=='!'||LA20_34=='$'||LA20_34=='&'||LA20_34=='+'||LA20_34=='/'||LA20_34==';'||LA20_34=='='||LA20_34=='?'||(LA20_34>='A' && LA20_34<='D')||(LA20_34>='F' && LA20_34<='Z')||(LA20_34>='^' && LA20_34<='d')||(LA20_34>='f' && LA20_34<='z')||(LA20_34>='~' && LA20_34<='\uFFFF')) ) {s = 27;}\r
+ else if ( ((LA20_48>='\u0000' && LA20_48<='\b')||(LA20_48>='\u000B' && LA20_48<='\f')||(LA20_48>='\u000E' && LA20_48<='\u001F')||LA20_48=='!'||LA20_48=='$'||LA20_48=='&'||LA20_48=='+'||(LA20_48>='.' && LA20_48<='/')||LA20_48==';'||LA20_48=='='||LA20_48=='?'||(LA20_48>='A' && LA20_48<='D')||(LA20_48>='F' && LA20_48<='Z')||(LA20_48>='^' && LA20_48<='d')||(LA20_48>='f' && LA20_48<='z')||(LA20_48>='~' && LA20_48<='\uFFFF')) ) {s = 23;}\r
\r
- else s = 31;\r
+ else s = 46;\r
\r
if ( s>=0 ) return s;\r
break;\r
case 22 : \r
- int LA20_61 = input.LA(1);\r
+ int LA20_5 = input.LA(1);\r
\r
s = -1;\r
- if ( (LA20_61=='/') ) {s = 60;}\r
-\r
- else if ( (LA20_61=='.') ) {s = 45;}\r
+ if ( (LA20_5=='.') ) {s = 28;}\r
\r
- else if ( ((LA20_61>='\u0000' && LA20_61<='\b')||(LA20_61>='\u000B' && LA20_61<='\f')||(LA20_61>='\u000E' && LA20_61<='\u001F')||LA20_61=='!'||LA20_61=='$'||LA20_61=='&'||LA20_61=='+'||(LA20_61>='0' && LA20_61<='9')||LA20_61==';'||LA20_61=='='||LA20_61=='?'||(LA20_61>='A' && LA20_61<='Z')||(LA20_61>='^' && LA20_61<='z')||(LA20_61>='~' && LA20_61<='\uFFFF')) ) {s = 61;}\r
+ else if ( (LA20_5=='E'||LA20_5=='e') ) {s = 29;}\r
\r
- else if ( ((LA20_61>='\t' && LA20_61<='\n')||LA20_61=='\r'||LA20_61==' '||(LA20_61>='\"' && LA20_61<='#')||LA20_61=='%'||(LA20_61>='\'' && LA20_61<='*')||(LA20_61>=',' && LA20_61<='-')||LA20_61==':'||LA20_61=='<'||LA20_61=='>'||LA20_61=='@'||(LA20_61>='[' && LA20_61<=']')||(LA20_61>='{' && LA20_61<='}')) ) {s = 47;}\r
+ else if ( ((LA20_5>='\u0000' && LA20_5<='\b')||(LA20_5>='\u000B' && LA20_5<='\f')||(LA20_5>='\u000E' && LA20_5<='\u001F')||LA20_5=='!'||LA20_5=='$'||LA20_5=='&'||LA20_5=='+'||(LA20_5>='/' && LA20_5<='9')||LA20_5==';'||LA20_5=='='||LA20_5=='?'||(LA20_5>='A' && LA20_5<='D')||(LA20_5>='F' && LA20_5<='Z')||(LA20_5>='^' && LA20_5<='d')||(LA20_5>='f' && LA20_5<='z')||(LA20_5>='~' && LA20_5<='\uFFFF')) ) {s = 23;}\r
\r
else s = 27;\r
\r
-// $ANTLR 3.1.3 Mar 17, 2009 19:23:44 LensQuery.g 2009-09-10 16:56:16\r
+// $ANTLR 3.1.3 Mar 17, 2009 19:23:44 LensQuery.g 2009-09-29 14:01:34\r
\r
/*--------------------------------------------------------------------------\r
* Copyright 2009 Taro L. Saito\r
\r
public class LensQueryParser extends Parser {\r
public static final String[] tokenNames = new String[] {\r
- "<invalid>", "<EOR>", "<DOWN>", "<UP>", "QUERY", "RELATION", "COMPARE", "OPERATOR", "OPERAND", "PATTERNMATCH", "NODE", "ALIAS", "NODEVALUE", "NAME", "VALUE", "INDEX", "LineBreakChar", "LineComment", "LineBreak", "Digit", "Letter", "HexDigit", "UnicodeChar", "EscapeSequence", "StringChar", "StringChar_s", "String", "Integer", "Frac", "Exp", "Double", "True", "False", "Null", "LBrace", "RBrace", "LBracket", "RBracket", "Lt", "Gt", "Leq", "Geq", "Eq", "Neq", "Match", "Regex", "Dot", "Comma", "Colon", "As", "LParen", "RParen", "Star", "UnsafeUnicodeChar", "SafeFirstLetter", "SafeLetter", "WhiteSpace", "QNameChar", "QName", "WhiteSpaces"\r
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "QUERY", "RELATION", "COMPARE", "OPERATOR", "OPERAND", "PATTERNMATCH", "NODE", "ALIAS", "NODEVALUE", "NAME", "VALUE", "INDEX", "LineBreakChar", "LineComment", "LineBreak", "Digit", "Letter", "HexDigit", "UnicodeChar", "EscapeSequence", "StringChar", "StringChar_s", "String", "Integer", "Frac", "Exp", "Double", "True", "False", "Null", "Lt", "Gt", "Leq", "Geq", "Eq", "Neq", "Match", "Regex", "Dot", "Comma", "Colon", "As", "LParen", "RParen", "Star", "UnsafeUnicodeChar", "SafeFirstLetter", "SafeLetter", "WhiteSpace", "QNameChar", "QName", "WhiteSpaces"\r
};\r
public static final int INDEX=15;\r
public static final int PATTERNMATCH=9;\r
- public static final int Match=44;\r
- public static final int RBrace=35;\r
- public static final int Regex=45;\r
- public static final int LBracket=36;\r
+ public static final int Match=40;\r
+ public static final int Regex=41;\r
public static final int Digit=19;\r
public static final int Frac=28;\r
public static final int HexDigit=21;\r
public static final int ALIAS=11;\r
public static final int VALUE=14;\r
public static final int Letter=20;\r
- public static final int Comma=47;\r
- public static final int Dot=46;\r
+ public static final int Comma=43;\r
+ public static final int Dot=42;\r
public static final int EscapeSequence=23;\r
public static final int Integer=27;\r
- public static final int WhiteSpace=56;\r
+ public static final int WhiteSpace=52;\r
public static final int OPERATOR=7;\r
public static final int False=32;\r
- public static final int Colon=48;\r
+ public static final int Colon=44;\r
public static final int LineComment=17;\r
public static final int NODEVALUE=12;\r
- public static final int As=49;\r
- public static final int SafeFirstLetter=54;\r
+ public static final int As=45;\r
+ public static final int SafeFirstLetter=50;\r
public static final int Null=33;\r
- public static final int Star=52;\r
- public static final int Eq=42;\r
+ public static final int Star=48;\r
+ public static final int Eq=38;\r
public static final int Exp=29;\r
- public static final int QNameChar=57;\r
+ public static final int QNameChar=53;\r
public static final int RELATION=5;\r
- public static final int Gt=39;\r
- public static final int RParen=51;\r
+ public static final int Gt=35;\r
+ public static final int RParen=47;\r
public static final int UnicodeChar=22;\r
public static final int StringChar=24;\r
public static final int True=31;\r
public static final int OPERAND=8;\r
public static final int LineBreak=18;\r
- public static final int LParen=50;\r
+ public static final int LParen=46;\r
public static final int String=26;\r
- public static final int SafeLetter=55;\r
+ public static final int SafeLetter=51;\r
public static final int LineBreakChar=16;\r
public static final int COMPARE=6;\r
- public static final int QName=58;\r
+ public static final int QName=54;\r
public static final int EOF=-1;\r
- public static final int Geq=41;\r
+ public static final int Geq=37;\r
public static final int NODE=10;\r
public static final int StringChar_s=25;\r
- public static final int Neq=43;\r
- public static final int UnsafeUnicodeChar=53;\r
+ public static final int Neq=39;\r
+ public static final int UnsafeUnicodeChar=49;\r
public static final int Double=30;\r
- public static final int LBrace=34;\r
- public static final int RBracket=37;\r
- public static final int Lt=38;\r
+ public static final int Lt=34;\r
public static final int NAME=13;\r
- public static final int Leq=40;\r
- public static final int WhiteSpaces=59;\r
+ public static final int Leq=36;\r
+ public static final int WhiteSpaces=55;\r
\r
// delegates\r
// delegators\r
};\r
\r
// $ANTLR start "expr"\r
- // LensQuery.g:191:1: expr : relation ;\r
+ // LensQuery.g:188:1: expr : relation ;\r
public final LensQueryParser.expr_return expr() throws RecognitionException {\r
LensQueryParser.expr_return retval = new LensQueryParser.expr_return();\r
retval.start = input.LT(1);\r
\r
\r
try {\r
- // LensQuery.g:191:5: ( relation )\r
- // LensQuery.g:192:3: relation\r
+ // LensQuery.g:188:5: ( relation )\r
+ // LensQuery.g:189:3: relation\r
{\r
root_0 = (Object)adaptor.nil();\r
\r
- pushFollow(FOLLOW_relation_in_expr806);\r
+ pushFollow(FOLLOW_relation_in_expr779);\r
relation1=relation();\r
\r
state._fsp--;\r
};\r
\r
// $ANTLR start "relation"\r
- // LensQuery.g:195:1: relation : relation_i -> ^( RELATION relation_i INDEX[currentIndex.toString()] ) ;\r
+ // LensQuery.g:192:1: relation : relation_i -> ^( RELATION relation_i INDEX[currentIndex.toString()] ) ;\r
public final LensQueryParser.relation_return relation() throws RecognitionException {\r
relation_stack.push(new relation_scope());\r
LensQueryParser.relation_return retval = new LensQueryParser.relation_return();\r
currentIndex = new TupleIndex(currentIndex, 1); \r
\r
try {\r
- // LensQuery.g:213:4: ( relation_i -> ^( RELATION relation_i INDEX[currentIndex.toString()] ) )\r
- // LensQuery.g:213:6: relation_i\r
+ // LensQuery.g:210:4: ( relation_i -> ^( RELATION relation_i INDEX[currentIndex.toString()] ) )\r
+ // LensQuery.g:210:6: relation_i\r
{\r
- pushFollow(FOLLOW_relation_i_in_relation840);\r
+ pushFollow(FOLLOW_relation_i_in_relation813);\r
relation_i2=relation_i();\r
\r
state._fsp--;\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 213:17: -> ^( RELATION relation_i INDEX[currentIndex.toString()] )\r
+ // 210:17: -> ^( RELATION relation_i INDEX[currentIndex.toString()] )\r
{\r
- // LensQuery.g:213:20: ^( RELATION relation_i INDEX[currentIndex.toString()] )\r
+ // LensQuery.g:210:20: ^( RELATION relation_i INDEX[currentIndex.toString()] )\r
{\r
Object root_1 = (Object)adaptor.nil();\r
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(RELATION, "RELATION"), root_1);\r
};\r
\r
// $ANTLR start "relation_i"\r
- // LensQuery.g:216:1: relation_i : nodeName ( alias )? LParen nodeItem ( Comma nodeItem )* RParen ;\r
+ // LensQuery.g:213:1: relation_i : nodeName ( alias )? LParen nodeItem ( Comma nodeItem )* RParen ;\r
public final LensQueryParser.relation_i_return relation_i() throws RecognitionException {\r
LensQueryParser.relation_i_return retval = new LensQueryParser.relation_i_return();\r
retval.start = input.LT(1);\r
Object RParen9_tree=null;\r
\r
try {\r
- // LensQuery.g:216:11: ( nodeName ( alias )? LParen nodeItem ( Comma nodeItem )* RParen )\r
- // LensQuery.g:216:13: nodeName ( alias )? LParen nodeItem ( Comma nodeItem )* RParen\r
+ // LensQuery.g:213:11: ( nodeName ( alias )? LParen nodeItem ( Comma nodeItem )* RParen )\r
+ // LensQuery.g:213:13: nodeName ( alias )? LParen nodeItem ( Comma nodeItem )* RParen\r
{\r
root_0 = (Object)adaptor.nil();\r
\r
- pushFollow(FOLLOW_nodeName_in_relation_i859);\r
+ pushFollow(FOLLOW_nodeName_in_relation_i832);\r
nodeName3=nodeName();\r
\r
state._fsp--;\r
\r
adaptor.addChild(root_0, nodeName3.getTree());\r
- // LensQuery.g:216:22: ( alias )?\r
+ // LensQuery.g:213:22: ( alias )?\r
int alt1=2;\r
int LA1_0 = input.LA(1);\r
\r
}\r
switch (alt1) {\r
case 1 :\r
- // LensQuery.g:216:22: alias\r
+ // LensQuery.g:213:22: alias\r
{\r
- pushFollow(FOLLOW_alias_in_relation_i861);\r
+ pushFollow(FOLLOW_alias_in_relation_i834);\r
alias4=alias();\r
\r
state._fsp--;\r
\r
}\r
\r
- LParen5=(Token)match(input,LParen,FOLLOW_LParen_in_relation_i864); \r
- pushFollow(FOLLOW_nodeItem_in_relation_i867);\r
+ LParen5=(Token)match(input,LParen,FOLLOW_LParen_in_relation_i837); \r
+ pushFollow(FOLLOW_nodeItem_in_relation_i840);\r
nodeItem6=nodeItem();\r
\r
state._fsp--;\r
\r
adaptor.addChild(root_0, nodeItem6.getTree());\r
- // LensQuery.g:216:46: ( Comma nodeItem )*\r
+ // LensQuery.g:213:46: ( Comma nodeItem )*\r
loop2:\r
do {\r
int alt2=2;\r
\r
switch (alt2) {\r
case 1 :\r
- // LensQuery.g:216:47: Comma nodeItem\r
+ // LensQuery.g:213:47: Comma nodeItem\r
{\r
- Comma7=(Token)match(input,Comma,FOLLOW_Comma_in_relation_i870); \r
- pushFollow(FOLLOW_nodeItem_in_relation_i873);\r
+ Comma7=(Token)match(input,Comma,FOLLOW_Comma_in_relation_i843); \r
+ pushFollow(FOLLOW_nodeItem_in_relation_i846);\r
nodeItem8=nodeItem();\r
\r
state._fsp--;\r
}\r
} while (true);\r
\r
- RParen9=(Token)match(input,RParen,FOLLOW_RParen_in_relation_i877); \r
+ RParen9=(Token)match(input,RParen,FOLLOW_RParen_in_relation_i850); \r
\r
}\r
\r
};\r
\r
// $ANTLR start "nodeName"\r
- // LensQuery.g:218:1: fragment nodeName : ( QName -> NAME[$QName.text] | String -> NAME[$String.text] );\r
+ // LensQuery.g:216:1: fragment nodeName : ( QName -> NAME[$QName.text] | String -> NAME[$String.text] );\r
public final LensQueryParser.nodeName_return nodeName() throws RecognitionException {\r
LensQueryParser.nodeName_return retval = new LensQueryParser.nodeName_return();\r
retval.start = input.LT(1);\r
RewriteRuleTokenStream stream_QName=new RewriteRuleTokenStream(adaptor,"token QName");\r
\r
try {\r
- // LensQuery.g:220:3: ( QName -> NAME[$QName.text] | String -> NAME[$String.text] )\r
+ // LensQuery.g:218:3: ( QName -> NAME[$QName.text] | String -> NAME[$String.text] )\r
int alt3=2;\r
int LA3_0 = input.LA(1);\r
\r
}\r
switch (alt3) {\r
case 1 :\r
- // LensQuery.g:220:5: QName\r
+ // LensQuery.g:218:5: QName\r
{\r
- QName10=(Token)match(input,QName,FOLLOW_QName_in_nodeName890); \r
+ QName10=(Token)match(input,QName,FOLLOW_QName_in_nodeName864); \r
stream_QName.add(QName10);\r
\r
\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 220:11: -> NAME[$QName.text]\r
+ // 218:11: -> NAME[$QName.text]\r
{\r
adaptor.addChild(root_0, (Object)adaptor.create(NAME, (QName10!=null?QName10.getText():null)));\r
\r
}\r
break;\r
case 2 :\r
- // LensQuery.g:221:5: String\r
+ // LensQuery.g:219:5: String\r
{\r
- String11=(Token)match(input,String,FOLLOW_String_in_nodeName901); \r
+ String11=(Token)match(input,String,FOLLOW_String_in_nodeName875); \r
stream_String.add(String11);\r
\r
\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 221:12: -> NAME[$String.text]\r
+ // 219:12: -> NAME[$String.text]\r
{\r
adaptor.addChild(root_0, (Object)adaptor.create(NAME, (String11!=null?String11.getText():null)));\r
\r
};\r
\r
// $ANTLR start "alias"\r
- // LensQuery.g:224:1: fragment alias : As QName -> ALIAS[$QName.text] ;\r
+ // LensQuery.g:222:1: fragment alias : As QName -> ALIAS[$QName.text] ;\r
public final LensQueryParser.alias_return alias() throws RecognitionException {\r
LensQueryParser.alias_return retval = new LensQueryParser.alias_return();\r
retval.start = input.LT(1);\r
RewriteRuleTokenStream stream_QName=new RewriteRuleTokenStream(adaptor,"token QName");\r
\r
try {\r
- // LensQuery.g:225:6: ( As QName -> ALIAS[$QName.text] )\r
- // LensQuery.g:225:8: As QName\r
+ // LensQuery.g:223:6: ( As QName -> ALIAS[$QName.text] )\r
+ // LensQuery.g:223:8: As QName\r
{\r
- As12=(Token)match(input,As,FOLLOW_As_in_alias918); \r
+ As12=(Token)match(input,As,FOLLOW_As_in_alias892); \r
stream_As.add(As12);\r
\r
- QName13=(Token)match(input,QName,FOLLOW_QName_in_alias920); \r
+ QName13=(Token)match(input,QName,FOLLOW_QName_in_alias894); \r
stream_QName.add(QName13);\r
\r
\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 225:17: -> ALIAS[$QName.text]\r
+ // 223:17: -> ALIAS[$QName.text]\r
{\r
adaptor.addChild(root_0, (Object)adaptor.create(ALIAS, (QName13!=null?QName13.getText():null)));\r
\r
};\r
\r
// $ANTLR start "nodeItem"\r
- // LensQuery.g:228:1: fragment nodeItem : ( nodeName ( alias )? ( nodeValue )? -> ^( NODE nodeName ( alias )? ( nodeValue )? INDEX[new TupleIndex(currentIndex, index).toString()] ) | relation );\r
+ // LensQuery.g:226:1: fragment nodeItem : ( nodeName ( alias )? ( nodeValue )? -> ^( NODE nodeName ( alias )? ( nodeValue )? INDEX[new TupleIndex(currentIndex, index).toString()] ) | relation );\r
public final LensQueryParser.nodeItem_return nodeItem() throws RecognitionException {\r
LensQueryParser.nodeItem_return retval = new LensQueryParser.nodeItem_return();\r
retval.start = input.LT(1);\r
int index = ((relation_scope)relation_stack.peek()).nodeItemIndex++;\r
\r
try {\r
- // LensQuery.g:233:3: ( nodeName ( alias )? ( nodeValue )? -> ^( NODE nodeName ( alias )? ( nodeValue )? INDEX[new TupleIndex(currentIndex, index).toString()] ) | relation )\r
+ // LensQuery.g:231:3: ( nodeName ( alias )? ( nodeValue )? -> ^( NODE nodeName ( alias )? ( nodeValue )? INDEX[new TupleIndex(currentIndex, index).toString()] ) | relation )\r
int alt6=2;\r
int LA6_0 = input.LA(1);\r
\r
}\r
switch (alt6) {\r
case 1 :\r
- // LensQuery.g:233:5: nodeName ( alias )? ( nodeValue )?\r
+ // LensQuery.g:231:5: nodeName ( alias )? ( nodeValue )?\r
{\r
- pushFollow(FOLLOW_nodeName_in_nodeItem945);\r
+ pushFollow(FOLLOW_nodeName_in_nodeItem919);\r
nodeName14=nodeName();\r
\r
state._fsp--;\r
\r
stream_nodeName.add(nodeName14.getTree());\r
- // LensQuery.g:233:14: ( alias )?\r
+ // LensQuery.g:231:14: ( alias )?\r
int alt4=2;\r
int LA4_0 = input.LA(1);\r
\r
}\r
switch (alt4) {\r
case 1 :\r
- // LensQuery.g:233:14: alias\r
+ // LensQuery.g:231:14: alias\r
{\r
- pushFollow(FOLLOW_alias_in_nodeItem947);\r
+ pushFollow(FOLLOW_alias_in_nodeItem921);\r
alias15=alias();\r
\r
state._fsp--;\r
\r
}\r
\r
- // LensQuery.g:233:21: ( nodeValue )?\r
+ // LensQuery.g:231:21: ( nodeValue )?\r
int alt5=2;\r
int LA5_0 = input.LA(1);\r
\r
}\r
switch (alt5) {\r
case 1 :\r
- // LensQuery.g:233:21: nodeValue\r
+ // LensQuery.g:231:21: nodeValue\r
{\r
- pushFollow(FOLLOW_nodeValue_in_nodeItem950);\r
+ pushFollow(FOLLOW_nodeValue_in_nodeItem924);\r
nodeValue16=nodeValue();\r
\r
state._fsp--;\r
\r
\r
// AST REWRITE\r
- // elements: nodeName, nodeValue, alias\r
+ // elements: nodeValue, nodeName, alias\r
// token labels: \r
// rule labels: retval\r
// token list labels: \r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 234:5: -> ^( NODE nodeName ( alias )? ( nodeValue )? INDEX[new TupleIndex(currentIndex, index).toString()] )\r
+ // 232:5: -> ^( NODE nodeName ( alias )? ( nodeValue )? INDEX[new TupleIndex(currentIndex, index).toString()] )\r
{\r
- // LensQuery.g:234:8: ^( NODE nodeName ( alias )? ( nodeValue )? INDEX[new TupleIndex(currentIndex, index).toString()] )\r
+ // LensQuery.g:232:8: ^( NODE nodeName ( alias )? ( nodeValue )? INDEX[new TupleIndex(currentIndex, index).toString()] )\r
{\r
Object root_1 = (Object)adaptor.nil();\r
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(NODE, "NODE"), root_1);\r
\r
adaptor.addChild(root_1, stream_nodeName.nextTree());\r
- // LensQuery.g:234:24: ( alias )?\r
+ // LensQuery.g:232:24: ( alias )?\r
if ( stream_alias.hasNext() ) {\r
adaptor.addChild(root_1, stream_alias.nextTree());\r
\r
}\r
stream_alias.reset();\r
- // LensQuery.g:234:31: ( nodeValue )?\r
+ // LensQuery.g:232:31: ( nodeValue )?\r
if ( stream_nodeValue.hasNext() ) {\r
adaptor.addChild(root_1, stream_nodeValue.nextTree());\r
\r
}\r
break;\r
case 2 :\r
- // LensQuery.g:235:5: relation\r
+ // LensQuery.g:233:5: relation\r
{\r
root_0 = (Object)adaptor.nil();\r
\r
- pushFollow(FOLLOW_relation_in_nodeItem979);\r
+ pushFollow(FOLLOW_relation_in_nodeItem953);\r
relation17=relation();\r
\r
state._fsp--;\r
};\r
\r
// $ANTLR start "value"\r
- // LensQuery.g:238:1: fragment value : ( String | Integer | Double | QName );\r
+ // LensQuery.g:236:1: fragment value : ( String | Integer | Double | QName );\r
public final LensQueryParser.value_return value() throws RecognitionException {\r
LensQueryParser.value_return retval = new LensQueryParser.value_return();\r
retval.start = input.LT(1);\r
Object set18_tree=null;\r
\r
try {\r
- // LensQuery.g:240:3: ( String | Integer | Double | QName )\r
+ // LensQuery.g:238:3: ( String | Integer | Double | QName )\r
// LensQuery.g:\r
{\r
root_0 = (Object)adaptor.nil();\r
};\r
\r
// $ANTLR start "nodeValue"\r
- // LensQuery.g:243:1: fragment nodeValue : ( Colon value -> NODEVALUE[$value.text] | nodeCmp );\r
+ // LensQuery.g:241:1: fragment nodeValue : ( Colon value -> NODEVALUE[$value.text] | nodeCmp );\r
public final LensQueryParser.nodeValue_return nodeValue() throws RecognitionException {\r
LensQueryParser.nodeValue_return retval = new LensQueryParser.nodeValue_return();\r
retval.start = input.LT(1);\r
RewriteRuleTokenStream stream_Colon=new RewriteRuleTokenStream(adaptor,"token Colon");\r
RewriteRuleSubtreeStream stream_value=new RewriteRuleSubtreeStream(adaptor,"rule value");\r
try {\r
- // LensQuery.g:245:3: ( Colon value -> NODEVALUE[$value.text] | nodeCmp )\r
+ // LensQuery.g:243:3: ( Colon value -> NODEVALUE[$value.text] | nodeCmp )\r
int alt7=2;\r
int LA7_0 = input.LA(1);\r
\r
}\r
switch (alt7) {\r
case 1 :\r
- // LensQuery.g:245:5: Colon value\r
+ // LensQuery.g:243:5: Colon value\r
{\r
- Colon19=(Token)match(input,Colon,FOLLOW_Colon_in_nodeValue1028); \r
+ Colon19=(Token)match(input,Colon,FOLLOW_Colon_in_nodeValue1002); \r
stream_Colon.add(Colon19);\r
\r
- pushFollow(FOLLOW_value_in_nodeValue1030);\r
+ pushFollow(FOLLOW_value_in_nodeValue1004);\r
value20=value();\r
\r
state._fsp--;\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 245:17: -> NODEVALUE[$value.text]\r
+ // 243:17: -> NODEVALUE[$value.text]\r
{\r
adaptor.addChild(root_0, (Object)adaptor.create(NODEVALUE, (value20!=null?input.toString(value20.start,value20.stop):null)));\r
\r
}\r
break;\r
case 2 :\r
- // LensQuery.g:246:5: nodeCmp\r
+ // LensQuery.g:244:5: nodeCmp\r
{\r
root_0 = (Object)adaptor.nil();\r
\r
- pushFollow(FOLLOW_nodeCmp_in_nodeValue1041);\r
+ pushFollow(FOLLOW_nodeCmp_in_nodeValue1015);\r
nodeCmp21=nodeCmp();\r
\r
state._fsp--;\r
};\r
\r
// $ANTLR start "nodeCmp"\r
- // LensQuery.g:249:1: fragment nodeCmp : ( cmpOp value -> ^( COMPARE OPERATOR[$cmpOp.text] OPERAND[$value.text] ) | Match Regex -> ^( PATTERNMATCH OPERAND[$Regex.text] ) );\r
+ // LensQuery.g:247:1: fragment nodeCmp : ( cmpOp value -> ^( COMPARE OPERATOR[$cmpOp.text] OPERAND[$value.text] ) | Match Regex -> ^( PATTERNMATCH OPERAND[$Regex.text] ) );\r
public final LensQueryParser.nodeCmp_return nodeCmp() throws RecognitionException {\r
LensQueryParser.nodeCmp_return retval = new LensQueryParser.nodeCmp_return();\r
retval.start = input.LT(1);\r
RewriteRuleSubtreeStream stream_value=new RewriteRuleSubtreeStream(adaptor,"rule value");\r
RewriteRuleSubtreeStream stream_cmpOp=new RewriteRuleSubtreeStream(adaptor,"rule cmpOp");\r
try {\r
- // LensQuery.g:251:3: ( cmpOp value -> ^( COMPARE OPERATOR[$cmpOp.text] OPERAND[$value.text] ) | Match Regex -> ^( PATTERNMATCH OPERAND[$Regex.text] ) )\r
+ // LensQuery.g:249:3: ( cmpOp value -> ^( COMPARE OPERATOR[$cmpOp.text] OPERAND[$value.text] ) | Match Regex -> ^( PATTERNMATCH OPERAND[$Regex.text] ) )\r
int alt8=2;\r
int LA8_0 = input.LA(1);\r
\r
}\r
switch (alt8) {\r
case 1 :\r
- // LensQuery.g:251:5: cmpOp value\r
+ // LensQuery.g:249:5: cmpOp value\r
{\r
- pushFollow(FOLLOW_cmpOp_in_nodeCmp1061);\r
+ pushFollow(FOLLOW_cmpOp_in_nodeCmp1035);\r
cmpOp22=cmpOp();\r
\r
state._fsp--;\r
\r
stream_cmpOp.add(cmpOp22.getTree());\r
- pushFollow(FOLLOW_value_in_nodeCmp1063);\r
+ pushFollow(FOLLOW_value_in_nodeCmp1037);\r
value23=value();\r
\r
state._fsp--;\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 251:17: -> ^( COMPARE OPERATOR[$cmpOp.text] OPERAND[$value.text] )\r
+ // 249:17: -> ^( COMPARE OPERATOR[$cmpOp.text] OPERAND[$value.text] )\r
{\r
- // LensQuery.g:251:20: ^( COMPARE OPERATOR[$cmpOp.text] OPERAND[$value.text] )\r
+ // LensQuery.g:249:20: ^( COMPARE OPERATOR[$cmpOp.text] OPERAND[$value.text] )\r
{\r
Object root_1 = (Object)adaptor.nil();\r
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(COMPARE, "COMPARE"), root_1);\r
}\r
break;\r
case 2 :\r
- // LensQuery.g:252:5: Match Regex\r
+ // LensQuery.g:250:5: Match Regex\r
{\r
- Match24=(Token)match(input,Match,FOLLOW_Match_in_nodeCmp1081); \r
+ Match24=(Token)match(input,Match,FOLLOW_Match_in_nodeCmp1055); \r
stream_Match.add(Match24);\r
\r
- Regex25=(Token)match(input,Regex,FOLLOW_Regex_in_nodeCmp1083); \r
+ Regex25=(Token)match(input,Regex,FOLLOW_Regex_in_nodeCmp1057); \r
stream_Regex.add(Regex25);\r
\r
\r
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);\r
\r
root_0 = (Object)adaptor.nil();\r
- // 252:17: -> ^( PATTERNMATCH OPERAND[$Regex.text] )\r
+ // 250:17: -> ^( PATTERNMATCH OPERAND[$Regex.text] )\r
{\r
- // LensQuery.g:252:20: ^( PATTERNMATCH OPERAND[$Regex.text] )\r
+ // LensQuery.g:250:20: ^( PATTERNMATCH OPERAND[$Regex.text] )\r
{\r
Object root_1 = (Object)adaptor.nil();\r
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PATTERNMATCH, "PATTERNMATCH"), root_1);\r
};\r
\r
// $ANTLR start "cmpOp"\r
- // LensQuery.g:255:1: fragment cmpOp : ( Lt | Gt | Eq | Leq | Geq | Neq ) ;\r
+ // LensQuery.g:253:1: fragment cmpOp : ( Lt | Gt | Eq | Leq | Geq | Neq ) ;\r
public final LensQueryParser.cmpOp_return cmpOp() throws RecognitionException {\r
LensQueryParser.cmpOp_return retval = new LensQueryParser.cmpOp_return();\r
retval.start = input.LT(1);\r
Object set26_tree=null;\r
\r
try {\r
- // LensQuery.g:256:6: ( ( Lt | Gt | Eq | Leq | Geq | Neq ) )\r
- // LensQuery.g:256:8: ( Lt | Gt | Eq | Leq | Geq | Neq )\r
+ // LensQuery.g:254:6: ( ( Lt | Gt | Eq | Leq | Geq | Neq ) )\r
+ // LensQuery.g:254:8: ( Lt | Gt | Eq | Leq | Geq | Neq )\r
{\r
root_0 = (Object)adaptor.nil();\r
\r
\r
\r
\r
- public static final BitSet FOLLOW_relation_in_expr806 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_relation_i_in_relation840 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_nodeName_in_relation_i859 = new BitSet(new long[]{0x0006000000000000L});\r
- public static final BitSet FOLLOW_alias_in_relation_i861 = new BitSet(new long[]{0x0004000000000000L});\r
- public static final BitSet FOLLOW_LParen_in_relation_i864 = new BitSet(new long[]{0x0400000004000000L});\r
- public static final BitSet FOLLOW_nodeItem_in_relation_i867 = new BitSet(new long[]{0x0008800000000000L});\r
- public static final BitSet FOLLOW_Comma_in_relation_i870 = new BitSet(new long[]{0x0400000004000000L});\r
- public static final BitSet FOLLOW_nodeItem_in_relation_i873 = new BitSet(new long[]{0x0008800000000000L});\r
- public static final BitSet FOLLOW_RParen_in_relation_i877 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_QName_in_nodeName890 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_String_in_nodeName901 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_As_in_alias918 = new BitSet(new long[]{0x0400000000000000L});\r
- public static final BitSet FOLLOW_QName_in_alias920 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_nodeName_in_nodeItem945 = new BitSet(new long[]{0x00031FC000000002L});\r
- public static final BitSet FOLLOW_alias_in_nodeItem947 = new BitSet(new long[]{0x00011FC000000002L});\r
- public static final BitSet FOLLOW_nodeValue_in_nodeItem950 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_relation_in_nodeItem979 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_relation_in_expr779 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_relation_i_in_relation813 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_nodeName_in_relation_i832 = new BitSet(new long[]{0x0000600000000000L});\r
+ public static final BitSet FOLLOW_alias_in_relation_i834 = new BitSet(new long[]{0x0000400000000000L});\r
+ public static final BitSet FOLLOW_LParen_in_relation_i837 = new BitSet(new long[]{0x0040000004000000L});\r
+ public static final BitSet FOLLOW_nodeItem_in_relation_i840 = new BitSet(new long[]{0x0000880000000000L});\r
+ public static final BitSet FOLLOW_Comma_in_relation_i843 = new BitSet(new long[]{0x0040000004000000L});\r
+ public static final BitSet FOLLOW_nodeItem_in_relation_i846 = new BitSet(new long[]{0x0000880000000000L});\r
+ public static final BitSet FOLLOW_RParen_in_relation_i850 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_QName_in_nodeName864 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_String_in_nodeName875 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_As_in_alias892 = new BitSet(new long[]{0x0040000000000000L});\r
+ public static final BitSet FOLLOW_QName_in_alias894 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_nodeName_in_nodeItem919 = new BitSet(new long[]{0x000031FC00000002L});\r
+ public static final BitSet FOLLOW_alias_in_nodeItem921 = new BitSet(new long[]{0x000011FC00000002L});\r
+ public static final BitSet FOLLOW_nodeValue_in_nodeItem924 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_relation_in_nodeItem953 = new BitSet(new long[]{0x0000000000000002L});\r
public static final BitSet FOLLOW_set_in_value0 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_Colon_in_nodeValue1028 = new BitSet(new long[]{0x040000004C000000L});\r
- public static final BitSet FOLLOW_value_in_nodeValue1030 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_nodeCmp_in_nodeValue1041 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_cmpOp_in_nodeCmp1061 = new BitSet(new long[]{0x040000004C000000L});\r
- public static final BitSet FOLLOW_value_in_nodeCmp1063 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_Match_in_nodeCmp1081 = new BitSet(new long[]{0x0000200000000000L});\r
- public static final BitSet FOLLOW_Regex_in_nodeCmp1083 = new BitSet(new long[]{0x0000000000000002L});\r
- public static final BitSet FOLLOW_set_in_cmpOp1108 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_Colon_in_nodeValue1002 = new BitSet(new long[]{0x004000004C000000L});\r
+ public static final BitSet FOLLOW_value_in_nodeValue1004 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_nodeCmp_in_nodeValue1015 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_cmpOp_in_nodeCmp1035 = new BitSet(new long[]{0x004000004C000000L});\r
+ public static final BitSet FOLLOW_value_in_nodeCmp1037 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_Match_in_nodeCmp1055 = new BitSet(new long[]{0x0000020000000000L});\r
+ public static final BitSet FOLLOW_Regex_in_nodeCmp1057 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_set_in_cmpOp1082 = new BitSet(new long[]{0x0000000000000002L});\r
\r
}
\ No newline at end of file
--- /dev/null
+/*--------------------------------------------------------------------------\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
+// XPath.g\r
+// Since: Aug 6, 2009 08:30:02 AM\r
+//\r
+//--------------------------------------\r
+ \r
+grammar XPath;\r
+options \r
+{\r
+ language=Java;\r
+ output=AST;\r
+}\r
+tokens {\r
+ XPATH;\r
+ NAME;\r
+ VALUE;\r
+ STEP;\r
+ AXIS;\r
+ PREDICATE;\r
+}\r
+\r
+@lexer::header\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
+// XPathLexer.g\r
+// Since: Aug 6, 2009 08:30:02 AM\r
+//\r
+//--------------------------------------\r
+\r
+package org.xerial.lens.relation.query.impl;\r
+\r
+}\r
+\r
+ \r
+@header\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
+@lexer::members {\r
+\r
+}\r
+\r
+@members {\r
+\r
+} \r
+\r
+//-------------------------\r
+// lexer rules\r
+//-------------------------\r
+\r
+// Line Comment\r
+fragment LineBreakChar: '\n' | '\r'; // r: <CR> n : <LF>\r
+LineComment: '#' ~(LineBreakChar)* { $channel = HIDDEN; };\r
+\r
+LineBreak: ('\r' '\n' | '\r' | '\n' ) { $channel = HIDDEN; }; \r
+\r
+fragment Digit: '0' .. '9';\r
+fragment Letter: 'A' .. 'F' | 'a' .. 'f';\r
+fragment HexDigit: Digit | Letter;\r
+fragment UnicodeChar: ~('"'| '\\');\r
+fragment EscapeSequence\r
+ : '\\' ('\"' | '\\' | '/' | 'b' | 'f' | 'n' | 'r' | 't' | 'u' HexDigit HexDigit HexDigit HexDigit)\r
+ ; \r
+\r
+fragment StringChar : UnicodeChar | EscapeSequence;\r
+fragment StringChar_s: StringChar*;\r
+\r
+String: '"' s=StringChar_s '"' { setText($s.text); };\r
+\r
+Integer: '-'? ('0' | '1'..'9' Digit*);\r
+fragment Frac: '.' Digit+;\r
+fragment Exp: ('e' | 'E') ('+' | '-')? Digit+;\r
+Double: Integer (Frac Exp? | Exp);\r
+\r
+// comparison operator\r
+\r
+Comma: ',';\r
+Colon: ':';\r
+\r
+\r
+\r
+fragment\r
+UnsafeUnicodeChar: '(' | ')' | '[' | ']' | '{' | '}' | ',' | ':' | '#' | '<' | '>' | '|' | '*' | '\'' | '"' | '@' | '%' | '\\' | '.' | '-'; \r
+\r
+fragment SafeFirstLetter: 'A' .. 'Z' | 'a' .. 'z';\r
+fragment SafeLetter: SafeFirstLetter | '0' .. '9' | '-' | '_';\r
+\r
+fragment QNameChar: ~(LineBreakChar | UnsafeUnicodeChar | WhiteSpace | '/' | '//');\r
+QName: QNameChar+ ('.' QNameChar+)*;\r
+\r
+\r
+fragment \r
+WhiteSpace: ' ' | '\t';\r
+ \r
+WhiteSpaces: WhiteSpace+ { $channel = HIDDEN; }; \r
+\r
+\r
+\r
+//---------------------------\r
+// parser rules\r
+//---------------------------\r
+\r
+xpath\r
+ : locationExpr\r
+ -> ^(XPATH locationExpr)\r
+ ; \r
+\r
+fragment\r
+locationExpr\r
+ : relativePath\r
+ | absolutePath\r
+ ;\r
+ \r
+fragment\r
+relativePath\r
+ : step \r
+ -> ^(STEP step)\r
+ | (step '/') => step '/' relativePath\r
+ -> ^(STEP AXIS["PC"] step relativePath) \r
+ | (step '//') => step '//' relativePath \r
+ -> ^(STEP AXIS["AD"] step relativePath)\r
+ ;\r
+\r
+fragment\r
+absolutePath\r
+ : '/' relativePath \r
+ -> ^(STEP AXIS["PC"] NAME["_root"] relativePath)\r
+ ;\r
+ \r
+fragment\r
+step\r
+ : nodeTest predicate* -> NAME[$nodeTest.text] predicate* \r
+ ;\r
+\r
+ \r
+fragment\r
+nodeTest\r
+ : '@'? (QName ':')? QName \r
+ ; \r
+\r
+fragment\r
+predicate\r
+ : '[' expr ']'\r
+ -> ^(PREDICATE expr)\r
+ ;\r
+\r
+expr\r
+ : comparisonExpr\r
+ ;\r
+\r
+fragment\r
+comparisonExpr\r
+ : pathExpr\r
+ | (pathExpr '=') => pathExpr '=' pathExpr\r
+ | (pathExpr '!=') => pathExpr '!=' pathExpr\r
+ | (pathExpr '>') => pathExpr '>' pathExpr\r
+ | (pathExpr '>=') => pathExpr '>=' pathExpr\r
+ | (pathExpr '<') => pathExpr '<' pathExpr\r
+ | (pathExpr '<=') => pathExpr '<=' pathExpr\r
+ | (pathExpr '~=') => pathExpr '~=' pathExpr\r
+ ;\r
+\r
+\r
+fragment\r
+pathExpr\r
+ : locationExpr\r
+ | primaryExpr \r
+ ;\r
+ \r
+fragment\r
+primaryExpr\r
+ : String\r
+ | Integer\r
+ | Double\r
+ | functionCall \r
+ ;\r
+ \r
+\r
+fragment\r
+functionCall\r
+ : QName '(' (expr (',' expr)*)? ')'\r
+ ; \r
+ \r
+
\ No newline at end of file
--- /dev/null
+T__42=42\r
+Digit=13\r
+Frac=22\r
+HexDigit=15\r
+T__47=47\r
+STEP=7\r
+VALUE=6\r
+T__39=39\r
+PREDICATE=9\r
+Letter=14\r
+T__46=46\r
+Comma=25\r
+EscapeSequence=17\r
+XPATH=4\r
+Integer=21\r
+WhiteSpace=30\r
+T__34=34\r
+AXIS=8\r
+LineComment=11\r
+Colon=26\r
+T__35=35\r
+SafeFirstLetter=28\r
+T__36=36\r
+Exp=23\r
+QNameChar=31\r
+T__44=44\r
+UnicodeChar=16\r
+StringChar=18\r
+LineBreak=12\r
+T__45=45\r
+String=20\r
+SafeLetter=29\r
+LineBreakChar=10\r
+T__43=43\r
+QName=32\r
+T__40=40\r
+T__38=38\r
+T__37=37\r
+StringChar_s=19\r
+UnsafeUnicodeChar=27\r
+Double=24\r
+NAME=5\r
+T__41=41\r
+WhiteSpaces=33\r
+'~='=45\r
+'<'=43\r
+'>'=41\r
+')'=47\r
+'@'=36\r
+']'=38\r
+'!='=40\r
+','=25\r
+'('=46\r
+'>='=42\r
+':'=26\r
+'//'=35\r
+'<='=44\r
+'='=39\r
+'['=37\r
+'/'=34\r
--- /dev/null
+// $ANTLR 3.1.3 Mar 17, 2009 19:23:44 XPath.g 2009-09-29 14:52:04\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
+// XPathLexer.g\r
+// Since: Aug 6, 2009 08:30:02 AM\r
+//\r
+//--------------------------------------\r
+\r
+package org.xerial.lens.relation.query.impl;\r
+\r
+\r
+\r
+import org.antlr.runtime.*;\r
+import java.util.Stack;\r
+import java.util.List;\r
+import java.util.ArrayList;\r
+\r
+public class XPathLexer extends Lexer {\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 Letter=14;\r
+ public static final int PREDICATE=9;\r
+ public static final int Comma=25;\r
+ public static final int T__46=46;\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
+\r
+\r
+\r
+ // delegates\r
+ // delegators\r
+\r
+ public XPathLexer() {;} \r
+ public XPathLexer(CharStream input) {\r
+ this(input, new RecognizerSharedState());\r
+ }\r
+ public XPathLexer(CharStream input, RecognizerSharedState state) {\r
+ super(input,state);\r
+\r
+ }\r
+ public String getGrammarFileName() { return "XPath.g"; }\r
+\r
+ // $ANTLR start "T__34"\r
+ public final void mT__34() throws RecognitionException {\r
+ try {\r
+ int _type = T__34;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // XPath.g:38:7: ( '/' )\r
+ // XPath.g:38:9: '/'\r
+ {\r
+ match('/'); \r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "T__34"\r
+\r
+ // $ANTLR start "T__35"\r
+ public final void mT__35() throws RecognitionException {\r
+ try {\r
+ int _type = T__35;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // XPath.g:39:7: ( '//' )\r
+ // XPath.g:39:9: '//'\r
+ {\r
+ match("//"); \r
+\r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "T__35"\r
+\r
+ // $ANTLR start "T__36"\r
+ public final void mT__36() throws RecognitionException {\r
+ try {\r
+ int _type = T__36;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // XPath.g:40:7: ( '@' )\r
+ // XPath.g:40:9: '@'\r
+ {\r
+ match('@'); \r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "T__36"\r
+\r
+ // $ANTLR start "T__37"\r
+ public final void mT__37() throws RecognitionException {\r
+ try {\r
+ int _type = T__37;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // XPath.g:41:7: ( '[' )\r
+ // XPath.g:41:9: '['\r
+ {\r
+ match('['); \r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "T__37"\r
+\r
+ // $ANTLR start "T__38"\r
+ public final void mT__38() throws RecognitionException {\r
+ try {\r
+ int _type = T__38;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // XPath.g:42:7: ( ']' )\r
+ // XPath.g:42:9: ']'\r
+ {\r
+ match(']'); \r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "T__38"\r
+\r
+ // $ANTLR start "T__39"\r
+ public final void mT__39() throws RecognitionException {\r
+ try {\r
+ int _type = T__39;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // XPath.g:43:7: ( '=' )\r
+ // XPath.g:43:9: '='\r
+ {\r
+ match('='); \r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "T__39"\r
+\r
+ // $ANTLR start "T__40"\r
+ public final void mT__40() throws RecognitionException {\r
+ try {\r
+ int _type = T__40;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // XPath.g:44:7: ( '!=' )\r
+ // XPath.g:44:9: '!='\r
+ {\r
+ match("!="); \r
+\r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "T__40"\r
+\r
+ // $ANTLR start "T__41"\r
+ public final void mT__41() throws RecognitionException {\r
+ try {\r
+ int _type = T__41;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // XPath.g:45:7: ( '>' )\r
+ // XPath.g:45:9: '>'\r
+ {\r
+ match('>'); \r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "T__41"\r
+\r
+ // $ANTLR start "T__42"\r
+ public final void mT__42() throws RecognitionException {\r
+ try {\r
+ int _type = T__42;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // XPath.g:46:7: ( '>=' )\r
+ // XPath.g:46:9: '>='\r
+ {\r
+ match(">="); \r
+\r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "T__42"\r
+\r
+ // $ANTLR start "T__43"\r
+ public final void mT__43() throws RecognitionException {\r
+ try {\r
+ int _type = T__43;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // XPath.g:47:7: ( '<' )\r
+ // XPath.g:47:9: '<'\r
+ {\r
+ match('<'); \r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "T__43"\r
+\r
+ // $ANTLR start "T__44"\r
+ public final void mT__44() throws RecognitionException {\r
+ try {\r
+ int _type = T__44;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // XPath.g:48:7: ( '<=' )\r
+ // XPath.g:48:9: '<='\r
+ {\r
+ match("<="); \r
+\r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "T__44"\r
+\r
+ // $ANTLR start "T__45"\r
+ public final void mT__45() throws RecognitionException {\r
+ try {\r
+ int _type = T__45;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // XPath.g:49:7: ( '~=' )\r
+ // XPath.g:49:9: '~='\r
+ {\r
+ match("~="); \r
+\r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "T__45"\r
+\r
+ // $ANTLR start "T__46"\r
+ public final void mT__46() throws RecognitionException {\r
+ try {\r
+ int _type = T__46;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // XPath.g:50:7: ( '(' )\r
+ // XPath.g:50:9: '('\r
+ {\r
+ match('('); \r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "T__46"\r
+\r
+ // $ANTLR start "T__47"\r
+ public final void mT__47() throws RecognitionException {\r
+ try {\r
+ int _type = T__47;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // XPath.g:51:7: ( ')' )\r
+ // XPath.g:51:9: ')'\r
+ {\r
+ match(')'); \r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "T__47"\r
+\r
+ // $ANTLR start "LineBreakChar"\r
+ public final void mLineBreakChar() throws RecognitionException {\r
+ try {\r
+ // XPath.g:111:23: ( '\\n' | '\\r' )\r
+ // XPath.g:\r
+ {\r
+ if ( input.LA(1)=='\n'||input.LA(1)=='\r' ) {\r
+ input.consume();\r
+\r
+ }\r
+ else {\r
+ MismatchedSetException mse = new MismatchedSetException(null,input);\r
+ recover(mse);\r
+ throw mse;}\r
+\r
+\r
+ }\r
+\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "LineBreakChar"\r
+\r
+ // $ANTLR start "LineComment"\r
+ public final void mLineComment() throws RecognitionException {\r
+ try {\r
+ int _type = LineComment;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // XPath.g:112:12: ( '#' (~ ( LineBreakChar ) )* )\r
+ // XPath.g:112:14: '#' (~ ( LineBreakChar ) )*\r
+ {\r
+ match('#'); \r
+ // XPath.g:112:18: (~ ( LineBreakChar ) )*\r
+ loop1:\r
+ do {\r
+ int alt1=2;\r
+ int LA1_0 = input.LA(1);\r
+\r
+ if ( ((LA1_0>='\u0000' && LA1_0<='\t')||(LA1_0>='\u000B' && LA1_0<='\f')||(LA1_0>='\u000E' && LA1_0<='\uFFFF')) ) {\r
+ alt1=1;\r
+ }\r
+\r
+\r
+ switch (alt1) {\r
+ case 1 :\r
+ // XPath.g:112:18: ~ ( LineBreakChar )\r
+ {\r
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {\r
+ input.consume();\r
+\r
+ }\r
+ else {\r
+ MismatchedSetException mse = new MismatchedSetException(null,input);\r
+ recover(mse);\r
+ throw mse;}\r
+\r
+\r
+ }\r
+ break;\r
+\r
+ default :\r
+ break loop1;\r
+ }\r
+ } while (true);\r
+\r
+ _channel = HIDDEN; \r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "LineComment"\r
+\r
+ // $ANTLR start "LineBreak"\r
+ public final void mLineBreak() throws RecognitionException {\r
+ try {\r
+ int _type = LineBreak;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // XPath.g:114:10: ( ( '\\r' '\\n' | '\\r' | '\\n' ) )\r
+ // XPath.g:114:12: ( '\\r' '\\n' | '\\r' | '\\n' )\r
+ {\r
+ // XPath.g:114:12: ( '\\r' '\\n' | '\\r' | '\\n' )\r
+ int alt2=3;\r
+ int LA2_0 = input.LA(1);\r
+\r
+ if ( (LA2_0=='\r') ) {\r
+ int LA2_1 = input.LA(2);\r
+\r
+ if ( (LA2_1=='\n') ) {\r
+ alt2=1;\r
+ }\r
+ else {\r
+ alt2=2;}\r
+ }\r
+ else if ( (LA2_0=='\n') ) {\r
+ alt2=3;\r
+ }\r
+ else {\r
+ NoViableAltException nvae =\r
+ new NoViableAltException("", 2, 0, input);\r
+\r
+ throw nvae;\r
+ }\r
+ switch (alt2) {\r
+ case 1 :\r
+ // XPath.g:114:13: '\\r' '\\n'\r
+ {\r
+ match('\r'); \r
+ match('\n'); \r
+\r
+ }\r
+ break;\r
+ case 2 :\r
+ // XPath.g:114:25: '\\r'\r
+ {\r
+ match('\r'); \r
+\r
+ }\r
+ break;\r
+ case 3 :\r
+ // XPath.g:114:32: '\\n'\r
+ {\r
+ match('\n'); \r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+\r
+ _channel = HIDDEN; \r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "LineBreak"\r
+\r
+ // $ANTLR start "Digit"\r
+ public final void mDigit() throws RecognitionException {\r
+ try {\r
+ // XPath.g:116:15: ( '0' .. '9' )\r
+ // XPath.g:116:17: '0' .. '9'\r
+ {\r
+ matchRange('0','9'); \r
+\r
+ }\r
+\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "Digit"\r
+\r
+ // $ANTLR start "Letter"\r
+ public final void mLetter() throws RecognitionException {\r
+ try {\r
+ // XPath.g:117:16: ( 'A' .. 'F' | 'a' .. 'f' )\r
+ // XPath.g:\r
+ {\r
+ if ( (input.LA(1)>='A' && input.LA(1)<='F')||(input.LA(1)>='a' && input.LA(1)<='f') ) {\r
+ input.consume();\r
+\r
+ }\r
+ else {\r
+ MismatchedSetException mse = new MismatchedSetException(null,input);\r
+ recover(mse);\r
+ throw mse;}\r
+\r
+\r
+ }\r
+\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "Letter"\r
+\r
+ // $ANTLR start "HexDigit"\r
+ public final void mHexDigit() throws RecognitionException {\r
+ try {\r
+ // XPath.g:118:18: ( Digit | Letter )\r
+ // XPath.g:\r
+ {\r
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||(input.LA(1)>='a' && input.LA(1)<='f') ) {\r
+ input.consume();\r
+\r
+ }\r
+ else {\r
+ MismatchedSetException mse = new MismatchedSetException(null,input);\r
+ recover(mse);\r
+ throw mse;}\r
+\r
+\r
+ }\r
+\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "HexDigit"\r
+\r
+ // $ANTLR start "UnicodeChar"\r
+ public final void mUnicodeChar() throws RecognitionException {\r
+ try {\r
+ // XPath.g:119:21: (~ ( '\"' | '\\\\' ) )\r
+ // XPath.g:119:23: ~ ( '\"' | '\\\\' )\r
+ {\r
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {\r
+ input.consume();\r
+\r
+ }\r
+ else {\r
+ MismatchedSetException mse = new MismatchedSetException(null,input);\r
+ recover(mse);\r
+ throw mse;}\r
+\r
+\r
+ }\r
+\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "UnicodeChar"\r
+\r
+ // $ANTLR start "EscapeSequence"\r
+ public final void mEscapeSequence() throws RecognitionException {\r
+ try {\r
+ // XPath.g:121:3: ( '\\\\' ( '\\\"' | '\\\\' | '/' | 'b' | 'f' | 'n' | 'r' | 't' | 'u' HexDigit HexDigit HexDigit HexDigit ) )\r
+ // XPath.g:121:5: '\\\\' ( '\\\"' | '\\\\' | '/' | 'b' | 'f' | 'n' | 'r' | 't' | 'u' HexDigit HexDigit HexDigit HexDigit )\r
+ {\r
+ match('\\'); \r
+ // XPath.g:121:10: ( '\\\"' | '\\\\' | '/' | 'b' | 'f' | 'n' | 'r' | 't' | 'u' HexDigit HexDigit HexDigit HexDigit )\r
+ int alt3=9;\r
+ switch ( input.LA(1) ) {\r
+ case '\"':\r
+ {\r
+ alt3=1;\r
+ }\r
+ break;\r
+ case '\\':\r
+ {\r
+ alt3=2;\r
+ }\r
+ break;\r
+ case '/':\r
+ {\r
+ alt3=3;\r
+ }\r
+ break;\r
+ case 'b':\r
+ {\r
+ alt3=4;\r
+ }\r
+ break;\r
+ case 'f':\r
+ {\r
+ alt3=5;\r
+ }\r
+ break;\r
+ case 'n':\r
+ {\r
+ alt3=6;\r
+ }\r
+ break;\r
+ case 'r':\r
+ {\r
+ alt3=7;\r
+ }\r
+ break;\r
+ case 't':\r
+ {\r
+ alt3=8;\r
+ }\r
+ break;\r
+ case 'u':\r
+ {\r
+ alt3=9;\r
+ }\r
+ break;\r
+ default:\r
+ NoViableAltException nvae =\r
+ new NoViableAltException("", 3, 0, input);\r
+\r
+ throw nvae;\r
+ }\r
+\r
+ switch (alt3) {\r
+ case 1 :\r
+ // XPath.g:121:11: '\\\"'\r
+ {\r
+ match('\"'); \r
+\r
+ }\r
+ break;\r
+ case 2 :\r
+ // XPath.g:121:18: '\\\\'\r
+ {\r
+ match('\\'); \r
+\r
+ }\r
+ break;\r
+ case 3 :\r
+ // XPath.g:121:25: '/'\r
+ {\r
+ match('/'); \r
+\r
+ }\r
+ break;\r
+ case 4 :\r
+ // XPath.g:121:31: 'b'\r
+ {\r
+ match('b'); \r
+\r
+ }\r
+ break;\r
+ case 5 :\r
+ // XPath.g:121:37: 'f'\r
+ {\r
+ match('f'); \r
+\r
+ }\r
+ break;\r
+ case 6 :\r
+ // XPath.g:121:43: 'n'\r
+ {\r
+ match('n'); \r
+\r
+ }\r
+ break;\r
+ case 7 :\r
+ // XPath.g:121:49: 'r'\r
+ {\r
+ match('r'); \r
+\r
+ }\r
+ break;\r
+ case 8 :\r
+ // XPath.g:121:55: 't'\r
+ {\r
+ match('t'); \r
+\r
+ }\r
+ break;\r
+ case 9 :\r
+ // XPath.g:121:61: 'u' HexDigit HexDigit HexDigit HexDigit\r
+ {\r
+ match('u'); \r
+ mHexDigit(); \r
+ mHexDigit(); \r
+ mHexDigit(); \r
+ mHexDigit(); \r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+\r
+\r
+ }\r
+\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "EscapeSequence"\r
+\r
+ // $ANTLR start "StringChar"\r
+ public final void mStringChar() throws RecognitionException {\r
+ try {\r
+ // XPath.g:124:21: ( UnicodeChar | EscapeSequence )\r
+ int alt4=2;\r
+ int LA4_0 = input.LA(1);\r
+\r
+ if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) {\r
+ alt4=1;\r
+ }\r
+ else if ( (LA4_0=='\\') ) {\r
+ alt4=2;\r
+ }\r
+ else {\r
+ NoViableAltException nvae =\r
+ new NoViableAltException("", 4, 0, input);\r
+\r
+ throw nvae;\r
+ }\r
+ switch (alt4) {\r
+ case 1 :\r
+ // XPath.g:124:24: UnicodeChar\r
+ {\r
+ mUnicodeChar(); \r
+\r
+ }\r
+ break;\r
+ case 2 :\r
+ // XPath.g:124:38: EscapeSequence\r
+ {\r
+ mEscapeSequence(); \r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "StringChar"\r
+\r
+ // $ANTLR start "StringChar_s"\r
+ public final void mStringChar_s() throws RecognitionException {\r
+ try {\r
+ // XPath.g:125:22: ( ( StringChar )* )\r
+ // XPath.g:125:24: ( StringChar )*\r
+ {\r
+ // XPath.g:125:24: ( StringChar )*\r
+ loop5:\r
+ do {\r
+ int alt5=2;\r
+ int LA5_0 = input.LA(1);\r
+\r
+ if ( ((LA5_0>='\u0000' && LA5_0<='!')||(LA5_0>='#' && LA5_0<='\uFFFF')) ) {\r
+ alt5=1;\r
+ }\r
+\r
+\r
+ switch (alt5) {\r
+ case 1 :\r
+ // XPath.g:125:24: StringChar\r
+ {\r
+ mStringChar(); \r
+\r
+ }\r
+ break;\r
+\r
+ default :\r
+ break loop5;\r
+ }\r
+ } while (true);\r
+\r
+\r
+ }\r
+\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "StringChar_s"\r
+\r
+ // $ANTLR start "String"\r
+ public final void mString() throws RecognitionException {\r
+ try {\r
+ int _type = String;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ Token s=null;\r
+\r
+ // XPath.g:127:7: ( '\"' s= StringChar_s '\"' )\r
+ // XPath.g:127:9: '\"' s= StringChar_s '\"'\r
+ {\r
+ match('\"'); \r
+ int sStart355 = getCharIndex();\r
+ mStringChar_s(); \r
+ s = new CommonToken(input, Token.INVALID_TOKEN_TYPE, Token.DEFAULT_CHANNEL, sStart355, getCharIndex()-1);\r
+ match('\"'); \r
+ setText((s!=null?s.getText():null)); \r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "String"\r
+\r
+ // $ANTLR start "Integer"\r
+ public final void mInteger() throws RecognitionException {\r
+ try {\r
+ int _type = Integer;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // XPath.g:129:8: ( ( '-' )? ( '0' | '1' .. '9' ( Digit )* ) )\r
+ // XPath.g:129:10: ( '-' )? ( '0' | '1' .. '9' ( Digit )* )\r
+ {\r
+ // XPath.g:129:10: ( '-' )?\r
+ int alt6=2;\r
+ int LA6_0 = input.LA(1);\r
+\r
+ if ( (LA6_0=='-') ) {\r
+ alt6=1;\r
+ }\r
+ switch (alt6) {\r
+ case 1 :\r
+ // XPath.g:129:10: '-'\r
+ {\r
+ match('-'); \r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+\r
+ // XPath.g:129:15: ( '0' | '1' .. '9' ( Digit )* )\r
+ int alt8=2;\r
+ int LA8_0 = input.LA(1);\r
+\r
+ if ( (LA8_0=='0') ) {\r
+ alt8=1;\r
+ }\r
+ else if ( ((LA8_0>='1' && LA8_0<='9')) ) {\r
+ alt8=2;\r
+ }\r
+ else {\r
+ NoViableAltException nvae =\r
+ new NoViableAltException("", 8, 0, input);\r
+\r
+ throw nvae;\r
+ }\r
+ switch (alt8) {\r
+ case 1 :\r
+ // XPath.g:129:16: '0'\r
+ {\r
+ match('0'); \r
+\r
+ }\r
+ break;\r
+ case 2 :\r
+ // XPath.g:129:22: '1' .. '9' ( Digit )*\r
+ {\r
+ matchRange('1','9'); \r
+ // XPath.g:129:31: ( Digit )*\r
+ loop7:\r
+ do {\r
+ int alt7=2;\r
+ int LA7_0 = input.LA(1);\r
+\r
+ if ( ((LA7_0>='0' && LA7_0<='9')) ) {\r
+ alt7=1;\r
+ }\r
+\r
+\r
+ switch (alt7) {\r
+ case 1 :\r
+ // XPath.g:129:31: Digit\r
+ {\r
+ mDigit(); \r
+\r
+ }\r
+ break;\r
+\r
+ default :\r
+ break loop7;\r
+ }\r
+ } while (true);\r
+\r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+\r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "Integer"\r
+\r
+ // $ANTLR start "Frac"\r
+ public final void mFrac() throws RecognitionException {\r
+ try {\r
+ // XPath.g:130:14: ( '.' ( Digit )+ )\r
+ // XPath.g:130:16: '.' ( Digit )+\r
+ {\r
+ match('.'); \r
+ // XPath.g:130:20: ( Digit )+\r
+ int cnt9=0;\r
+ loop9:\r
+ do {\r
+ int alt9=2;\r
+ int LA9_0 = input.LA(1);\r
+\r
+ if ( ((LA9_0>='0' && LA9_0<='9')) ) {\r
+ alt9=1;\r
+ }\r
+\r
+\r
+ switch (alt9) {\r
+ case 1 :\r
+ // XPath.g:130:20: Digit\r
+ {\r
+ mDigit(); \r
+\r
+ }\r
+ break;\r
+\r
+ default :\r
+ if ( cnt9 >= 1 ) break loop9;\r
+ EarlyExitException eee =\r
+ new EarlyExitException(9, input);\r
+ throw eee;\r
+ }\r
+ cnt9++;\r
+ } while (true);\r
+\r
+\r
+ }\r
+\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "Frac"\r
+\r
+ // $ANTLR start "Exp"\r
+ public final void mExp() throws RecognitionException {\r
+ try {\r
+ // XPath.g:131:13: ( ( 'e' | 'E' ) ( '+' | '-' )? ( Digit )+ )\r
+ // XPath.g:131:15: ( 'e' | 'E' ) ( '+' | '-' )? ( Digit )+\r
+ {\r
+ if ( input.LA(1)=='E'||input.LA(1)=='e' ) {\r
+ input.consume();\r
+\r
+ }\r
+ else {\r
+ MismatchedSetException mse = new MismatchedSetException(null,input);\r
+ recover(mse);\r
+ throw mse;}\r
+\r
+ // XPath.g:131:27: ( '+' | '-' )?\r
+ int alt10=2;\r
+ int LA10_0 = input.LA(1);\r
+\r
+ if ( (LA10_0=='+'||LA10_0=='-') ) {\r
+ alt10=1;\r
+ }\r
+ switch (alt10) {\r
+ case 1 :\r
+ // XPath.g:\r
+ {\r
+ if ( input.LA(1)=='+'||input.LA(1)=='-' ) {\r
+ input.consume();\r
+\r
+ }\r
+ else {\r
+ MismatchedSetException mse = new MismatchedSetException(null,input);\r
+ recover(mse);\r
+ throw mse;}\r
+\r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+\r
+ // XPath.g:131:40: ( Digit )+\r
+ int cnt11=0;\r
+ loop11:\r
+ do {\r
+ int alt11=2;\r
+ int LA11_0 = input.LA(1);\r
+\r
+ if ( ((LA11_0>='0' && LA11_0<='9')) ) {\r
+ alt11=1;\r
+ }\r
+\r
+\r
+ switch (alt11) {\r
+ case 1 :\r
+ // XPath.g:131:40: Digit\r
+ {\r
+ mDigit(); \r
+\r
+ }\r
+ break;\r
+\r
+ default :\r
+ if ( cnt11 >= 1 ) break loop11;\r
+ EarlyExitException eee =\r
+ new EarlyExitException(11, input);\r
+ throw eee;\r
+ }\r
+ cnt11++;\r
+ } while (true);\r
+\r
+\r
+ }\r
+\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "Exp"\r
+\r
+ // $ANTLR start "Double"\r
+ public final void mDouble() throws RecognitionException {\r
+ try {\r
+ int _type = Double;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // XPath.g:132:7: ( Integer ( Frac ( Exp )? | Exp ) )\r
+ // XPath.g:132:9: Integer ( Frac ( Exp )? | Exp )\r
+ {\r
+ mInteger(); \r
+ // XPath.g:132:17: ( Frac ( Exp )? | Exp )\r
+ int alt13=2;\r
+ int LA13_0 = input.LA(1);\r
+\r
+ if ( (LA13_0=='.') ) {\r
+ alt13=1;\r
+ }\r
+ else if ( (LA13_0=='E'||LA13_0=='e') ) {\r
+ alt13=2;\r
+ }\r
+ else {\r
+ NoViableAltException nvae =\r
+ new NoViableAltException("", 13, 0, input);\r
+\r
+ throw nvae;\r
+ }\r
+ switch (alt13) {\r
+ case 1 :\r
+ // XPath.g:132:18: Frac ( Exp )?\r
+ {\r
+ mFrac(); \r
+ // XPath.g:132:23: ( Exp )?\r
+ int alt12=2;\r
+ int LA12_0 = input.LA(1);\r
+\r
+ if ( (LA12_0=='E'||LA12_0=='e') ) {\r
+ alt12=1;\r
+ }\r
+ switch (alt12) {\r
+ case 1 :\r
+ // XPath.g:132:23: Exp\r
+ {\r
+ mExp(); \r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+\r
+\r
+ }\r
+ break;\r
+ case 2 :\r
+ // XPath.g:132:30: Exp\r
+ {\r
+ mExp(); \r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+\r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "Double"\r
+\r
+ // $ANTLR start "Comma"\r
+ public final void mComma() throws RecognitionException {\r
+ try {\r
+ int _type = Comma;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // XPath.g:136:6: ( ',' )\r
+ // XPath.g:136:8: ','\r
+ {\r
+ match(','); \r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "Comma"\r
+\r
+ // $ANTLR start "Colon"\r
+ public final void mColon() throws RecognitionException {\r
+ try {\r
+ int _type = Colon;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // XPath.g:137:6: ( ':' )\r
+ // XPath.g:137:8: ':'\r
+ {\r
+ match(':'); \r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "Colon"\r
+\r
+ // $ANTLR start "UnsafeUnicodeChar"\r
+ public final void mUnsafeUnicodeChar() throws RecognitionException {\r
+ try {\r
+ // XPath.g:142:18: ( '(' | ')' | '[' | ']' | '{' | '}' | ',' | ':' | '#' | '<' | '>' | '|' | '*' | '\\'' | '\"' | '@' | '%' | '\\\\' | '.' | '-' )\r
+ // XPath.g:\r
+ {\r
+ if ( (input.LA(1)>='\"' && input.LA(1)<='#')||input.LA(1)=='%'||(input.LA(1)>='\'' && input.LA(1)<='*')||(input.LA(1)>=',' && input.LA(1)<='.')||input.LA(1)==':'||input.LA(1)=='<'||input.LA(1)=='>'||input.LA(1)=='@'||(input.LA(1)>='[' && input.LA(1)<=']')||(input.LA(1)>='{' && input.LA(1)<='}') ) {\r
+ input.consume();\r
+\r
+ }\r
+ else {\r
+ MismatchedSetException mse = new MismatchedSetException(null,input);\r
+ recover(mse);\r
+ throw mse;}\r
+\r
+\r
+ }\r
+\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "UnsafeUnicodeChar"\r
+\r
+ // $ANTLR start "SafeFirstLetter"\r
+ public final void mSafeFirstLetter() throws RecognitionException {\r
+ try {\r
+ // XPath.g:144:25: ( 'A' .. 'Z' | 'a' .. 'z' )\r
+ // XPath.g:\r
+ {\r
+ if ( (input.LA(1)>='A' && input.LA(1)<='Z')||(input.LA(1)>='a' && input.LA(1)<='z') ) {\r
+ input.consume();\r
+\r
+ }\r
+ else {\r
+ MismatchedSetException mse = new MismatchedSetException(null,input);\r
+ recover(mse);\r
+ throw mse;}\r
+\r
+\r
+ }\r
+\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "SafeFirstLetter"\r
+\r
+ // $ANTLR start "SafeLetter"\r
+ public final void mSafeLetter() throws RecognitionException {\r
+ try {\r
+ // XPath.g:145:20: ( SafeFirstLetter | '0' .. '9' | '-' | '_' )\r
+ // XPath.g:\r
+ {\r
+ if ( input.LA(1)=='-'||(input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {\r
+ input.consume();\r
+\r
+ }\r
+ else {\r
+ MismatchedSetException mse = new MismatchedSetException(null,input);\r
+ recover(mse);\r
+ throw mse;}\r
+\r
+\r
+ }\r
+\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "SafeLetter"\r
+\r
+ // $ANTLR start "QNameChar"\r
+ public final void mQNameChar() throws RecognitionException {\r
+ try {\r
+ // XPath.g:147:19: (~ ( LineBreakChar | UnsafeUnicodeChar | WhiteSpace | '/' | '//' ) )\r
+ // XPath.g:147:21: ~ ( LineBreakChar | UnsafeUnicodeChar | WhiteSpace | '/' | '//' )\r
+ {\r
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='\b')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\u001F')||input.LA(1)=='!'||input.LA(1)=='$'||input.LA(1)=='&'||input.LA(1)=='+'||(input.LA(1)>='0' && input.LA(1)<='9')||input.LA(1)==';'||input.LA(1)=='='||input.LA(1)=='?'||(input.LA(1)>='A' && input.LA(1)<='Z')||(input.LA(1)>='^' && input.LA(1)<='z')||(input.LA(1)>='~' && input.LA(1)<='\uFFFF') ) {\r
+ input.consume();\r
+\r
+ }\r
+ else {\r
+ MismatchedSetException mse = new MismatchedSetException(null,input);\r
+ recover(mse);\r
+ throw mse;}\r
+\r
+\r
+ }\r
+\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "QNameChar"\r
+\r
+ // $ANTLR start "QName"\r
+ public final void mQName() throws RecognitionException {\r
+ try {\r
+ int _type = QName;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // XPath.g:148:6: ( ( QNameChar )+ ( '.' ( QNameChar )+ )* )\r
+ // XPath.g:148:8: ( QNameChar )+ ( '.' ( QNameChar )+ )*\r
+ {\r
+ // XPath.g:148:8: ( QNameChar )+\r
+ int cnt14=0;\r
+ loop14:\r
+ do {\r
+ int alt14=2;\r
+ int LA14_0 = input.LA(1);\r
+\r
+ if ( ((LA14_0>='\u0000' && LA14_0<='\b')||(LA14_0>='\u000B' && LA14_0<='\f')||(LA14_0>='\u000E' && LA14_0<='\u001F')||LA14_0=='!'||LA14_0=='$'||LA14_0=='&'||LA14_0=='+'||(LA14_0>='0' && LA14_0<='9')||LA14_0==';'||LA14_0=='='||LA14_0=='?'||(LA14_0>='A' && LA14_0<='Z')||(LA14_0>='^' && LA14_0<='z')||(LA14_0>='~' && LA14_0<='\uFFFF')) ) {\r
+ alt14=1;\r
+ }\r
+\r
+\r
+ switch (alt14) {\r
+ case 1 :\r
+ // XPath.g:148:8: QNameChar\r
+ {\r
+ mQNameChar(); \r
+\r
+ }\r
+ break;\r
+\r
+ default :\r
+ if ( cnt14 >= 1 ) break loop14;\r
+ EarlyExitException eee =\r
+ new EarlyExitException(14, input);\r
+ throw eee;\r
+ }\r
+ cnt14++;\r
+ } while (true);\r
+\r
+ // XPath.g:148:19: ( '.' ( QNameChar )+ )*\r
+ loop16:\r
+ do {\r
+ int alt16=2;\r
+ int LA16_0 = input.LA(1);\r
+\r
+ if ( (LA16_0=='.') ) {\r
+ alt16=1;\r
+ }\r
+\r
+\r
+ switch (alt16) {\r
+ case 1 :\r
+ // XPath.g:148:20: '.' ( QNameChar )+\r
+ {\r
+ match('.'); \r
+ // XPath.g:148:24: ( QNameChar )+\r
+ int cnt15=0;\r
+ loop15:\r
+ do {\r
+ int alt15=2;\r
+ int LA15_0 = input.LA(1);\r
+\r
+ if ( ((LA15_0>='\u0000' && LA15_0<='\b')||(LA15_0>='\u000B' && LA15_0<='\f')||(LA15_0>='\u000E' && LA15_0<='\u001F')||LA15_0=='!'||LA15_0=='$'||LA15_0=='&'||LA15_0=='+'||(LA15_0>='0' && LA15_0<='9')||LA15_0==';'||LA15_0=='='||LA15_0=='?'||(LA15_0>='A' && LA15_0<='Z')||(LA15_0>='^' && LA15_0<='z')||(LA15_0>='~' && LA15_0<='\uFFFF')) ) {\r
+ alt15=1;\r
+ }\r
+\r
+\r
+ switch (alt15) {\r
+ case 1 :\r
+ // XPath.g:148:24: QNameChar\r
+ {\r
+ mQNameChar(); \r
+\r
+ }\r
+ break;\r
+\r
+ default :\r
+ if ( cnt15 >= 1 ) break loop15;\r
+ EarlyExitException eee =\r
+ new EarlyExitException(15, input);\r
+ throw eee;\r
+ }\r
+ cnt15++;\r
+ } while (true);\r
+\r
+\r
+ }\r
+ break;\r
+\r
+ default :\r
+ break loop16;\r
+ }\r
+ } while (true);\r
+\r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "QName"\r
+\r
+ // $ANTLR start "WhiteSpace"\r
+ public final void mWhiteSpace() throws RecognitionException {\r
+ try {\r
+ // XPath.g:152:11: ( ' ' | '\\t' )\r
+ // XPath.g:\r
+ {\r
+ if ( input.LA(1)=='\t'||input.LA(1)==' ' ) {\r
+ input.consume();\r
+\r
+ }\r
+ else {\r
+ MismatchedSetException mse = new MismatchedSetException(null,input);\r
+ recover(mse);\r
+ throw mse;}\r
+\r
+\r
+ }\r
+\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "WhiteSpace"\r
+\r
+ // $ANTLR start "WhiteSpaces"\r
+ public final void mWhiteSpaces() throws RecognitionException {\r
+ try {\r
+ int _type = WhiteSpaces;\r
+ int _channel = DEFAULT_TOKEN_CHANNEL;\r
+ // XPath.g:154:12: ( ( WhiteSpace )+ )\r
+ // XPath.g:154:14: ( WhiteSpace )+\r
+ {\r
+ // XPath.g:154:14: ( WhiteSpace )+\r
+ int cnt17=0;\r
+ loop17:\r
+ do {\r
+ int alt17=2;\r
+ int LA17_0 = input.LA(1);\r
+\r
+ if ( (LA17_0=='\t'||LA17_0==' ') ) {\r
+ alt17=1;\r
+ }\r
+\r
+\r
+ switch (alt17) {\r
+ case 1 :\r
+ // XPath.g:154:14: WhiteSpace\r
+ {\r
+ mWhiteSpace(); \r
+\r
+ }\r
+ break;\r
+\r
+ default :\r
+ if ( cnt17 >= 1 ) break loop17;\r
+ EarlyExitException eee =\r
+ new EarlyExitException(17, input);\r
+ throw eee;\r
+ }\r
+ cnt17++;\r
+ } while (true);\r
+\r
+ _channel = HIDDEN; \r
+\r
+ }\r
+\r
+ state.type = _type;\r
+ state.channel = _channel;\r
+ }\r
+ finally {\r
+ }\r
+ }\r
+ // $ANTLR end "WhiteSpaces"\r
+\r
+ public void mTokens() throws RecognitionException {\r
+ // XPath.g:1:8: ( T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | LineComment | LineBreak | String | Integer | Double | Comma | Colon | QName | WhiteSpaces )\r
+ int alt18=23;\r
+ alt18 = dfa18.predict(input);\r
+ switch (alt18) {\r
+ case 1 :\r
+ // XPath.g:1:10: T__34\r
+ {\r
+ mT__34(); \r
+\r
+ }\r
+ break;\r
+ case 2 :\r
+ // XPath.g:1:16: T__35\r
+ {\r
+ mT__35(); \r
+\r
+ }\r
+ break;\r
+ case 3 :\r
+ // XPath.g:1:22: T__36\r
+ {\r
+ mT__36(); \r
+\r
+ }\r
+ break;\r
+ case 4 :\r
+ // XPath.g:1:28: T__37\r
+ {\r
+ mT__37(); \r
+\r
+ }\r
+ break;\r
+ case 5 :\r
+ // XPath.g:1:34: T__38\r
+ {\r
+ mT__38(); \r
+\r
+ }\r
+ break;\r
+ case 6 :\r
+ // XPath.g:1:40: T__39\r
+ {\r
+ mT__39(); \r
+\r
+ }\r
+ break;\r
+ case 7 :\r
+ // XPath.g:1:46: T__40\r
+ {\r
+ mT__40(); \r
+\r
+ }\r
+ break;\r
+ case 8 :\r
+ // XPath.g:1:52: T__41\r
+ {\r
+ mT__41(); \r
+\r
+ }\r
+ break;\r
+ case 9 :\r
+ // XPath.g:1:58: T__42\r
+ {\r
+ mT__42(); \r
+\r
+ }\r
+ break;\r
+ case 10 :\r
+ // XPath.g:1:64: T__43\r
+ {\r
+ mT__43(); \r
+\r
+ }\r
+ break;\r
+ case 11 :\r
+ // XPath.g:1:70: T__44\r
+ {\r
+ mT__44(); \r
+\r
+ }\r
+ break;\r
+ case 12 :\r
+ // XPath.g:1:76: T__45\r
+ {\r
+ mT__45(); \r
+\r
+ }\r
+ break;\r
+ case 13 :\r
+ // XPath.g:1:82: T__46\r
+ {\r
+ mT__46(); \r
+\r
+ }\r
+ break;\r
+ case 14 :\r
+ // XPath.g:1:88: T__47\r
+ {\r
+ mT__47(); \r
+\r
+ }\r
+ break;\r
+ case 15 :\r
+ // XPath.g:1:94: LineComment\r
+ {\r
+ mLineComment(); \r
+\r
+ }\r
+ break;\r
+ case 16 :\r
+ // XPath.g:1:106: LineBreak\r
+ {\r
+ mLineBreak(); \r
+\r
+ }\r
+ break;\r
+ case 17 :\r
+ // XPath.g:1:116: String\r
+ {\r
+ mString(); \r
+\r
+ }\r
+ break;\r
+ case 18 :\r
+ // XPath.g:1:123: Integer\r
+ {\r
+ mInteger(); \r
+\r
+ }\r
+ break;\r
+ case 19 :\r
+ // XPath.g:1:131: Double\r
+ {\r
+ mDouble(); \r
+\r
+ }\r
+ break;\r
+ case 20 :\r
+ // XPath.g:1:138: Comma\r
+ {\r
+ mComma(); \r
+\r
+ }\r
+ break;\r
+ case 21 :\r
+ // XPath.g:1:144: Colon\r
+ {\r
+ mColon(); \r
+\r
+ }\r
+ break;\r
+ case 22 :\r
+ // XPath.g:1:150: QName\r
+ {\r
+ mQName(); \r
+\r
+ }\r
+ break;\r
+ case 23 :\r
+ // XPath.g:1:156: WhiteSpaces\r
+ {\r
+ mWhiteSpaces(); \r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+\r
+ }\r
+\r
+\r
+ protected DFA18 dfa18 = new DFA18(this);\r
+ static final String DFA18_eotS =\r
+ "\1\uffff\1\27\3\uffff\1\30\1\24\1\33\1\35\1\24\6\uffff\2\41\7\uffff"+\r
+ "\1\45\4\uffff\1\46\2\41\2\uffff\1\24\1\41\3\uffff\1\41\1\47\1\24"+\r
+ "\1\47\2\24\1\47";\r
+ static final String DFA18_eofS =\r
+ "\57\uffff";\r
+ static final String DFA18_minS =\r
+ "\1\0\1\57\3\uffff\1\0\4\75\5\uffff\1\60\2\0\7\uffff\1\0\4\uffff"+\r
+ "\1\0\2\56\1\uffff\1\0\1\53\1\0\3\uffff\1\56\1\0\1\60\1\0\1\53\1"+\r
+ "\60\1\0";\r
+ static final String DFA18_maxS =\r
+ "\1\uffff\1\57\3\uffff\1\uffff\4\75\5\uffff\1\71\2\uffff\7\uffff"+\r
+ "\1\uffff\4\uffff\1\uffff\2\145\1\uffff\1\uffff\1\71\1\uffff\3\uffff"+\r
+ "\1\145\1\uffff\1\71\1\uffff\2\71\1\uffff";\r
+ static final String DFA18_acceptS =\r
+ "\2\uffff\1\3\1\4\1\5\5\uffff\1\15\1\16\1\17\1\20\1\21\3\uffff\1"+\r
+ "\24\1\25\1\26\1\27\1\2\1\1\1\6\1\uffff\1\11\1\10\1\13\1\12\3\uffff"+\r
+ "\1\22\3\uffff\1\7\1\14\1\23\7\uffff";\r
+ static final String DFA18_specialS =\r
+ "\1\3\4\uffff\1\10\12\uffff\1\7\1\2\7\uffff\1\0\4\uffff\1\12\3\uffff"+\r
+ "\1\5\1\uffff\1\1\4\uffff\1\11\1\uffff\1\4\2\uffff\1\6}>";\r
+ static final String[] DFA18_transitionS = {\r
+ "\11\24\1\25\1\15\2\24\1\15\22\24\1\25\1\6\1\16\1\14\1\24\1"+\r
+ "\uffff\1\24\1\uffff\1\12\1\13\1\uffff\1\24\1\22\1\17\1\uffff"+\r
+ "\1\1\1\20\11\21\1\23\1\24\1\10\1\5\1\7\1\24\1\2\32\24\1\3\1"+\r
+ "\uffff\1\4\35\24\3\uffff\1\11\uff81\24",\r
+ "\1\26",\r
+ "",\r
+ "",\r
+ "",\r
+ "\11\24\2\uffff\2\24\1\uffff\22\24\1\uffff\1\24\2\uffff\1\24"+\r
+ "\1\uffff\1\24\4\uffff\1\24\2\uffff\1\24\1\uffff\12\24\1\uffff"+\r
+ "\1\24\1\uffff\1\24\1\uffff\1\24\1\uffff\32\24\3\uffff\35\24"+\r
+ "\3\uffff\uff82\24",\r
+ "\1\31",\r
+ "\1\32",\r
+ "\1\34",\r
+ "\1\36",\r
+ "",\r
+ "",\r
+ "",\r
+ "",\r
+ "",\r
+ "\1\37\11\40",\r
+ "\11\24\2\uffff\2\24\1\uffff\22\24\1\uffff\1\24\2\uffff\1\24"+\r
+ "\1\uffff\1\24\4\uffff\1\24\2\uffff\1\42\1\uffff\12\24\1\uffff"+\r
+ "\1\24\1\uffff\1\24\1\uffff\1\24\1\uffff\4\24\1\43\25\24\3\uffff"+\r
+ "\7\24\1\43\25\24\3\uffff\uff82\24",\r
+ "\11\24\2\uffff\2\24\1\uffff\22\24\1\uffff\1\24\2\uffff\1\24"+\r
+ "\1\uffff\1\24\4\uffff\1\24\2\uffff\1\42\1\uffff\12\44\1\uffff"+\r
+ "\1\24\1\uffff\1\24\1\uffff\1\24\1\uffff\4\24\1\43\25\24\3\uffff"+\r
+ "\7\24\1\43\25\24\3\uffff\uff82\24",\r
+ "",\r
+ "",\r
+ "",\r
+ "",\r
+ "",\r
+ "",\r
+ "",\r
+ "\11\24\2\uffff\2\24\1\uffff\22\24\1\uffff\1\24\2\uffff\1\24"+\r
+ "\1\uffff\1\24\4\uffff\1\24\2\uffff\1\24\1\uffff\12\24\1\uffff"+\r
+ "\1\24\1\uffff\1\24\1\uffff\1\24\1\uffff\32\24\3\uffff\35\24"+\r
+ "\3\uffff\uff82\24",\r
+ "",\r
+ "",\r
+ "",\r
+ "",\r
+ "\11\24\2\uffff\2\24\1\uffff\22\24\1\uffff\1\24\2\uffff\1\24"+\r
+ "\1\uffff\1\24\4\uffff\1\24\2\uffff\1\24\1\uffff\12\24\1\uffff"+\r
+ "\1\24\1\uffff\1\24\1\uffff\1\24\1\uffff\32\24\3\uffff\35\24"+\r
+ "\3\uffff\uff82\24",\r
+ "\1\47\26\uffff\1\47\37\uffff\1\47",\r
+ "\1\47\1\uffff\12\50\13\uffff\1\47\37\uffff\1\47",\r
+ "",\r
+ "\11\24\2\uffff\2\24\1\uffff\22\24\1\uffff\1\24\2\uffff\1\24"+\r
+ "\1\uffff\1\24\4\uffff\1\24\4\uffff\12\51\1\uffff\1\24\1\uffff"+\r
+ "\1\24\1\uffff\1\24\1\uffff\32\24\3\uffff\35\24\3\uffff\uff82"+\r
+ "\24",\r
+ "\1\52\1\uffff\1\47\2\uffff\12\53",\r
+ "\11\24\2\uffff\2\24\1\uffff\22\24\1\uffff\1\24\2\uffff\1\24"+\r
+ "\1\uffff\1\24\4\uffff\1\24\2\uffff\1\42\1\uffff\12\44\1\uffff"+\r
+ "\1\24\1\uffff\1\24\1\uffff\1\24\1\uffff\4\24\1\43\25\24\3\uffff"+\r
+ "\7\24\1\43\25\24\3\uffff\uff82\24",\r
+ "",\r
+ "",\r
+ "",\r
+ "\1\47\1\uffff\12\50\13\uffff\1\47\37\uffff\1\47",\r
+ "\11\24\2\uffff\2\24\1\uffff\22\24\1\uffff\1\24\2\uffff\1\24"+\r
+ "\1\uffff\1\24\4\uffff\1\24\2\uffff\1\24\1\uffff\12\51\1\uffff"+\r
+ "\1\24\1\uffff\1\24\1\uffff\1\24\1\uffff\4\24\1\54\25\24\3\uffff"+\r
+ "\7\24\1\54\25\24\3\uffff\uff82\24",\r
+ "\12\53",\r
+ "\11\24\2\uffff\2\24\1\uffff\22\24\1\uffff\1\24\2\uffff\1\24"+\r
+ "\1\uffff\1\24\4\uffff\1\24\2\uffff\1\24\1\uffff\12\53\1\uffff"+\r
+ "\1\24\1\uffff\1\24\1\uffff\1\24\1\uffff\32\24\3\uffff\35\24"+\r
+ "\3\uffff\uff82\24",\r
+ "\1\55\1\uffff\1\47\2\uffff\12\56",\r
+ "\12\56",\r
+ "\11\24\2\uffff\2\24\1\uffff\22\24\1\uffff\1\24\2\uffff\1\24"+\r
+ "\1\uffff\1\24\4\uffff\1\24\2\uffff\1\24\1\uffff\12\56\1\uffff"+\r
+ "\1\24\1\uffff\1\24\1\uffff\1\24\1\uffff\32\24\3\uffff\35\24"+\r
+ "\3\uffff\uff82\24"\r
+ };\r
+\r
+ static final short[] DFA18_eot = DFA.unpackEncodedString(DFA18_eotS);\r
+ static final short[] DFA18_eof = DFA.unpackEncodedString(DFA18_eofS);\r
+ static final char[] DFA18_min = DFA.unpackEncodedStringToUnsignedChars(DFA18_minS);\r
+ static final char[] DFA18_max = DFA.unpackEncodedStringToUnsignedChars(DFA18_maxS);\r
+ static final short[] DFA18_accept = DFA.unpackEncodedString(DFA18_acceptS);\r
+ static final short[] DFA18_special = DFA.unpackEncodedString(DFA18_specialS);\r
+ static final short[][] DFA18_transition;\r
+\r
+ static {\r
+ int numStates = DFA18_transitionS.length;\r
+ DFA18_transition = new short[numStates][];\r
+ for (int i=0; i<numStates; i++) {\r
+ DFA18_transition[i] = DFA.unpackEncodedString(DFA18_transitionS[i]);\r
+ }\r
+ }\r
+\r
+ class DFA18 extends DFA {\r
+\r
+ public DFA18(BaseRecognizer recognizer) {\r
+ this.recognizer = recognizer;\r
+ this.decisionNumber = 18;\r
+ this.eot = DFA18_eot;\r
+ this.eof = DFA18_eof;\r
+ this.min = DFA18_min;\r
+ this.max = DFA18_max;\r
+ this.accept = DFA18_accept;\r
+ this.special = DFA18_special;\r
+ this.transition = DFA18_transition;\r
+ }\r
+ public String getDescription() {\r
+ return "1:1: Tokens : ( T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | LineComment | LineBreak | String | Integer | Double | Comma | Colon | QName | WhiteSpaces );";\r
+ }\r
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {\r
+ IntStream input = _input;\r
+ int _s = s;\r
+ switch ( s ) {\r
+ case 0 : \r
+ int LA18_25 = input.LA(1);\r
+\r
+ s = -1;\r
+ if ( ((LA18_25>='\u0000' && LA18_25<='\b')||(LA18_25>='\u000B' && LA18_25<='\f')||(LA18_25>='\u000E' && LA18_25<='\u001F')||LA18_25=='!'||LA18_25=='$'||LA18_25=='&'||LA18_25=='+'||LA18_25=='.'||(LA18_25>='0' && LA18_25<='9')||LA18_25==';'||LA18_25=='='||LA18_25=='?'||(LA18_25>='A' && LA18_25<='Z')||(LA18_25>='^' && LA18_25<='z')||(LA18_25>='~' && LA18_25<='\uFFFF')) ) {s = 20;}\r
+\r
+ else s = 37;\r
+\r
+ if ( s>=0 ) return s;\r
+ break;\r
+ case 1 : \r
+ int LA18_36 = input.LA(1);\r
+\r
+ s = -1;\r
+ if ( ((LA18_36>='0' && LA18_36<='9')) ) {s = 36;}\r
+\r
+ else if ( (LA18_36=='.') ) {s = 34;}\r
+\r
+ else if ( (LA18_36=='E'||LA18_36=='e') ) {s = 35;}\r
+\r
+ else if ( ((LA18_36>='\u0000' && LA18_36<='\b')||(LA18_36>='\u000B' && LA18_36<='\f')||(LA18_36>='\u000E' && LA18_36<='\u001F')||LA18_36=='!'||LA18_36=='$'||LA18_36=='&'||LA18_36=='+'||LA18_36==';'||LA18_36=='='||LA18_36=='?'||(LA18_36>='A' && LA18_36<='D')||(LA18_36>='F' && LA18_36<='Z')||(LA18_36>='^' && LA18_36<='d')||(LA18_36>='f' && LA18_36<='z')||(LA18_36>='~' && LA18_36<='\uFFFF')) ) {s = 20;}\r
+\r
+ else s = 33;\r
+\r
+ if ( s>=0 ) return s;\r
+ break;\r
+ case 2 : \r
+ int LA18_17 = input.LA(1);\r
+\r
+ s = -1;\r
+ if ( (LA18_17=='.') ) {s = 34;}\r
+\r
+ else if ( ((LA18_17>='0' && LA18_17<='9')) ) {s = 36;}\r
+\r
+ else if ( (LA18_17=='E'||LA18_17=='e') ) {s = 35;}\r
+\r
+ else if ( ((LA18_17>='\u0000' && LA18_17<='\b')||(LA18_17>='\u000B' && LA18_17<='\f')||(LA18_17>='\u000E' && LA18_17<='\u001F')||LA18_17=='!'||LA18_17=='$'||LA18_17=='&'||LA18_17=='+'||LA18_17==';'||LA18_17=='='||LA18_17=='?'||(LA18_17>='A' && LA18_17<='D')||(LA18_17>='F' && LA18_17<='Z')||(LA18_17>='^' && LA18_17<='d')||(LA18_17>='f' && LA18_17<='z')||(LA18_17>='~' && LA18_17<='\uFFFF')) ) {s = 20;}\r
+\r
+ else s = 33;\r
+\r
+ if ( s>=0 ) return s;\r
+ break;\r
+ case 3 : \r
+ int LA18_0 = input.LA(1);\r
+\r
+ s = -1;\r
+ if ( (LA18_0=='/') ) {s = 1;}\r
+\r
+ else if ( (LA18_0=='@') ) {s = 2;}\r
+\r
+ else if ( (LA18_0=='[') ) {s = 3;}\r
+\r
+ else if ( (LA18_0==']') ) {s = 4;}\r
+\r
+ else if ( (LA18_0=='=') ) {s = 5;}\r
+\r
+ else if ( (LA18_0=='!') ) {s = 6;}\r
+\r
+ else if ( (LA18_0=='>') ) {s = 7;}\r
+\r
+ else if ( (LA18_0=='<') ) {s = 8;}\r
+\r
+ else if ( (LA18_0=='~') ) {s = 9;}\r
+\r
+ else if ( (LA18_0=='(') ) {s = 10;}\r
+\r
+ else if ( (LA18_0==')') ) {s = 11;}\r
+\r
+ else if ( (LA18_0=='#') ) {s = 12;}\r
+\r
+ else if ( (LA18_0=='\n'||LA18_0=='\r') ) {s = 13;}\r
+\r
+ else if ( (LA18_0=='\"') ) {s = 14;}\r
+\r
+ else if ( (LA18_0=='-') ) {s = 15;}\r
+\r
+ else if ( (LA18_0=='0') ) {s = 16;}\r
+\r
+ else if ( ((LA18_0>='1' && LA18_0<='9')) ) {s = 17;}\r
+\r
+ else if ( (LA18_0==',') ) {s = 18;}\r
+\r
+ else if ( (LA18_0==':') ) {s = 19;}\r
+\r
+ else if ( ((LA18_0>='\u0000' && LA18_0<='\b')||(LA18_0>='\u000B' && LA18_0<='\f')||(LA18_0>='\u000E' && LA18_0<='\u001F')||LA18_0=='$'||LA18_0=='&'||LA18_0=='+'||LA18_0==';'||LA18_0=='?'||(LA18_0>='A' && LA18_0<='Z')||(LA18_0>='^' && LA18_0<='z')||(LA18_0>='\u007F' && LA18_0<='\uFFFF')) ) {s = 20;}\r
+\r
+ else if ( (LA18_0=='\t'||LA18_0==' ') ) {s = 21;}\r
+\r
+ if ( s>=0 ) return s;\r
+ break;\r
+ case 4 : \r
+ int LA18_43 = input.LA(1);\r
+\r
+ s = -1;\r
+ if ( ((LA18_43>='\u0000' && LA18_43<='\b')||(LA18_43>='\u000B' && LA18_43<='\f')||(LA18_43>='\u000E' && LA18_43<='\u001F')||LA18_43=='!'||LA18_43=='$'||LA18_43=='&'||LA18_43=='+'||LA18_43=='.'||LA18_43==';'||LA18_43=='='||LA18_43=='?'||(LA18_43>='A' && LA18_43<='Z')||(LA18_43>='^' && LA18_43<='z')||(LA18_43>='~' && LA18_43<='\uFFFF')) ) {s = 20;}\r
+\r
+ else if ( ((LA18_43>='0' && LA18_43<='9')) ) {s = 43;}\r
+\r
+ else s = 39;\r
+\r
+ if ( s>=0 ) return s;\r
+ break;\r
+ case 5 : \r
+ int LA18_34 = input.LA(1);\r
+\r
+ s = -1;\r
+ if ( ((LA18_34>='0' && LA18_34<='9')) ) {s = 41;}\r
+\r
+ else if ( ((LA18_34>='\u0000' && LA18_34<='\b')||(LA18_34>='\u000B' && LA18_34<='\f')||(LA18_34>='\u000E' && LA18_34<='\u001F')||LA18_34=='!'||LA18_34=='$'||LA18_34=='&'||LA18_34=='+'||LA18_34==';'||LA18_34=='='||LA18_34=='?'||(LA18_34>='A' && LA18_34<='Z')||(LA18_34>='^' && LA18_34<='z')||(LA18_34>='~' && LA18_34<='\uFFFF')) ) {s = 20;}\r
+\r
+ if ( s>=0 ) return s;\r
+ break;\r
+ case 6 : \r
+ int LA18_46 = input.LA(1);\r
+\r
+ s = -1;\r
+ if ( ((LA18_46>='\u0000' && LA18_46<='\b')||(LA18_46>='\u000B' && LA18_46<='\f')||(LA18_46>='\u000E' && LA18_46<='\u001F')||LA18_46=='!'||LA18_46=='$'||LA18_46=='&'||LA18_46=='+'||LA18_46=='.'||LA18_46==';'||LA18_46=='='||LA18_46=='?'||(LA18_46>='A' && LA18_46<='Z')||(LA18_46>='^' && LA18_46<='z')||(LA18_46>='~' && LA18_46<='\uFFFF')) ) {s = 20;}\r
+\r
+ else if ( ((LA18_46>='0' && LA18_46<='9')) ) {s = 46;}\r
+\r
+ else s = 39;\r
+\r
+ if ( s>=0 ) return s;\r
+ break;\r
+ case 7 : \r
+ int LA18_16 = input.LA(1);\r
+\r
+ s = -1;\r
+ if ( (LA18_16=='.') ) {s = 34;}\r
+\r
+ else if ( (LA18_16=='E'||LA18_16=='e') ) {s = 35;}\r
+\r
+ else if ( ((LA18_16>='\u0000' && LA18_16<='\b')||(LA18_16>='\u000B' && LA18_16<='\f')||(LA18_16>='\u000E' && LA18_16<='\u001F')||LA18_16=='!'||LA18_16=='$'||LA18_16=='&'||LA18_16=='+'||(LA18_16>='0' && LA18_16<='9')||LA18_16==';'||LA18_16=='='||LA18_16=='?'||(LA18_16>='A' && LA18_16<='D')||(LA18_16>='F' && LA18_16<='Z')||(LA18_16>='^' && LA18_16<='d')||(LA18_16>='f' && LA18_16<='z')||(LA18_16>='~' && LA18_16<='\uFFFF')) ) {s = 20;}\r
+\r
+ else s = 33;\r
+\r
+ if ( s>=0 ) return s;\r
+ break;\r
+ case 8 : \r
+ int LA18_5 = input.LA(1);\r
+\r
+ s = -1;\r
+ if ( ((LA18_5>='\u0000' && LA18_5<='\b')||(LA18_5>='\u000B' && LA18_5<='\f')||(LA18_5>='\u000E' && LA18_5<='\u001F')||LA18_5=='!'||LA18_5=='$'||LA18_5=='&'||LA18_5=='+'||LA18_5=='.'||(LA18_5>='0' && LA18_5<='9')||LA18_5==';'||LA18_5=='='||LA18_5=='?'||(LA18_5>='A' && LA18_5<='Z')||(LA18_5>='^' && LA18_5<='z')||(LA18_5>='~' && LA18_5<='\uFFFF')) ) {s = 20;}\r
+\r
+ else s = 24;\r
+\r
+ if ( s>=0 ) return s;\r
+ break;\r
+ case 9 : \r
+ int LA18_41 = input.LA(1);\r
+\r
+ s = -1;\r
+ if ( ((LA18_41>='\u0000' && LA18_41<='\b')||(LA18_41>='\u000B' && LA18_41<='\f')||(LA18_41>='\u000E' && LA18_41<='\u001F')||LA18_41=='!'||LA18_41=='$'||LA18_41=='&'||LA18_41=='+'||LA18_41=='.'||LA18_41==';'||LA18_41=='='||LA18_41=='?'||(LA18_41>='A' && LA18_41<='D')||(LA18_41>='F' && LA18_41<='Z')||(LA18_41>='^' && LA18_41<='d')||(LA18_41>='f' && LA18_41<='z')||(LA18_41>='~' && LA18_41<='\uFFFF')) ) {s = 20;}\r
+\r
+ else if ( (LA18_41=='E'||LA18_41=='e') ) {s = 44;}\r
+\r
+ else if ( ((LA18_41>='0' && LA18_41<='9')) ) {s = 41;}\r
+\r
+ else s = 39;\r
+\r
+ if ( s>=0 ) return s;\r
+ break;\r
+ case 10 : \r
+ int LA18_30 = input.LA(1);\r
+\r
+ s = -1;\r
+ if ( ((LA18_30>='\u0000' && LA18_30<='\b')||(LA18_30>='\u000B' && LA18_30<='\f')||(LA18_30>='\u000E' && LA18_30<='\u001F')||LA18_30=='!'||LA18_30=='$'||LA18_30=='&'||LA18_30=='+'||LA18_30=='.'||(LA18_30>='0' && LA18_30<='9')||LA18_30==';'||LA18_30=='='||LA18_30=='?'||(LA18_30>='A' && LA18_30<='Z')||(LA18_30>='^' && LA18_30<='z')||(LA18_30>='~' && LA18_30<='\uFFFF')) ) {s = 20;}\r
+\r
+ else s = 38;\r
+\r
+ if ( s>=0 ) return s;\r
+ break;\r
+ }\r
+ NoViableAltException nvae =\r
+ new NoViableAltException(getDescription(), 18, _s, input);\r
+ error(nvae);\r
+ throw nvae;\r
+ }\r
+ }\r
+ \r
+\r
+}
\ No newline at end of file
--- /dev/null
+// $ANTLR 3.1.3 Mar 17, 2009 19:23:44 XPath.g 2009-09-29 14:52:03\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 | absolutePath );\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
+ XPathParser.absolutePath_return absolutePath3 = null;\r
+\r
+\r
+\r
+ try {\r
+ // XPath.g:169:3: ( relativePath | absolutePath )\r
+ int alt1=2;\r
+ int LA1_0 = input.LA(1);\r
+\r
+ if ( (LA1_0==QName||LA1_0==36) ) {\r
+ alt1=1;\r
+ }\r
+ else if ( (LA1_0==34) ) {\r
+ alt1=2;\r
+ }\r
+ else {\r
+ if (state.backtracking>0) {state.failed=true; return retval;}\r
+ NoViableAltException nvae =\r
+ new NoViableAltException("", 1, 0, input);\r
+\r
+ throw nvae;\r
+ }\r
+ switch (alt1) {\r
+ case 1 :\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
+ break;\r
+ case 2 :\r
+ // XPath.g:170:5: absolutePath\r
+ {\r
+ root_0 = (Object)adaptor.nil();\r
+\r
+ pushFollow(FOLLOW_absolutePath_in_locationExpr652);\r
+ absolutePath3=absolutePath();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) adaptor.addChild(root_0, absolutePath3.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 "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:173:1: fragment relativePath : ( step -> ^( STEP step ) | ( step '/' )=> step '/' relativePath -> ^( STEP AXIS[\"PC\"] step relativePath ) | ( step '//' )=> 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_literal6=null;\r
+ Token string_literal9=null;\r
+ XPathParser.step_return step4 = null;\r
+\r
+ XPathParser.step_return step5 = null;\r
+\r
+ XPathParser.relativePath_return relativePath7 = null;\r
+\r
+ XPathParser.step_return step8 = null;\r
+\r
+ XPathParser.relativePath_return relativePath10 = null;\r
+\r
+\r
+ Object char_literal6_tree=null;\r
+ Object string_literal9_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:175:3: ( step -> ^( STEP step ) | ( step '/' )=> step '/' relativePath -> ^( STEP AXIS[\"PC\"] step relativePath ) | ( step '//' )=> step '//' relativePath -> ^( STEP AXIS[\"AD\"] step relativePath ) )\r
+ int alt2=3;\r
+ int LA2_0 = input.LA(1);\r
+\r
+ if ( (LA2_0==36) ) {\r
+ int LA2_1 = input.LA(2);\r
+\r
+ if ( (true) ) {\r
+ alt2=1;\r
+ }\r
+ else if ( (synpred1_XPath()) ) {\r
+ alt2=2;\r
+ }\r
+ else if ( (synpred2_XPath()) ) {\r
+ alt2=3;\r
+ }\r
+ else {\r
+ if (state.backtracking>0) {state.failed=true; return retval;}\r
+ NoViableAltException nvae =\r
+ new NoViableAltException("", 2, 1, input);\r
+\r
+ throw nvae;\r
+ }\r
+ }\r
+ else if ( (LA2_0==QName) ) {\r
+ int LA2_2 = input.LA(2);\r
+\r
+ if ( (true) ) {\r
+ alt2=1;\r
+ }\r
+ else if ( (synpred1_XPath()) ) {\r
+ alt2=2;\r
+ }\r
+ else if ( (synpred2_XPath()) ) {\r
+ alt2=3;\r
+ }\r
+ else {\r
+ if (state.backtracking>0) {state.failed=true; return retval;}\r
+ NoViableAltException nvae =\r
+ new NoViableAltException("", 2, 2, input);\r
+\r
+ throw nvae;\r
+ }\r
+ }\r
+ else {\r
+ if (state.backtracking>0) {state.failed=true; return retval;}\r
+ NoViableAltException nvae =\r
+ new NoViableAltException("", 2, 0, input);\r
+\r
+ throw nvae;\r
+ }\r
+ switch (alt2) {\r
+ case 1 :\r
+ // XPath.g:175:5: step\r
+ {\r
+ pushFollow(FOLLOW_step_in_relativePath669);\r
+ step4=step();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) stream_step.add(step4.getTree());\r
+\r
+\r
+ // AST REWRITE\r
+ // elements: 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
+ // 176:3: -> ^( STEP step )\r
+ {\r
+ // XPath.g:176:6: ^( STEP step )\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
+\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:177:5: ( step '/' )=> step '/' relativePath\r
+ {\r
+ pushFollow(FOLLOW_step_in_relativePath694);\r
+ step5=step();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) stream_step.add(step5.getTree());\r
+ char_literal6=(Token)match(input,34,FOLLOW_34_in_relativePath696); if (state.failed) return retval; \r
+ if ( state.backtracking==0 ) stream_34.add(char_literal6);\r
+\r
+ pushFollow(FOLLOW_relativePath_in_relativePath698);\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
+ // 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
+ // 178:3: -> ^( STEP AXIS[\"PC\"] step relativePath )\r
+ {\r
+ // XPath.g:178:6: ^( 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
+ adaptor.addChild(root_1, stream_relativePath.nextTree());\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:179:5: ( step '//' )=> step '//' relativePath\r
+ {\r
+ pushFollow(FOLLOW_step_in_relativePath729);\r
+ step8=step();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) stream_step.add(step8.getTree());\r
+ string_literal9=(Token)match(input,35,FOLLOW_35_in_relativePath731); if (state.failed) return retval; \r
+ if ( state.backtracking==0 ) stream_35.add(string_literal9);\r
+\r
+ pushFollow(FOLLOW_relativePath_in_relativePath733);\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
+ // 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
+ // 180:3: -> ^( STEP AXIS[\"AD\"] step relativePath )\r
+ {\r
+ // XPath.g:180:6: ^( 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
+ adaptor.addChild(root_1, stream_relativePath.nextTree());\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 absolutePath_return extends ParserRuleReturnScope {\r
+ Object tree;\r
+ public Object getTree() { return tree; }\r
+ };\r
+\r
+ // $ANTLR start "absolutePath"\r
+ // XPath.g:183:1: fragment absolutePath : '/' relativePath -> ^( STEP AXIS[\"PC\"] NAME[\"_root\"] relativePath ) ;\r
+ public final XPathParser.absolutePath_return absolutePath() throws RecognitionException {\r
+ XPathParser.absolutePath_return retval = new XPathParser.absolutePath_return();\r
+ retval.start = input.LT(1);\r
+\r
+ Object root_0 = null;\r
+\r
+ Token char_literal11=null;\r
+ XPathParser.relativePath_return relativePath12 = null;\r
+\r
+\r
+ Object char_literal11_tree=null;\r
+ RewriteRuleTokenStream stream_34=new RewriteRuleTokenStream(adaptor,"token 34");\r
+ RewriteRuleSubtreeStream stream_relativePath=new RewriteRuleSubtreeStream(adaptor,"rule relativePath");\r
+ try {\r
+ // XPath.g:185:3: ( '/' relativePath -> ^( STEP AXIS[\"PC\"] NAME[\"_root\"] relativePath ) )\r
+ // XPath.g:185:5: '/' relativePath\r
+ {\r
+ char_literal11=(Token)match(input,34,FOLLOW_34_in_absolutePath764); if (state.failed) return retval; \r
+ if ( state.backtracking==0 ) stream_34.add(char_literal11);\r
+\r
+ pushFollow(FOLLOW_relativePath_in_absolutePath766);\r
+ relativePath12=relativePath();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) stream_relativePath.add(relativePath12.getTree());\r
+\r
+\r
+ // AST REWRITE\r
+ // elements: 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
+ // 186:3: -> ^( STEP AXIS[\"PC\"] NAME[\"_root\"] relativePath )\r
+ {\r
+ // XPath.g:186:6: ^( STEP AXIS[\"PC\"] NAME[\"_root\"] 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, (Object)adaptor.create(NAME, "_root"));\r
+ adaptor.addChild(root_1, stream_relativePath.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 "absolutePath"\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:189: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 nodeTest13 = null;\r
+\r
+ XPathParser.predicate_return predicate14 = 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:191:3: ( nodeTest ( predicate )* -> NAME[$nodeTest.text] ( predicate )* )\r
+ // XPath.g:191:5: nodeTest ( predicate )*\r
+ {\r
+ pushFollow(FOLLOW_nodeTest_in_step800);\r
+ nodeTest13=nodeTest();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) stream_nodeTest.add(nodeTest13.getTree());\r
+ // XPath.g:191:14: ( predicate )*\r
+ loop3:\r
+ do {\r
+ int alt3=2;\r
+ int LA3_0 = input.LA(1);\r
+\r
+ if ( (LA3_0==37) ) {\r
+ alt3=1;\r
+ }\r
+\r
+\r
+ switch (alt3) {\r
+ case 1 :\r
+ // XPath.g:191:14: predicate\r
+ {\r
+ pushFollow(FOLLOW_predicate_in_step802);\r
+ predicate14=predicate();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) stream_predicate.add(predicate14.getTree());\r
+\r
+ }\r
+ break;\r
+\r
+ default :\r
+ break loop3;\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
+ // 191:25: -> NAME[$nodeTest.text] ( predicate )*\r
+ {\r
+ adaptor.addChild(root_0, (Object)adaptor.create(NAME, (nodeTest13!=null?input.toString(nodeTest13.start,nodeTest13.stop):null)));\r
+ // XPath.g:191: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:195: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_literal15=null;\r
+ Token QName16=null;\r
+ Token char_literal17=null;\r
+ Token QName18=null;\r
+\r
+ Object char_literal15_tree=null;\r
+ Object QName16_tree=null;\r
+ Object char_literal17_tree=null;\r
+ Object QName18_tree=null;\r
+\r
+ try {\r
+ // XPath.g:197:3: ( ( '@' )? ( QName ':' )? QName )\r
+ // XPath.g:197:5: ( '@' )? ( QName ':' )? QName\r
+ {\r
+ root_0 = (Object)adaptor.nil();\r
+\r
+ // XPath.g:197:5: ( '@' )?\r
+ int alt4=2;\r
+ int LA4_0 = input.LA(1);\r
+\r
+ if ( (LA4_0==36) ) {\r
+ alt4=1;\r
+ }\r
+ switch (alt4) {\r
+ case 1 :\r
+ // XPath.g:197:5: '@'\r
+ {\r
+ char_literal15=(Token)match(input,36,FOLLOW_36_in_nodeTest830); 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
+ // XPath.g:197:10: ( QName ':' )?\r
+ int alt5=2;\r
+ int LA5_0 = input.LA(1);\r
+\r
+ if ( (LA5_0==QName) ) {\r
+ int LA5_1 = input.LA(2);\r
+\r
+ if ( (LA5_1==Colon) ) {\r
+ alt5=1;\r
+ }\r
+ }\r
+ switch (alt5) {\r
+ case 1 :\r
+ // XPath.g:197:11: QName ':'\r
+ {\r
+ QName16=(Token)match(input,QName,FOLLOW_QName_in_nodeTest834); 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
+ char_literal17=(Token)match(input,Colon,FOLLOW_Colon_in_nodeTest836); if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) {\r
+ char_literal17_tree = (Object)adaptor.create(char_literal17);\r
+ adaptor.addChild(root_0, char_literal17_tree);\r
+ }\r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+\r
+ QName18=(Token)match(input,QName,FOLLOW_QName_in_nodeTest840); if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) {\r
+ QName18_tree = (Object)adaptor.create(QName18);\r
+ adaptor.addChild(root_0, QName18_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:200: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_literal19=null;\r
+ Token char_literal21=null;\r
+ XPathParser.expr_return expr20 = null;\r
+\r
+\r
+ Object char_literal19_tree=null;\r
+ Object char_literal21_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:202:3: ( '[' expr ']' -> ^( PREDICATE expr ) )\r
+ // XPath.g:202:5: '[' expr ']'\r
+ {\r
+ char_literal19=(Token)match(input,37,FOLLOW_37_in_predicate858); if (state.failed) return retval; \r
+ if ( state.backtracking==0 ) stream_37.add(char_literal19);\r
+\r
+ pushFollow(FOLLOW_expr_in_predicate860);\r
+ expr20=expr();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) stream_expr.add(expr20.getTree());\r
+ char_literal21=(Token)match(input,38,FOLLOW_38_in_predicate862); if (state.failed) return retval; \r
+ if ( state.backtracking==0 ) stream_38.add(char_literal21);\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
+ // 203:3: -> ^( PREDICATE expr )\r
+ {\r
+ // XPath.g:203: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:206: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 comparisonExpr22 = null;\r
+\r
+\r
+\r
+ try {\r
+ // XPath.g:207:3: ( comparisonExpr )\r
+ // XPath.g:207:5: comparisonExpr\r
+ {\r
+ root_0 = (Object)adaptor.nil();\r
+\r
+ pushFollow(FOLLOW_comparisonExpr_in_expr885);\r
+ comparisonExpr22=comparisonExpr();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) adaptor.addChild(root_0, comparisonExpr22.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:210: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_literal25=null;\r
+ Token string_literal28=null;\r
+ Token char_literal31=null;\r
+ Token string_literal34=null;\r
+ Token char_literal37=null;\r
+ Token string_literal40=null;\r
+ Token string_literal43=null;\r
+ XPathParser.pathExpr_return pathExpr23 = null;\r
+\r
+ XPathParser.pathExpr_return pathExpr24 = null;\r
+\r
+ XPathParser.pathExpr_return pathExpr26 = null;\r
+\r
+ XPathParser.pathExpr_return pathExpr27 = null;\r
+\r
+ XPathParser.pathExpr_return pathExpr29 = null;\r
+\r
+ XPathParser.pathExpr_return pathExpr30 = null;\r
+\r
+ XPathParser.pathExpr_return pathExpr32 = null;\r
+\r
+ XPathParser.pathExpr_return pathExpr33 = null;\r
+\r
+ XPathParser.pathExpr_return pathExpr35 = null;\r
+\r
+ XPathParser.pathExpr_return pathExpr36 = null;\r
+\r
+ XPathParser.pathExpr_return pathExpr38 = null;\r
+\r
+ XPathParser.pathExpr_return pathExpr39 = null;\r
+\r
+ XPathParser.pathExpr_return pathExpr41 = null;\r
+\r
+ XPathParser.pathExpr_return pathExpr42 = null;\r
+\r
+ XPathParser.pathExpr_return pathExpr44 = null;\r
+\r
+\r
+ Object char_literal25_tree=null;\r
+ Object string_literal28_tree=null;\r
+ Object char_literal31_tree=null;\r
+ Object string_literal34_tree=null;\r
+ Object char_literal37_tree=null;\r
+ Object string_literal40_tree=null;\r
+ Object string_literal43_tree=null;\r
+\r
+ try {\r
+ // XPath.g:212: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 alt6=8;\r
+ alt6 = dfa6.predict(input);\r
+ switch (alt6) {\r
+ case 1 :\r
+ // XPath.g:212:5: pathExpr\r
+ {\r
+ root_0 = (Object)adaptor.nil();\r
+\r
+ pushFollow(FOLLOW_pathExpr_in_comparisonExpr900);\r
+ pathExpr23=pathExpr();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr23.getTree());\r
+\r
+ }\r
+ break;\r
+ case 2 :\r
+ // XPath.g:213:5: ( pathExpr '=' )=> pathExpr '=' pathExpr\r
+ {\r
+ root_0 = (Object)adaptor.nil();\r
+\r
+ pushFollow(FOLLOW_pathExpr_in_comparisonExpr914);\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
+ char_literal25=(Token)match(input,39,FOLLOW_39_in_comparisonExpr916); if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) {\r
+ char_literal25_tree = (Object)adaptor.create(char_literal25);\r
+ adaptor.addChild(root_0, char_literal25_tree);\r
+ }\r
+ pushFollow(FOLLOW_pathExpr_in_comparisonExpr918);\r
+ pathExpr26=pathExpr();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr26.getTree());\r
+\r
+ }\r
+ break;\r
+ case 3 :\r
+ // XPath.g:214:5: ( pathExpr '!=' )=> pathExpr '!=' pathExpr\r
+ {\r
+ root_0 = (Object)adaptor.nil();\r
+\r
+ pushFollow(FOLLOW_pathExpr_in_comparisonExpr932);\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
+ string_literal28=(Token)match(input,40,FOLLOW_40_in_comparisonExpr934); if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) {\r
+ string_literal28_tree = (Object)adaptor.create(string_literal28);\r
+ adaptor.addChild(root_0, string_literal28_tree);\r
+ }\r
+ pushFollow(FOLLOW_pathExpr_in_comparisonExpr936);\r
+ pathExpr29=pathExpr();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr29.getTree());\r
+\r
+ }\r
+ break;\r
+ case 4 :\r
+ // XPath.g:215:5: ( pathExpr '>' )=> pathExpr '>' pathExpr\r
+ {\r
+ root_0 = (Object)adaptor.nil();\r
+\r
+ pushFollow(FOLLOW_pathExpr_in_comparisonExpr950);\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
+ char_literal31=(Token)match(input,41,FOLLOW_41_in_comparisonExpr952); if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) {\r
+ char_literal31_tree = (Object)adaptor.create(char_literal31);\r
+ adaptor.addChild(root_0, char_literal31_tree);\r
+ }\r
+ pushFollow(FOLLOW_pathExpr_in_comparisonExpr954);\r
+ pathExpr32=pathExpr();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr32.getTree());\r
+\r
+ }\r
+ break;\r
+ case 5 :\r
+ // XPath.g:216:5: ( pathExpr '>=' )=> pathExpr '>=' pathExpr\r
+ {\r
+ root_0 = (Object)adaptor.nil();\r
+\r
+ pushFollow(FOLLOW_pathExpr_in_comparisonExpr968);\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
+ string_literal34=(Token)match(input,42,FOLLOW_42_in_comparisonExpr970); if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) {\r
+ string_literal34_tree = (Object)adaptor.create(string_literal34);\r
+ adaptor.addChild(root_0, string_literal34_tree);\r
+ }\r
+ pushFollow(FOLLOW_pathExpr_in_comparisonExpr972);\r
+ pathExpr35=pathExpr();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr35.getTree());\r
+\r
+ }\r
+ break;\r
+ case 6 :\r
+ // XPath.g:217:5: ( pathExpr '<' )=> pathExpr '<' pathExpr\r
+ {\r
+ root_0 = (Object)adaptor.nil();\r
+\r
+ pushFollow(FOLLOW_pathExpr_in_comparisonExpr986);\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
+ char_literal37=(Token)match(input,43,FOLLOW_43_in_comparisonExpr988); if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) {\r
+ char_literal37_tree = (Object)adaptor.create(char_literal37);\r
+ adaptor.addChild(root_0, char_literal37_tree);\r
+ }\r
+ pushFollow(FOLLOW_pathExpr_in_comparisonExpr990);\r
+ pathExpr38=pathExpr();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr38.getTree());\r
+\r
+ }\r
+ break;\r
+ case 7 :\r
+ // XPath.g:218:5: ( pathExpr '<=' )=> pathExpr '<=' pathExpr\r
+ {\r
+ root_0 = (Object)adaptor.nil();\r
+\r
+ pushFollow(FOLLOW_pathExpr_in_comparisonExpr1004);\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
+ string_literal40=(Token)match(input,44,FOLLOW_44_in_comparisonExpr1006); if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) {\r
+ string_literal40_tree = (Object)adaptor.create(string_literal40);\r
+ adaptor.addChild(root_0, string_literal40_tree);\r
+ }\r
+ pushFollow(FOLLOW_pathExpr_in_comparisonExpr1008);\r
+ pathExpr41=pathExpr();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr41.getTree());\r
+\r
+ }\r
+ break;\r
+ case 8 :\r
+ // XPath.g:219:5: ( pathExpr '~=' )=> pathExpr '~=' pathExpr\r
+ {\r
+ root_0 = (Object)adaptor.nil();\r
+\r
+ pushFollow(FOLLOW_pathExpr_in_comparisonExpr1022);\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
+ string_literal43=(Token)match(input,45,FOLLOW_45_in_comparisonExpr1024); if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) {\r
+ string_literal43_tree = (Object)adaptor.create(string_literal43);\r
+ adaptor.addChild(root_0, string_literal43_tree);\r
+ }\r
+ pushFollow(FOLLOW_pathExpr_in_comparisonExpr1026);\r
+ pathExpr44=pathExpr();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) adaptor.addChild(root_0, pathExpr44.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:223: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 locationExpr45 = null;\r
+\r
+ XPathParser.primaryExpr_return primaryExpr46 = null;\r
+\r
+\r
+\r
+ try {\r
+ // XPath.g:225:3: ( locationExpr | primaryExpr )\r
+ int alt7=2;\r
+ switch ( input.LA(1) ) {\r
+ case 34:\r
+ case 36:\r
+ {\r
+ alt7=1;\r
+ }\r
+ break;\r
+ case QName:\r
+ {\r
+ int LA7_2 = input.LA(2);\r
+\r
+ if ( ((LA7_2>=Comma && LA7_2<=Colon)||(LA7_2>=34 && LA7_2<=35)||(LA7_2>=37 && LA7_2<=45)||LA7_2==47) ) {\r
+ alt7=1;\r
+ }\r
+ else if ( (LA7_2==46) ) {\r
+ alt7=2;\r
+ }\r
+ else {\r
+ if (state.backtracking>0) {state.failed=true; return retval;}\r
+ NoViableAltException nvae =\r
+ new NoViableAltException("", 7, 2, input);\r
+\r
+ throw nvae;\r
+ }\r
+ }\r
+ break;\r
+ case String:\r
+ case Integer:\r
+ case Double:\r
+ {\r
+ alt7=2;\r
+ }\r
+ break;\r
+ default:\r
+ if (state.backtracking>0) {state.failed=true; return retval;}\r
+ NoViableAltException nvae =\r
+ new NoViableAltException("", 7, 0, input);\r
+\r
+ throw nvae;\r
+ }\r
+\r
+ switch (alt7) {\r
+ case 1 :\r
+ // XPath.g:225:5: locationExpr\r
+ {\r
+ root_0 = (Object)adaptor.nil();\r
+\r
+ pushFollow(FOLLOW_locationExpr_in_pathExpr1042);\r
+ locationExpr45=locationExpr();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) adaptor.addChild(root_0, locationExpr45.getTree());\r
+\r
+ }\r
+ break;\r
+ case 2 :\r
+ // XPath.g:226:5: primaryExpr\r
+ {\r
+ root_0 = (Object)adaptor.nil();\r
+\r
+ pushFollow(FOLLOW_primaryExpr_in_pathExpr1048);\r
+ primaryExpr46=primaryExpr();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) adaptor.addChild(root_0, primaryExpr46.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:229: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 String47=null;\r
+ Token Integer48=null;\r
+ Token Double49=null;\r
+ XPathParser.functionCall_return functionCall50 = null;\r
+\r
+\r
+ Object String47_tree=null;\r
+ Object Integer48_tree=null;\r
+ Object Double49_tree=null;\r
+\r
+ try {\r
+ // XPath.g:231:3: ( String | Integer | Double | functionCall )\r
+ int alt8=4;\r
+ switch ( input.LA(1) ) {\r
+ case String:\r
+ {\r
+ alt8=1;\r
+ }\r
+ break;\r
+ case Integer:\r
+ {\r
+ alt8=2;\r
+ }\r
+ break;\r
+ case Double:\r
+ {\r
+ alt8=3;\r
+ }\r
+ break;\r
+ case QName:\r
+ {\r
+ alt8=4;\r
+ }\r
+ break;\r
+ default:\r
+ if (state.backtracking>0) {state.failed=true; return retval;}\r
+ NoViableAltException nvae =\r
+ new NoViableAltException("", 8, 0, input);\r
+\r
+ throw nvae;\r
+ }\r
+\r
+ switch (alt8) {\r
+ case 1 :\r
+ // XPath.g:231:5: String\r
+ {\r
+ root_0 = (Object)adaptor.nil();\r
+\r
+ String47=(Token)match(input,String,FOLLOW_String_in_primaryExpr1067); if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) {\r
+ String47_tree = (Object)adaptor.create(String47);\r
+ adaptor.addChild(root_0, String47_tree);\r
+ }\r
+\r
+ }\r
+ break;\r
+ case 2 :\r
+ // XPath.g:232:5: Integer\r
+ {\r
+ root_0 = (Object)adaptor.nil();\r
+\r
+ Integer48=(Token)match(input,Integer,FOLLOW_Integer_in_primaryExpr1073); if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) {\r
+ Integer48_tree = (Object)adaptor.create(Integer48);\r
+ adaptor.addChild(root_0, Integer48_tree);\r
+ }\r
+\r
+ }\r
+ break;\r
+ case 3 :\r
+ // XPath.g:233:5: Double\r
+ {\r
+ root_0 = (Object)adaptor.nil();\r
+\r
+ Double49=(Token)match(input,Double,FOLLOW_Double_in_primaryExpr1079); if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) {\r
+ Double49_tree = (Object)adaptor.create(Double49);\r
+ adaptor.addChild(root_0, Double49_tree);\r
+ }\r
+\r
+ }\r
+ break;\r
+ case 4 :\r
+ // XPath.g:234:5: functionCall\r
+ {\r
+ root_0 = (Object)adaptor.nil();\r
+\r
+ pushFollow(FOLLOW_functionCall_in_primaryExpr1085);\r
+ functionCall50=functionCall();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) adaptor.addChild(root_0, functionCall50.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:238: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 QName51=null;\r
+ Token char_literal52=null;\r
+ Token char_literal54=null;\r
+ Token char_literal56=null;\r
+ XPathParser.expr_return expr53 = null;\r
+\r
+ XPathParser.expr_return expr55 = null;\r
+\r
+\r
+ Object QName51_tree=null;\r
+ Object char_literal52_tree=null;\r
+ Object char_literal54_tree=null;\r
+ Object char_literal56_tree=null;\r
+\r
+ try {\r
+ // XPath.g:240:3: ( QName '(' ( expr ( ',' expr )* )? ')' )\r
+ // XPath.g:240:5: QName '(' ( expr ( ',' expr )* )? ')'\r
+ {\r
+ root_0 = (Object)adaptor.nil();\r
+\r
+ QName51=(Token)match(input,QName,FOLLOW_QName_in_functionCall1105); if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) {\r
+ QName51_tree = (Object)adaptor.create(QName51);\r
+ adaptor.addChild(root_0, QName51_tree);\r
+ }\r
+ char_literal52=(Token)match(input,46,FOLLOW_46_in_functionCall1107); 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
+ // XPath.g:240:15: ( expr ( ',' expr )* )?\r
+ int alt10=2;\r
+ int LA10_0 = input.LA(1);\r
+\r
+ if ( ((LA10_0>=String && LA10_0<=Integer)||LA10_0==Double||LA10_0==QName||LA10_0==34||LA10_0==36) ) {\r
+ alt10=1;\r
+ }\r
+ switch (alt10) {\r
+ case 1 :\r
+ // XPath.g:240:16: expr ( ',' expr )*\r
+ {\r
+ pushFollow(FOLLOW_expr_in_functionCall1110);\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
+ // XPath.g:240:21: ( ',' expr )*\r
+ loop9:\r
+ do {\r
+ int alt9=2;\r
+ int LA9_0 = input.LA(1);\r
+\r
+ if ( (LA9_0==Comma) ) {\r
+ alt9=1;\r
+ }\r
+\r
+\r
+ switch (alt9) {\r
+ case 1 :\r
+ // XPath.g:240:22: ',' expr\r
+ {\r
+ char_literal54=(Token)match(input,Comma,FOLLOW_Comma_in_functionCall1113); 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
+ pushFollow(FOLLOW_expr_in_functionCall1115);\r
+ expr55=expr();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) adaptor.addChild(root_0, expr55.getTree());\r
+\r
+ }\r
+ break;\r
+\r
+ default :\r
+ break loop9;\r
+ }\r
+ } while (true);\r
+\r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+\r
+ char_literal56=(Token)match(input,47,FOLLOW_47_in_functionCall1121); if (state.failed) return retval;\r
+ if ( state.backtracking==0 ) {\r
+ char_literal56_tree = (Object)adaptor.create(char_literal56);\r
+ adaptor.addChild(root_0, char_literal56_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:177:5: ( step '/' )\r
+ // XPath.g:177:6: step '/'\r
+ {\r
+ pushFollow(FOLLOW_step_in_synpred1_XPath687);\r
+ step();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return ;\r
+ match(input,34,FOLLOW_34_in_synpred1_XPath689); 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:179:5: ( step '//' )\r
+ // XPath.g:179:6: step '//'\r
+ {\r
+ pushFollow(FOLLOW_step_in_synpred2_XPath722);\r
+ step();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return ;\r
+ match(input,35,FOLLOW_35_in_synpred2_XPath724); 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:213:5: ( pathExpr '=' )\r
+ // XPath.g:213:6: pathExpr '='\r
+ {\r
+ pushFollow(FOLLOW_pathExpr_in_synpred3_XPath907);\r
+ pathExpr();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return ;\r
+ match(input,39,FOLLOW_39_in_synpred3_XPath909); 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:214:5: ( pathExpr '!=' )\r
+ // XPath.g:214:6: pathExpr '!='\r
+ {\r
+ pushFollow(FOLLOW_pathExpr_in_synpred4_XPath925);\r
+ pathExpr();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return ;\r
+ match(input,40,FOLLOW_40_in_synpred4_XPath927); 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:215:5: ( pathExpr '>' )\r
+ // XPath.g:215:6: pathExpr '>'\r
+ {\r
+ pushFollow(FOLLOW_pathExpr_in_synpred5_XPath943);\r
+ pathExpr();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return ;\r
+ match(input,41,FOLLOW_41_in_synpred5_XPath945); 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:216:5: ( pathExpr '>=' )\r
+ // XPath.g:216:6: pathExpr '>='\r
+ {\r
+ pushFollow(FOLLOW_pathExpr_in_synpred6_XPath961);\r
+ pathExpr();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return ;\r
+ match(input,42,FOLLOW_42_in_synpred6_XPath963); 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:217:5: ( pathExpr '<' )\r
+ // XPath.g:217:6: pathExpr '<'\r
+ {\r
+ pushFollow(FOLLOW_pathExpr_in_synpred7_XPath979);\r
+ pathExpr();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return ;\r
+ match(input,43,FOLLOW_43_in_synpred7_XPath981); if (state.failed) return ;\r
+\r
+ }\r
+ }\r
+ // $ANTLR end synpred7_XPath\r
+\r
+ // $ANTLR start synpred8_XPath\r
+ public final void synpred8_XPath_fragment() throws RecognitionException { \r
+ // XPath.g:218:5: ( pathExpr '<=' )\r
+ // XPath.g:218:6: pathExpr '<='\r
+ {\r
+ pushFollow(FOLLOW_pathExpr_in_synpred8_XPath997);\r
+ pathExpr();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return ;\r
+ match(input,44,FOLLOW_44_in_synpred8_XPath999); if (state.failed) return ;\r
+\r
+ }\r
+ }\r
+ // $ANTLR end synpred8_XPath\r
+\r
+ // $ANTLR start synpred9_XPath\r
+ public final void synpred9_XPath_fragment() throws RecognitionException { \r
+ // XPath.g:219:5: ( pathExpr '~=' )\r
+ // XPath.g:219:6: pathExpr '~='\r
+ {\r
+ pushFollow(FOLLOW_pathExpr_in_synpred9_XPath1015);\r
+ pathExpr();\r
+\r
+ state._fsp--;\r
+ if (state.failed) return ;\r
+ match(input,45,FOLLOW_45_in_synpred9_XPath1017); if (state.failed) return ;\r
+\r
+ }\r
+ }\r
+ // $ANTLR end synpred9_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 synpred8_XPath() {\r
+ state.backtracking++;\r
+ int start = input.mark();\r
+ try {\r
+ synpred8_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 synpred9_XPath() {\r
+ state.backtracking++;\r
+ int start = input.mark();\r
+ try {\r
+ synpred9_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 DFA6 dfa6 = new DFA6(this);\r
+ static final String DFA6_eotS =\r
+ "\17\uffff";\r
+ static final String DFA6_eofS =\r
+ "\17\uffff";\r
+ static final String DFA6_minS =\r
+ "\1\24\6\0\10\uffff";\r
+ static final String DFA6_maxS =\r
+ "\1\44\6\0\10\uffff";\r
+ static final String DFA6_acceptS =\r
+ "\7\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10";\r
+ static final String DFA6_specialS =\r
+ "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\10\uffff}>";\r
+ static final String[] DFA6_transitionS = {\r
+ "\1\4\1\5\2\uffff\1\6\7\uffff\1\2\1\uffff\1\3\1\uffff\1\1",\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[] DFA6_eot = DFA.unpackEncodedString(DFA6_eotS);\r
+ static final short[] DFA6_eof = DFA.unpackEncodedString(DFA6_eofS);\r
+ static final char[] DFA6_min = DFA.unpackEncodedStringToUnsignedChars(DFA6_minS);\r
+ static final char[] DFA6_max = DFA.unpackEncodedStringToUnsignedChars(DFA6_maxS);\r
+ static final short[] DFA6_accept = DFA.unpackEncodedString(DFA6_acceptS);\r
+ static final short[] DFA6_special = DFA.unpackEncodedString(DFA6_specialS);\r
+ static final short[][] DFA6_transition;\r
+\r
+ static {\r
+ int numStates = DFA6_transitionS.length;\r
+ DFA6_transition = new short[numStates][];\r
+ for (int i=0; i<numStates; i++) {\r
+ DFA6_transition[i] = DFA.unpackEncodedString(DFA6_transitionS[i]);\r
+ }\r
+ }\r
+\r
+ class DFA6 extends DFA {\r
+\r
+ public DFA6(BaseRecognizer recognizer) {\r
+ this.recognizer = recognizer;\r
+ this.decisionNumber = 6;\r
+ this.eot = DFA6_eot;\r
+ this.eof = DFA6_eof;\r
+ this.min = DFA6_min;\r
+ this.max = DFA6_max;\r
+ this.accept = DFA6_accept;\r
+ this.special = DFA6_special;\r
+ this.transition = DFA6_transition;\r
+ }\r
+ public String getDescription() {\r
+ return "210: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 LA6_1 = input.LA(1);\r
+\r
+ \r
+ int index6_1 = input.index();\r
+ input.rewind();\r
+ s = -1;\r
+ if ( (true) ) {s = 7;}\r
+\r
+ else if ( (synpred3_XPath()) ) {s = 8;}\r
+\r
+ else if ( (synpred4_XPath()) ) {s = 9;}\r
+\r
+ else if ( (synpred5_XPath()) ) {s = 10;}\r
+\r
+ else if ( (synpred6_XPath()) ) {s = 11;}\r
+\r
+ else if ( (synpred7_XPath()) ) {s = 12;}\r
+\r
+ else if ( (synpred8_XPath()) ) {s = 13;}\r
+\r
+ else if ( (synpred9_XPath()) ) {s = 14;}\r
+\r
+ \r
+ input.seek(index6_1);\r
+ if ( s>=0 ) return s;\r
+ break;\r
+ case 1 : \r
+ int LA6_2 = input.LA(1);\r
+\r
+ \r
+ int index6_2 = input.index();\r
+ input.rewind();\r
+ s = -1;\r
+ if ( (true) ) {s = 7;}\r
+\r
+ else if ( (synpred3_XPath()) ) {s = 8;}\r
+\r
+ else if ( (synpred4_XPath()) ) {s = 9;}\r
+\r
+ else if ( (synpred5_XPath()) ) {s = 10;}\r
+\r
+ else if ( (synpred6_XPath()) ) {s = 11;}\r
+\r
+ else if ( (synpred7_XPath()) ) {s = 12;}\r
+\r
+ else if ( (synpred8_XPath()) ) {s = 13;}\r
+\r
+ else if ( (synpred9_XPath()) ) {s = 14;}\r
+\r
+ \r
+ input.seek(index6_2);\r
+ if ( s>=0 ) return s;\r
+ break;\r
+ case 2 : \r
+ int LA6_3 = input.LA(1);\r
+\r
+ \r
+ int index6_3 = input.index();\r
+ input.rewind();\r
+ s = -1;\r
+ if ( (true) ) {s = 7;}\r
+\r
+ else if ( (synpred3_XPath()) ) {s = 8;}\r
+\r
+ else if ( (synpred4_XPath()) ) {s = 9;}\r
+\r
+ else if ( (synpred5_XPath()) ) {s = 10;}\r
+\r
+ else if ( (synpred6_XPath()) ) {s = 11;}\r
+\r
+ else if ( (synpred7_XPath()) ) {s = 12;}\r
+\r
+ else if ( (synpred8_XPath()) ) {s = 13;}\r
+\r
+ else if ( (synpred9_XPath()) ) {s = 14;}\r
+\r
+ \r
+ input.seek(index6_3);\r
+ if ( s>=0 ) return s;\r
+ break;\r
+ case 3 : \r
+ int LA6_4 = input.LA(1);\r
+\r
+ \r
+ int index6_4 = input.index();\r
+ input.rewind();\r
+ s = -1;\r
+ if ( (true) ) {s = 7;}\r
+\r
+ else if ( (synpred3_XPath()) ) {s = 8;}\r
+\r
+ else if ( (synpred4_XPath()) ) {s = 9;}\r
+\r
+ else if ( (synpred5_XPath()) ) {s = 10;}\r
+\r
+ else if ( (synpred6_XPath()) ) {s = 11;}\r
+\r
+ else if ( (synpred7_XPath()) ) {s = 12;}\r
+\r
+ else if ( (synpred8_XPath()) ) {s = 13;}\r
+\r
+ else if ( (synpred9_XPath()) ) {s = 14;}\r
+\r
+ \r
+ input.seek(index6_4);\r
+ if ( s>=0 ) return s;\r
+ break;\r
+ case 4 : \r
+ int LA6_5 = input.LA(1);\r
+\r
+ \r
+ int index6_5 = input.index();\r
+ input.rewind();\r
+ s = -1;\r
+ if ( (true) ) {s = 7;}\r
+\r
+ else if ( (synpred3_XPath()) ) {s = 8;}\r
+\r
+ else if ( (synpred4_XPath()) ) {s = 9;}\r
+\r
+ else if ( (synpred5_XPath()) ) {s = 10;}\r
+\r
+ else if ( (synpred6_XPath()) ) {s = 11;}\r
+\r
+ else if ( (synpred7_XPath()) ) {s = 12;}\r
+\r
+ else if ( (synpred8_XPath()) ) {s = 13;}\r
+\r
+ else if ( (synpred9_XPath()) ) {s = 14;}\r
+\r
+ \r
+ input.seek(index6_5);\r
+ if ( s>=0 ) return s;\r
+ break;\r
+ case 5 : \r
+ int LA6_6 = input.LA(1);\r
+\r
+ \r
+ int index6_6 = input.index();\r
+ input.rewind();\r
+ s = -1;\r
+ if ( (true) ) {s = 7;}\r
+\r
+ else if ( (synpred3_XPath()) ) {s = 8;}\r
+\r
+ else if ( (synpred4_XPath()) ) {s = 9;}\r
+\r
+ else if ( (synpred5_XPath()) ) {s = 10;}\r
+\r
+ else if ( (synpred6_XPath()) ) {s = 11;}\r
+\r
+ else if ( (synpred7_XPath()) ) {s = 12;}\r
+\r
+ else if ( (synpred8_XPath()) ) {s = 13;}\r
+\r
+ else if ( (synpred9_XPath()) ) {s = 14;}\r
+\r
+ \r
+ input.seek(index6_6);\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(), 6, _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_absolutePath_in_locationExpr652 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_step_in_relativePath669 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_step_in_relativePath694 = new BitSet(new long[]{0x0000000400000000L});\r
+ public static final BitSet FOLLOW_34_in_relativePath696 = new BitSet(new long[]{0x0000001100000000L});\r
+ public static final BitSet FOLLOW_relativePath_in_relativePath698 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_step_in_relativePath729 = new BitSet(new long[]{0x0000000800000000L});\r
+ public static final BitSet FOLLOW_35_in_relativePath731 = new BitSet(new long[]{0x0000001100000000L});\r
+ public static final BitSet FOLLOW_relativePath_in_relativePath733 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_34_in_absolutePath764 = new BitSet(new long[]{0x0000001100000000L});\r
+ public static final BitSet FOLLOW_relativePath_in_absolutePath766 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_nodeTest_in_step800 = new BitSet(new long[]{0x0000002000000002L});\r
+ public static final BitSet FOLLOW_predicate_in_step802 = new BitSet(new long[]{0x0000002000000002L});\r
+ public static final BitSet FOLLOW_36_in_nodeTest830 = new BitSet(new long[]{0x0000000100000000L});\r
+ public static final BitSet FOLLOW_QName_in_nodeTest834 = new BitSet(new long[]{0x0000000004000000L});\r
+ public static final BitSet FOLLOW_Colon_in_nodeTest836 = new BitSet(new long[]{0x0000000100000000L});\r
+ public static final BitSet FOLLOW_QName_in_nodeTest840 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_37_in_predicate858 = new BitSet(new long[]{0x0000001501300000L});\r
+ public static final BitSet FOLLOW_expr_in_predicate860 = new BitSet(new long[]{0x0000004000000000L});\r
+ public static final BitSet FOLLOW_38_in_predicate862 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_comparisonExpr_in_expr885 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_pathExpr_in_comparisonExpr900 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_pathExpr_in_comparisonExpr914 = new BitSet(new long[]{0x0000008000000000L});\r
+ public static final BitSet FOLLOW_39_in_comparisonExpr916 = new BitSet(new long[]{0x0000001501300000L});\r
+ public static final BitSet FOLLOW_pathExpr_in_comparisonExpr918 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_pathExpr_in_comparisonExpr932 = new BitSet(new long[]{0x0000010000000000L});\r
+ public static final BitSet FOLLOW_40_in_comparisonExpr934 = new BitSet(new long[]{0x0000001501300000L});\r
+ public static final BitSet FOLLOW_pathExpr_in_comparisonExpr936 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_pathExpr_in_comparisonExpr950 = new BitSet(new long[]{0x0000020000000000L});\r
+ public static final BitSet FOLLOW_41_in_comparisonExpr952 = new BitSet(new long[]{0x0000001501300000L});\r
+ public static final BitSet FOLLOW_pathExpr_in_comparisonExpr954 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_pathExpr_in_comparisonExpr968 = new BitSet(new long[]{0x0000040000000000L});\r
+ public static final BitSet FOLLOW_42_in_comparisonExpr970 = new BitSet(new long[]{0x0000001501300000L});\r
+ public static final BitSet FOLLOW_pathExpr_in_comparisonExpr972 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_pathExpr_in_comparisonExpr986 = new BitSet(new long[]{0x0000080000000000L});\r
+ public static final BitSet FOLLOW_43_in_comparisonExpr988 = new BitSet(new long[]{0x0000001501300000L});\r
+ public static final BitSet FOLLOW_pathExpr_in_comparisonExpr990 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_pathExpr_in_comparisonExpr1004 = new BitSet(new long[]{0x0000100000000000L});\r
+ public static final BitSet FOLLOW_44_in_comparisonExpr1006 = new BitSet(new long[]{0x0000001501300000L});\r
+ public static final BitSet FOLLOW_pathExpr_in_comparisonExpr1008 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_pathExpr_in_comparisonExpr1022 = new BitSet(new long[]{0x0000200000000000L});\r
+ public static final BitSet FOLLOW_45_in_comparisonExpr1024 = new BitSet(new long[]{0x0000001501300000L});\r
+ public static final BitSet FOLLOW_pathExpr_in_comparisonExpr1026 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_locationExpr_in_pathExpr1042 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_primaryExpr_in_pathExpr1048 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_String_in_primaryExpr1067 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_Integer_in_primaryExpr1073 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_Double_in_primaryExpr1079 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_functionCall_in_primaryExpr1085 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_QName_in_functionCall1105 = new BitSet(new long[]{0x0000400000000000L});\r
+ public static final BitSet FOLLOW_46_in_functionCall1107 = new BitSet(new long[]{0x0000801501300000L});\r
+ public static final BitSet FOLLOW_expr_in_functionCall1110 = new BitSet(new long[]{0x0000800002000000L});\r
+ public static final BitSet FOLLOW_Comma_in_functionCall1113 = new BitSet(new long[]{0x0000001501300000L});\r
+ public static final BitSet FOLLOW_expr_in_functionCall1115 = new BitSet(new long[]{0x0000800002000000L});\r
+ public static final BitSet FOLLOW_47_in_functionCall1121 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_step_in_synpred1_XPath687 = new BitSet(new long[]{0x0000000400000000L});\r
+ public static final BitSet FOLLOW_34_in_synpred1_XPath689 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_step_in_synpred2_XPath722 = new BitSet(new long[]{0x0000000800000000L});\r
+ public static final BitSet FOLLOW_35_in_synpred2_XPath724 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_pathExpr_in_synpred3_XPath907 = new BitSet(new long[]{0x0000008000000000L});\r
+ public static final BitSet FOLLOW_39_in_synpred3_XPath909 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_pathExpr_in_synpred4_XPath925 = new BitSet(new long[]{0x0000010000000000L});\r
+ public static final BitSet FOLLOW_40_in_synpred4_XPath927 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_pathExpr_in_synpred5_XPath943 = new BitSet(new long[]{0x0000020000000000L});\r
+ public static final BitSet FOLLOW_41_in_synpred5_XPath945 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_pathExpr_in_synpred6_XPath961 = new BitSet(new long[]{0x0000040000000000L});\r
+ public static final BitSet FOLLOW_42_in_synpred6_XPath963 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_pathExpr_in_synpred7_XPath979 = new BitSet(new long[]{0x0000080000000000L});\r
+ public static final BitSet FOLLOW_43_in_synpred7_XPath981 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_pathExpr_in_synpred8_XPath997 = new BitSet(new long[]{0x0000100000000000L});\r
+ public static final BitSet FOLLOW_44_in_synpred8_XPath999 = new BitSet(new long[]{0x0000000000000002L});\r
+ public static final BitSet FOLLOW_pathExpr_in_synpred9_XPath1015 = new BitSet(new long[]{0x0000200000000000L});\r
+ public static final BitSet FOLLOW_45_in_synpred9_XPath1017 = new BitSet(new long[]{0x0000000000000002L});\r
+\r
+}
\ No newline at end of file
--- /dev/null
+/*--------------------------------------------------------------------------\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
+// XPathExpr.java\r
+// Since: Sep 29, 2009 2:26:59 PM\r
+//\r
+// $URL$\r
+// $Author$\r
+//--------------------------------------\r
+package org.xerial.lens.relation.query.lang;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
+import org.antlr.runtime.ANTLRStringStream;\r
+import org.antlr.runtime.CommonTokenStream;\r
+import org.antlr.runtime.RecognitionException;\r
+import org.antlr.runtime.tree.Tree;\r
+import org.xerial.core.XerialErrorCode;\r
+import org.xerial.core.XerialException;\r
+import org.xerial.lens.Lens;\r
+import org.xerial.lens.relation.query.impl.XPathLexer;\r
+import org.xerial.lens.relation.query.impl.XPathParser;\r
+import org.xerial.lens.relation.query.impl.XPathParser.xpath_return;\r
+import org.xerial.util.antlr.ANTLRUtil;\r
+import org.xerial.util.log.Logger;\r
+\r
+/**\r
+ * XPath expression\r
+ * \r
+ * @author leo\r
+ * \r
+ */\r
+public class XPathExpr {\r
+\r
+ private static Logger _logger = Logger.getLogger(XPathExpr.class);\r
+\r
+ public static enum Axis {\r
+ Relative, PC, AD\r
+ }\r
+\r
+ public static class Step {\r
+ public String name;\r
+ public Axis axis = Axis.Relative;\r
+ public List<Step> step = new ArrayList<Step>();\r
+ public List<Predicate> prediate = new ArrayList<Predicate>();\r
+ }\r
+\r
+ public static class Predicate {\r
+\r
+ }\r
+\r
+ public Step step;\r
+\r
+ public static XPathExpr parse(String xpathExpr) throws XerialException {\r
+ XPathLexer lexer = new XPathLexer(new ANTLRStringStream(xpathExpr));\r
+ CommonTokenStream token = new CommonTokenStream(lexer);\r
+ XPathParser parser = new XPathParser(token);\r
+\r
+ try {\r
+ xpath_return r = parser.xpath();\r
+\r
+ if (_logger.isDebugEnabled())\r
+ _logger.debug(ANTLRUtil.parseTree((Tree) r.getTree(), XPathParser.tokenNames));\r
+\r
+ return Lens.loadANTLRParseTree(XPathExpr.class, (Tree) r.getTree(),\r
+ XPathParser.tokenNames);\r
+ }\r
+ catch (RecognitionException e) {\r
+ throw new XerialException(XerialErrorCode.PARSE_ERROR, e);\r
+ }\r
+\r
+ }\r
+}\r
--- /dev/null
+/*--------------------------------------------------------------------------\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
+// XPathExprTest.java\r
+// Since: Sep 29, 2009 2:45:48 PM\r
+//\r
+// $URL$\r
+// $Author$\r
+//--------------------------------------\r
+package org.xerial.lens.relation.query.lang;\r
+\r
+import org.junit.After;\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+import org.xerial.core.XerialException;\r
+import org.xerial.lens.Lens;\r
+import org.xerial.util.log.Logger;\r
+\r
+public class XPathExprTest {\r
+\r
+ private static Logger _logger = Logger.getLogger(XPathExprTest.class);\r
+\r
+ @Before\r
+ public void setUp() throws Exception {}\r
+\r
+ @After\r
+ public void tearDown() throws Exception {}\r
+\r
+ public void parse(String expr) throws XerialException {\r
+ XPathExpr e = XPathExpr.parse(expr);\r
+ _logger.info(String.format("%s\n%s", expr, Lens.toSilk(e)));\r
+ }\r
+\r
+ @Test\r
+ public void testParse() throws Exception {\r
+\r
+ parse("/A/B");\r
+ parse("//A");\r
+ parse("//book");\r
+ parse("//title");\r
+ parse("//A[B][C]");\r
+ }\r
+\r
+}\r