BindingExpressionParser.java revision 8d89ffbe003c2b51522e56ae64b48d5398c9837b
1// Generated from BindingExpression.g4 by ANTLR 4.5 2package android.databinding.parser; 3import org.antlr.v4.runtime.atn.*; 4import org.antlr.v4.runtime.dfa.DFA; 5import org.antlr.v4.runtime.*; 6import org.antlr.v4.runtime.misc.*; 7import org.antlr.v4.runtime.tree.*; 8import java.util.List; 9import java.util.Iterator; 10import java.util.ArrayList; 11 12public class BindingExpressionParser extends Parser { 13 public static final int 14 T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, 15 T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17, 16 T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24, 17 T__24=25, T__25=26, T__26=27, T__27=28, T__28=29, T__29=30, T__30=31, 18 T__31=32, T__32=33, T__33=34, T__34=35, T__35=36, T__36=37, T__37=38, 19 T__38=39, T__39=40, T__40=41, T__41=42, T__42=43, THIS=44, IntegerLiteral=45, 20 FloatingPointLiteral=46, BooleanLiteral=47, CharacterLiteral=48, SingleQuoteString=49, 21 DoubleQuoteString=50, NullLiteral=51, Identifier=52, WS=53, ResourceReference=54, 22 PackageName=55, ResourceType=56; 23 public static final int 24 RULE_bindingSyntax = 0, RULE_defaults = 1, RULE_constantValue = 2, RULE_expression = 3, 25 RULE_classExtraction = 4, RULE_expressionList = 5, RULE_literal = 6, RULE_identifier = 7, 26 RULE_javaLiteral = 8, RULE_stringLiteral = 9, RULE_explicitGenericInvocation = 10, 27 RULE_typeArguments = 11, RULE_type = 12, RULE_explicitGenericInvocationSuffix = 13, 28 RULE_arguments = 14, RULE_classOrInterfaceType = 15, RULE_primitiveType = 16, 29 RULE_resources = 17, RULE_resourceParameters = 18; 30 public static final String[] ruleNames = { 31 "bindingSyntax", "defaults", "constantValue", "expression", "classExtraction", 32 "expressionList", "literal", "identifier", "javaLiteral", "stringLiteral", 33 "explicitGenericInvocation", "typeArguments", "type", "explicitGenericInvocationSuffix", 34 "arguments", "classOrInterfaceType", "primitiveType", "resources", "resourceParameters" 35 }; 36 37 private static final String[] _LITERAL_NAMES = { 38 null, "','", "'default'", "'='", "'('", "')'", "'.'", "'['", "']'", "'+'", 39 "'-'", "'~'", "'!'", "'*'", "'/'", "'%'", "'<<'", "'>>>'", "'>>'", "'<='", 40 "'>='", "'>'", "'<'", "'instanceof'", "'=='", "'!='", "'&'", "'^'", "'|'", 41 "'&&'", "'||'", "'?'", "':'", "'??'", "'class'", "'void'", "'boolean'", 42 "'char'", "'byte'", "'short'", "'int'", "'long'", "'float'", "'double'", 43 "'this'", null, null, null, null, null, null, "'null'" 44 }; 45 private static final String[] _SYMBOLIC_NAMES = { 46 null, null, null, null, null, null, null, null, null, null, null, null, 47 null, null, null, null, null, null, null, null, null, null, null, null, 48 null, null, null, null, null, null, null, null, null, null, null, null, 49 null, null, null, null, null, null, null, null, "THIS", "IntegerLiteral", 50 "FloatingPointLiteral", "BooleanLiteral", "CharacterLiteral", "SingleQuoteString", 51 "DoubleQuoteString", "NullLiteral", "Identifier", "WS", "ResourceReference", 52 "PackageName", "ResourceType" 53 }; 54 public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); 55 56 /** 57 * @deprecated Use {@link #VOCABULARY} instead. 58 */ 59 @Deprecated 60 public static final String[] tokenNames; 61 static { 62 tokenNames = new String[_SYMBOLIC_NAMES.length]; 63 for (int i = 0; i < tokenNames.length; i++) { 64 tokenNames[i] = VOCABULARY.getLiteralName(i); 65 if (tokenNames[i] == null) { 66 tokenNames[i] = VOCABULARY.getSymbolicName(i); 67 } 68 69 if (tokenNames[i] == null) { 70 tokenNames[i] = "<INVALID>"; 71 } 72 } 73 } 74 75 @Override 76 @Deprecated 77 public String[] getTokenNames() { 78 return tokenNames; 79 } 80 81 @Override 82 @NotNull 83 public Vocabulary getVocabulary() { 84 return VOCABULARY; 85 } 86 87 @Override 88 public String getGrammarFileName() { return "BindingExpression.g4"; } 89 90 @Override 91 public String[] getRuleNames() { return ruleNames; } 92 93 @Override 94 public String getSerializedATN() { return _serializedATN; } 95 96 public BindingExpressionParser(TokenStream input) { 97 super(input); 98 _interp = new ParserATNSimulator(this,_ATN); 99 } 100 public static class BindingSyntaxContext extends ParserRuleContext { 101 public ExpressionContext expression() { 102 return getRuleContext(ExpressionContext.class,0); 103 } 104 public DefaultsContext defaults() { 105 return getRuleContext(DefaultsContext.class,0); 106 } 107 public BindingSyntaxContext(ParserRuleContext parent, int invokingState) { 108 super(parent, invokingState); 109 } 110 @Override public int getRuleIndex() { return RULE_bindingSyntax; } 111 @Override 112 public void enterRule(ParseTreeListener listener) { 113 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterBindingSyntax(this); 114 } 115 @Override 116 public void exitRule(ParseTreeListener listener) { 117 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitBindingSyntax(this); 118 } 119 @Override 120 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 121 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitBindingSyntax(this); 122 else return visitor.visitChildren(this); 123 } 124 } 125 126 @RuleVersion(0) 127 public final BindingSyntaxContext bindingSyntax() throws RecognitionException { 128 BindingSyntaxContext _localctx = new BindingSyntaxContext(_ctx, getState()); 129 enterRule(_localctx, 0, RULE_bindingSyntax); 130 int _la; 131 try { 132 enterOuterAlt(_localctx, 1); 133 { 134 setState(38); 135 expression(0); 136 setState(40); 137 _la = _input.LA(1); 138 if (_la==T__0) { 139 { 140 setState(39); 141 defaults(); 142 } 143 } 144 145 } 146 } 147 catch (RecognitionException re) { 148 _localctx.exception = re; 149 _errHandler.reportError(this, re); 150 _errHandler.recover(this, re); 151 } 152 finally { 153 exitRule(); 154 } 155 return _localctx; 156 } 157 158 public static class DefaultsContext extends ParserRuleContext { 159 public ConstantValueContext constantValue() { 160 return getRuleContext(ConstantValueContext.class,0); 161 } 162 public DefaultsContext(ParserRuleContext parent, int invokingState) { 163 super(parent, invokingState); 164 } 165 @Override public int getRuleIndex() { return RULE_defaults; } 166 @Override 167 public void enterRule(ParseTreeListener listener) { 168 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterDefaults(this); 169 } 170 @Override 171 public void exitRule(ParseTreeListener listener) { 172 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitDefaults(this); 173 } 174 @Override 175 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 176 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitDefaults(this); 177 else return visitor.visitChildren(this); 178 } 179 } 180 181 @RuleVersion(0) 182 public final DefaultsContext defaults() throws RecognitionException { 183 DefaultsContext _localctx = new DefaultsContext(_ctx, getState()); 184 enterRule(_localctx, 2, RULE_defaults); 185 try { 186 enterOuterAlt(_localctx, 1); 187 { 188 setState(42); 189 match(T__0); 190 setState(43); 191 match(T__1); 192 setState(44); 193 match(T__2); 194 setState(45); 195 constantValue(); 196 } 197 } 198 catch (RecognitionException re) { 199 _localctx.exception = re; 200 _errHandler.reportError(this, re); 201 _errHandler.recover(this, re); 202 } 203 finally { 204 exitRule(); 205 } 206 return _localctx; 207 } 208 209 public static class ConstantValueContext extends ParserRuleContext { 210 public LiteralContext literal() { 211 return getRuleContext(LiteralContext.class,0); 212 } 213 public TerminalNode ResourceReference() { return getToken(BindingExpressionParser.ResourceReference, 0); } 214 public IdentifierContext identifier() { 215 return getRuleContext(IdentifierContext.class,0); 216 } 217 public ConstantValueContext(ParserRuleContext parent, int invokingState) { 218 super(parent, invokingState); 219 } 220 @Override public int getRuleIndex() { return RULE_constantValue; } 221 @Override 222 public void enterRule(ParseTreeListener listener) { 223 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterConstantValue(this); 224 } 225 @Override 226 public void exitRule(ParseTreeListener listener) { 227 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitConstantValue(this); 228 } 229 @Override 230 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 231 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitConstantValue(this); 232 else return visitor.visitChildren(this); 233 } 234 } 235 236 @RuleVersion(0) 237 public final ConstantValueContext constantValue() throws RecognitionException { 238 ConstantValueContext _localctx = new ConstantValueContext(_ctx, getState()); 239 enterRule(_localctx, 4, RULE_constantValue); 240 try { 241 setState(50); 242 switch (_input.LA(1)) { 243 case IntegerLiteral: 244 case FloatingPointLiteral: 245 case BooleanLiteral: 246 case CharacterLiteral: 247 case SingleQuoteString: 248 case DoubleQuoteString: 249 case NullLiteral: 250 enterOuterAlt(_localctx, 1); 251 { 252 setState(47); 253 literal(); 254 } 255 break; 256 case ResourceReference: 257 enterOuterAlt(_localctx, 2); 258 { 259 setState(48); 260 match(ResourceReference); 261 } 262 break; 263 case Identifier: 264 enterOuterAlt(_localctx, 3); 265 { 266 setState(49); 267 identifier(); 268 } 269 break; 270 default: 271 throw new NoViableAltException(this); 272 } 273 } 274 catch (RecognitionException re) { 275 _localctx.exception = re; 276 _errHandler.reportError(this, re); 277 _errHandler.recover(this, re); 278 } 279 finally { 280 exitRule(); 281 } 282 return _localctx; 283 } 284 285 public static class ExpressionContext extends ParserRuleContext { 286 public ExpressionContext(ParserRuleContext parent, int invokingState) { 287 super(parent, invokingState); 288 } 289 @Override public int getRuleIndex() { return RULE_expression; } 290 291 public ExpressionContext() { } 292 public void copyFrom(ExpressionContext ctx) { 293 super.copyFrom(ctx); 294 } 295 } 296 public static class BracketOpContext extends ExpressionContext { 297 public List<? extends ExpressionContext> expression() { 298 return getRuleContexts(ExpressionContext.class); 299 } 300 public ExpressionContext expression(int i) { 301 return getRuleContext(ExpressionContext.class,i); 302 } 303 public BracketOpContext(ExpressionContext ctx) { copyFrom(ctx); } 304 @Override 305 public void enterRule(ParseTreeListener listener) { 306 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterBracketOp(this); 307 } 308 @Override 309 public void exitRule(ParseTreeListener listener) { 310 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitBracketOp(this); 311 } 312 @Override 313 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 314 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitBracketOp(this); 315 else return visitor.visitChildren(this); 316 } 317 } 318 public static class ResourceContext extends ExpressionContext { 319 public ResourcesContext resources() { 320 return getRuleContext(ResourcesContext.class,0); 321 } 322 public ResourceContext(ExpressionContext ctx) { copyFrom(ctx); } 323 @Override 324 public void enterRule(ParseTreeListener listener) { 325 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterResource(this); 326 } 327 @Override 328 public void exitRule(ParseTreeListener listener) { 329 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitResource(this); 330 } 331 @Override 332 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 333 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitResource(this); 334 else return visitor.visitChildren(this); 335 } 336 } 337 public static class CastOpContext extends ExpressionContext { 338 public TypeContext type() { 339 return getRuleContext(TypeContext.class,0); 340 } 341 public ExpressionContext expression() { 342 return getRuleContext(ExpressionContext.class,0); 343 } 344 public CastOpContext(ExpressionContext ctx) { copyFrom(ctx); } 345 @Override 346 public void enterRule(ParseTreeListener listener) { 347 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterCastOp(this); 348 } 349 @Override 350 public void exitRule(ParseTreeListener listener) { 351 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitCastOp(this); 352 } 353 @Override 354 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 355 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitCastOp(this); 356 else return visitor.visitChildren(this); 357 } 358 } 359 public static class UnaryOpContext extends ExpressionContext { 360 public Token op; 361 public ExpressionContext expression() { 362 return getRuleContext(ExpressionContext.class,0); 363 } 364 public UnaryOpContext(ExpressionContext ctx) { copyFrom(ctx); } 365 @Override 366 public void enterRule(ParseTreeListener listener) { 367 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterUnaryOp(this); 368 } 369 @Override 370 public void exitRule(ParseTreeListener listener) { 371 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitUnaryOp(this); 372 } 373 @Override 374 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 375 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitUnaryOp(this); 376 else return visitor.visitChildren(this); 377 } 378 } 379 public static class AndOrOpContext extends ExpressionContext { 380 public ExpressionContext left; 381 public Token op; 382 public ExpressionContext right; 383 public List<? extends ExpressionContext> expression() { 384 return getRuleContexts(ExpressionContext.class); 385 } 386 public ExpressionContext expression(int i) { 387 return getRuleContext(ExpressionContext.class,i); 388 } 389 public AndOrOpContext(ExpressionContext ctx) { copyFrom(ctx); } 390 @Override 391 public void enterRule(ParseTreeListener listener) { 392 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterAndOrOp(this); 393 } 394 @Override 395 public void exitRule(ParseTreeListener listener) { 396 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitAndOrOp(this); 397 } 398 @Override 399 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 400 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitAndOrOp(this); 401 else return visitor.visitChildren(this); 402 } 403 } 404 public static class MethodInvocationContext extends ExpressionContext { 405 public ExpressionContext target; 406 public Token methodName; 407 public ExpressionListContext args; 408 public ExpressionContext expression() { 409 return getRuleContext(ExpressionContext.class,0); 410 } 411 public TerminalNode Identifier() { return getToken(BindingExpressionParser.Identifier, 0); } 412 public ExpressionListContext expressionList() { 413 return getRuleContext(ExpressionListContext.class,0); 414 } 415 public MethodInvocationContext(ExpressionContext ctx) { copyFrom(ctx); } 416 @Override 417 public void enterRule(ParseTreeListener listener) { 418 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterMethodInvocation(this); 419 } 420 @Override 421 public void exitRule(ParseTreeListener listener) { 422 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitMethodInvocation(this); 423 } 424 @Override 425 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 426 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitMethodInvocation(this); 427 else return visitor.visitChildren(this); 428 } 429 } 430 public static class PrimaryContext extends ExpressionContext { 431 public LiteralContext literal() { 432 return getRuleContext(LiteralContext.class,0); 433 } 434 public IdentifierContext identifier() { 435 return getRuleContext(IdentifierContext.class,0); 436 } 437 public ClassExtractionContext classExtraction() { 438 return getRuleContext(ClassExtractionContext.class,0); 439 } 440 public PrimaryContext(ExpressionContext ctx) { copyFrom(ctx); } 441 @Override 442 public void enterRule(ParseTreeListener listener) { 443 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterPrimary(this); 444 } 445 @Override 446 public void exitRule(ParseTreeListener listener) { 447 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitPrimary(this); 448 } 449 @Override 450 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 451 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitPrimary(this); 452 else return visitor.visitChildren(this); 453 } 454 } 455 public static class GroupingContext extends ExpressionContext { 456 public ExpressionContext expression() { 457 return getRuleContext(ExpressionContext.class,0); 458 } 459 public GroupingContext(ExpressionContext ctx) { copyFrom(ctx); } 460 @Override 461 public void enterRule(ParseTreeListener listener) { 462 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterGrouping(this); 463 } 464 @Override 465 public void exitRule(ParseTreeListener listener) { 466 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitGrouping(this); 467 } 468 @Override 469 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 470 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitGrouping(this); 471 else return visitor.visitChildren(this); 472 } 473 } 474 public static class TernaryOpContext extends ExpressionContext { 475 public ExpressionContext left; 476 public Token op; 477 public ExpressionContext iftrue; 478 public ExpressionContext iffalse; 479 public List<? extends ExpressionContext> expression() { 480 return getRuleContexts(ExpressionContext.class); 481 } 482 public ExpressionContext expression(int i) { 483 return getRuleContext(ExpressionContext.class,i); 484 } 485 public TernaryOpContext(ExpressionContext ctx) { copyFrom(ctx); } 486 @Override 487 public void enterRule(ParseTreeListener listener) { 488 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterTernaryOp(this); 489 } 490 @Override 491 public void exitRule(ParseTreeListener listener) { 492 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitTernaryOp(this); 493 } 494 @Override 495 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 496 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitTernaryOp(this); 497 else return visitor.visitChildren(this); 498 } 499 } 500 public static class ComparisonOpContext extends ExpressionContext { 501 public ExpressionContext left; 502 public Token op; 503 public ExpressionContext right; 504 public List<? extends ExpressionContext> expression() { 505 return getRuleContexts(ExpressionContext.class); 506 } 507 public ExpressionContext expression(int i) { 508 return getRuleContext(ExpressionContext.class,i); 509 } 510 public ComparisonOpContext(ExpressionContext ctx) { copyFrom(ctx); } 511 @Override 512 public void enterRule(ParseTreeListener listener) { 513 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterComparisonOp(this); 514 } 515 @Override 516 public void exitRule(ParseTreeListener listener) { 517 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitComparisonOp(this); 518 } 519 @Override 520 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 521 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitComparisonOp(this); 522 else return visitor.visitChildren(this); 523 } 524 } 525 public static class DotOpContext extends ExpressionContext { 526 public ExpressionContext expression() { 527 return getRuleContext(ExpressionContext.class,0); 528 } 529 public TerminalNode Identifier() { return getToken(BindingExpressionParser.Identifier, 0); } 530 public DotOpContext(ExpressionContext ctx) { copyFrom(ctx); } 531 @Override 532 public void enterRule(ParseTreeListener listener) { 533 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterDotOp(this); 534 } 535 @Override 536 public void exitRule(ParseTreeListener listener) { 537 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitDotOp(this); 538 } 539 @Override 540 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 541 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitDotOp(this); 542 else return visitor.visitChildren(this); 543 } 544 } 545 public static class MathOpContext extends ExpressionContext { 546 public ExpressionContext left; 547 public Token op; 548 public ExpressionContext right; 549 public List<? extends ExpressionContext> expression() { 550 return getRuleContexts(ExpressionContext.class); 551 } 552 public ExpressionContext expression(int i) { 553 return getRuleContext(ExpressionContext.class,i); 554 } 555 public MathOpContext(ExpressionContext ctx) { copyFrom(ctx); } 556 @Override 557 public void enterRule(ParseTreeListener listener) { 558 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterMathOp(this); 559 } 560 @Override 561 public void exitRule(ParseTreeListener listener) { 562 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitMathOp(this); 563 } 564 @Override 565 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 566 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitMathOp(this); 567 else return visitor.visitChildren(this); 568 } 569 } 570 public static class QuestionQuestionOpContext extends ExpressionContext { 571 public ExpressionContext left; 572 public Token op; 573 public ExpressionContext right; 574 public List<? extends ExpressionContext> expression() { 575 return getRuleContexts(ExpressionContext.class); 576 } 577 public ExpressionContext expression(int i) { 578 return getRuleContext(ExpressionContext.class,i); 579 } 580 public QuestionQuestionOpContext(ExpressionContext ctx) { copyFrom(ctx); } 581 @Override 582 public void enterRule(ParseTreeListener listener) { 583 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterQuestionQuestionOp(this); 584 } 585 @Override 586 public void exitRule(ParseTreeListener listener) { 587 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitQuestionQuestionOp(this); 588 } 589 @Override 590 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 591 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitQuestionQuestionOp(this); 592 else return visitor.visitChildren(this); 593 } 594 } 595 public static class BitShiftOpContext extends ExpressionContext { 596 public ExpressionContext left; 597 public Token op; 598 public ExpressionContext right; 599 public List<? extends ExpressionContext> expression() { 600 return getRuleContexts(ExpressionContext.class); 601 } 602 public ExpressionContext expression(int i) { 603 return getRuleContext(ExpressionContext.class,i); 604 } 605 public BitShiftOpContext(ExpressionContext ctx) { copyFrom(ctx); } 606 @Override 607 public void enterRule(ParseTreeListener listener) { 608 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterBitShiftOp(this); 609 } 610 @Override 611 public void exitRule(ParseTreeListener listener) { 612 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitBitShiftOp(this); 613 } 614 @Override 615 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 616 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitBitShiftOp(this); 617 else return visitor.visitChildren(this); 618 } 619 } 620 public static class InstanceOfOpContext extends ExpressionContext { 621 public ExpressionContext expression() { 622 return getRuleContext(ExpressionContext.class,0); 623 } 624 public TypeContext type() { 625 return getRuleContext(TypeContext.class,0); 626 } 627 public InstanceOfOpContext(ExpressionContext ctx) { copyFrom(ctx); } 628 @Override 629 public void enterRule(ParseTreeListener listener) { 630 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterInstanceOfOp(this); 631 } 632 @Override 633 public void exitRule(ParseTreeListener listener) { 634 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitInstanceOfOp(this); 635 } 636 @Override 637 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 638 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitInstanceOfOp(this); 639 else return visitor.visitChildren(this); 640 } 641 } 642 public static class BinaryOpContext extends ExpressionContext { 643 public ExpressionContext left; 644 public Token op; 645 public ExpressionContext right; 646 public List<? extends ExpressionContext> expression() { 647 return getRuleContexts(ExpressionContext.class); 648 } 649 public ExpressionContext expression(int i) { 650 return getRuleContext(ExpressionContext.class,i); 651 } 652 public BinaryOpContext(ExpressionContext ctx) { copyFrom(ctx); } 653 @Override 654 public void enterRule(ParseTreeListener listener) { 655 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterBinaryOp(this); 656 } 657 @Override 658 public void exitRule(ParseTreeListener listener) { 659 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitBinaryOp(this); 660 } 661 @Override 662 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 663 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitBinaryOp(this); 664 else return visitor.visitChildren(this); 665 } 666 } 667 668 @RuleVersion(0) 669 public final ExpressionContext expression() throws RecognitionException { 670 return expression(0); 671 } 672 673 private ExpressionContext expression(int _p) throws RecognitionException { 674 ParserRuleContext _parentctx = _ctx; 675 int _parentState = getState(); 676 ExpressionContext _localctx = new ExpressionContext(_ctx, _parentState); 677 ExpressionContext _prevctx = _localctx; 678 int _startState = 6; 679 enterRecursionRule(_localctx, 6, RULE_expression, _p); 680 int _la; 681 try { 682 int _alt; 683 enterOuterAlt(_localctx, 1); 684 { 685 setState(70); 686 switch ( getInterpreter().adaptivePredict(_input,2,_ctx) ) { 687 case 1: 688 { 689 _localctx = new CastOpContext(_localctx); 690 _ctx = _localctx; 691 _prevctx = _localctx; 692 693 setState(53); 694 match(T__3); 695 setState(54); 696 type(); 697 setState(55); 698 match(T__4); 699 setState(56); 700 expression(16); 701 } 702 break; 703 704 case 2: 705 { 706 _localctx = new UnaryOpContext(_localctx); 707 _ctx = _localctx; 708 _prevctx = _localctx; 709 setState(58); 710 ((UnaryOpContext)_localctx).op = _input.LT(1); 711 _la = _input.LA(1); 712 if ( !(_la==T__8 || _la==T__9) ) { 713 ((UnaryOpContext)_localctx).op = _errHandler.recoverInline(this); 714 } else { 715 consume(); 716 } 717 setState(59); 718 expression(15); 719 } 720 break; 721 722 case 3: 723 { 724 _localctx = new UnaryOpContext(_localctx); 725 _ctx = _localctx; 726 _prevctx = _localctx; 727 setState(60); 728 ((UnaryOpContext)_localctx).op = _input.LT(1); 729 _la = _input.LA(1); 730 if ( !(_la==T__10 || _la==T__11) ) { 731 ((UnaryOpContext)_localctx).op = _errHandler.recoverInline(this); 732 } else { 733 consume(); 734 } 735 setState(61); 736 expression(14); 737 } 738 break; 739 740 case 4: 741 { 742 _localctx = new GroupingContext(_localctx); 743 _ctx = _localctx; 744 _prevctx = _localctx; 745 setState(62); 746 match(T__3); 747 setState(63); 748 expression(0); 749 setState(64); 750 match(T__4); 751 } 752 break; 753 754 case 5: 755 { 756 _localctx = new PrimaryContext(_localctx); 757 _ctx = _localctx; 758 _prevctx = _localctx; 759 setState(66); 760 literal(); 761 } 762 break; 763 764 case 6: 765 { 766 _localctx = new PrimaryContext(_localctx); 767 _ctx = _localctx; 768 _prevctx = _localctx; 769 setState(67); 770 identifier(); 771 } 772 break; 773 774 case 7: 775 { 776 _localctx = new PrimaryContext(_localctx); 777 _ctx = _localctx; 778 _prevctx = _localctx; 779 setState(68); 780 classExtraction(); 781 } 782 break; 783 784 case 8: 785 { 786 _localctx = new ResourceContext(_localctx); 787 _ctx = _localctx; 788 _prevctx = _localctx; 789 setState(69); 790 resources(); 791 } 792 break; 793 } 794 _ctx.stop = _input.LT(-1); 795 setState(132); 796 _errHandler.sync(this); 797 _alt = getInterpreter().adaptivePredict(_input,5,_ctx); 798 while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { 799 if ( _alt==1 ) { 800 if ( _parseListeners!=null ) triggerExitRuleEvent(); 801 _prevctx = _localctx; 802 { 803 setState(130); 804 switch ( getInterpreter().adaptivePredict(_input,4,_ctx) ) { 805 case 1: 806 { 807 _localctx = new MathOpContext(new ExpressionContext(_parentctx, _parentState)); 808 ((MathOpContext)_localctx).left = _prevctx; 809 pushNewRecursionContext(_localctx, _startState, RULE_expression); 810 setState(72); 811 if (!(precpred(_ctx, 13))) throw new FailedPredicateException(this, "precpred(_ctx, 13)"); 812 setState(73); 813 ((MathOpContext)_localctx).op = _input.LT(1); 814 _la = _input.LA(1); 815 if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__12) | (1L << T__13) | (1L << T__14))) != 0)) ) { 816 ((MathOpContext)_localctx).op = _errHandler.recoverInline(this); 817 } else { 818 consume(); 819 } 820 setState(74); 821 ((MathOpContext)_localctx).right = expression(14); 822 } 823 break; 824 825 case 2: 826 { 827 _localctx = new MathOpContext(new ExpressionContext(_parentctx, _parentState)); 828 ((MathOpContext)_localctx).left = _prevctx; 829 pushNewRecursionContext(_localctx, _startState, RULE_expression); 830 setState(75); 831 if (!(precpred(_ctx, 12))) throw new FailedPredicateException(this, "precpred(_ctx, 12)"); 832 setState(76); 833 ((MathOpContext)_localctx).op = _input.LT(1); 834 _la = _input.LA(1); 835 if ( !(_la==T__8 || _la==T__9) ) { 836 ((MathOpContext)_localctx).op = _errHandler.recoverInline(this); 837 } else { 838 consume(); 839 } 840 setState(77); 841 ((MathOpContext)_localctx).right = expression(13); 842 } 843 break; 844 845 case 3: 846 { 847 _localctx = new BitShiftOpContext(new ExpressionContext(_parentctx, _parentState)); 848 ((BitShiftOpContext)_localctx).left = _prevctx; 849 pushNewRecursionContext(_localctx, _startState, RULE_expression); 850 setState(78); 851 if (!(precpred(_ctx, 11))) throw new FailedPredicateException(this, "precpred(_ctx, 11)"); 852 setState(79); 853 ((BitShiftOpContext)_localctx).op = _input.LT(1); 854 _la = _input.LA(1); 855 if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__15) | (1L << T__16) | (1L << T__17))) != 0)) ) { 856 ((BitShiftOpContext)_localctx).op = _errHandler.recoverInline(this); 857 } else { 858 consume(); 859 } 860 setState(80); 861 ((BitShiftOpContext)_localctx).right = expression(12); 862 } 863 break; 864 865 case 4: 866 { 867 _localctx = new ComparisonOpContext(new ExpressionContext(_parentctx, _parentState)); 868 ((ComparisonOpContext)_localctx).left = _prevctx; 869 pushNewRecursionContext(_localctx, _startState, RULE_expression); 870 setState(81); 871 if (!(precpred(_ctx, 10))) throw new FailedPredicateException(this, "precpred(_ctx, 10)"); 872 setState(82); 873 ((ComparisonOpContext)_localctx).op = _input.LT(1); 874 _la = _input.LA(1); 875 if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__21))) != 0)) ) { 876 ((ComparisonOpContext)_localctx).op = _errHandler.recoverInline(this); 877 } else { 878 consume(); 879 } 880 setState(83); 881 ((ComparisonOpContext)_localctx).right = expression(11); 882 } 883 break; 884 885 case 5: 886 { 887 _localctx = new ComparisonOpContext(new ExpressionContext(_parentctx, _parentState)); 888 ((ComparisonOpContext)_localctx).left = _prevctx; 889 pushNewRecursionContext(_localctx, _startState, RULE_expression); 890 setState(84); 891 if (!(precpred(_ctx, 8))) throw new FailedPredicateException(this, "precpred(_ctx, 8)"); 892 setState(85); 893 ((ComparisonOpContext)_localctx).op = _input.LT(1); 894 _la = _input.LA(1); 895 if ( !(_la==T__23 || _la==T__24) ) { 896 ((ComparisonOpContext)_localctx).op = _errHandler.recoverInline(this); 897 } else { 898 consume(); 899 } 900 setState(86); 901 ((ComparisonOpContext)_localctx).right = expression(9); 902 } 903 break; 904 905 case 6: 906 { 907 _localctx = new BinaryOpContext(new ExpressionContext(_parentctx, _parentState)); 908 ((BinaryOpContext)_localctx).left = _prevctx; 909 pushNewRecursionContext(_localctx, _startState, RULE_expression); 910 setState(87); 911 if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)"); 912 setState(88); 913 ((BinaryOpContext)_localctx).op = match(T__25); 914 setState(89); 915 ((BinaryOpContext)_localctx).right = expression(8); 916 } 917 break; 918 919 case 7: 920 { 921 _localctx = new BinaryOpContext(new ExpressionContext(_parentctx, _parentState)); 922 ((BinaryOpContext)_localctx).left = _prevctx; 923 pushNewRecursionContext(_localctx, _startState, RULE_expression); 924 setState(90); 925 if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)"); 926 setState(91); 927 ((BinaryOpContext)_localctx).op = match(T__26); 928 setState(92); 929 ((BinaryOpContext)_localctx).right = expression(7); 930 } 931 break; 932 933 case 8: 934 { 935 _localctx = new BinaryOpContext(new ExpressionContext(_parentctx, _parentState)); 936 ((BinaryOpContext)_localctx).left = _prevctx; 937 pushNewRecursionContext(_localctx, _startState, RULE_expression); 938 setState(93); 939 if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)"); 940 setState(94); 941 ((BinaryOpContext)_localctx).op = match(T__27); 942 setState(95); 943 ((BinaryOpContext)_localctx).right = expression(6); 944 } 945 break; 946 947 case 9: 948 { 949 _localctx = new AndOrOpContext(new ExpressionContext(_parentctx, _parentState)); 950 ((AndOrOpContext)_localctx).left = _prevctx; 951 pushNewRecursionContext(_localctx, _startState, RULE_expression); 952 setState(96); 953 if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)"); 954 setState(97); 955 ((AndOrOpContext)_localctx).op = match(T__28); 956 setState(98); 957 ((AndOrOpContext)_localctx).right = expression(5); 958 } 959 break; 960 961 case 10: 962 { 963 _localctx = new AndOrOpContext(new ExpressionContext(_parentctx, _parentState)); 964 ((AndOrOpContext)_localctx).left = _prevctx; 965 pushNewRecursionContext(_localctx, _startState, RULE_expression); 966 setState(99); 967 if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); 968 setState(100); 969 ((AndOrOpContext)_localctx).op = match(T__29); 970 setState(101); 971 ((AndOrOpContext)_localctx).right = expression(4); 972 } 973 break; 974 975 case 11: 976 { 977 _localctx = new TernaryOpContext(new ExpressionContext(_parentctx, _parentState)); 978 ((TernaryOpContext)_localctx).left = _prevctx; 979 pushNewRecursionContext(_localctx, _startState, RULE_expression); 980 setState(102); 981 if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); 982 setState(103); 983 ((TernaryOpContext)_localctx).op = match(T__30); 984 setState(104); 985 ((TernaryOpContext)_localctx).iftrue = expression(0); 986 setState(105); 987 match(T__31); 988 setState(106); 989 ((TernaryOpContext)_localctx).iffalse = expression(2); 990 } 991 break; 992 993 case 12: 994 { 995 _localctx = new QuestionQuestionOpContext(new ExpressionContext(_parentctx, _parentState)); 996 ((QuestionQuestionOpContext)_localctx).left = _prevctx; 997 pushNewRecursionContext(_localctx, _startState, RULE_expression); 998 setState(108); 999 if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); 1000 setState(109); 1001 ((QuestionQuestionOpContext)_localctx).op = match(T__32); 1002 setState(110); 1003 ((QuestionQuestionOpContext)_localctx).right = expression(2); 1004 } 1005 break; 1006 1007 case 13: 1008 { 1009 _localctx = new DotOpContext(new ExpressionContext(_parentctx, _parentState)); 1010 pushNewRecursionContext(_localctx, _startState, RULE_expression); 1011 setState(111); 1012 if (!(precpred(_ctx, 19))) throw new FailedPredicateException(this, "precpred(_ctx, 19)"); 1013 setState(112); 1014 match(T__5); 1015 setState(113); 1016 match(Identifier); 1017 } 1018 break; 1019 1020 case 14: 1021 { 1022 _localctx = new BracketOpContext(new ExpressionContext(_parentctx, _parentState)); 1023 pushNewRecursionContext(_localctx, _startState, RULE_expression); 1024 setState(114); 1025 if (!(precpred(_ctx, 18))) throw new FailedPredicateException(this, "precpred(_ctx, 18)"); 1026 setState(115); 1027 match(T__6); 1028 setState(116); 1029 expression(0); 1030 setState(117); 1031 match(T__7); 1032 } 1033 break; 1034 1035 case 15: 1036 { 1037 _localctx = new MethodInvocationContext(new ExpressionContext(_parentctx, _parentState)); 1038 ((MethodInvocationContext)_localctx).target = _prevctx; 1039 pushNewRecursionContext(_localctx, _startState, RULE_expression); 1040 setState(119); 1041 if (!(precpred(_ctx, 17))) throw new FailedPredicateException(this, "precpred(_ctx, 17)"); 1042 setState(120); 1043 match(T__5); 1044 setState(121); 1045 ((MethodInvocationContext)_localctx).methodName = match(Identifier); 1046 setState(122); 1047 match(T__3); 1048 setState(124); 1049 _la = _input.LA(1); 1050 if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__3) | (1L << T__8) | (1L << T__9) | (1L << T__10) | (1L << T__11) | (1L << T__34) | (1L << T__35) | (1L << T__36) | (1L << T__37) | (1L << T__38) | (1L << T__39) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << SingleQuoteString) | (1L << DoubleQuoteString) | (1L << NullLiteral) | (1L << Identifier) | (1L << ResourceReference))) != 0)) { 1051 { 1052 setState(123); 1053 ((MethodInvocationContext)_localctx).args = expressionList(); 1054 } 1055 } 1056 1057 setState(126); 1058 match(T__4); 1059 } 1060 break; 1061 1062 case 16: 1063 { 1064 _localctx = new InstanceOfOpContext(new ExpressionContext(_parentctx, _parentState)); 1065 pushNewRecursionContext(_localctx, _startState, RULE_expression); 1066 setState(127); 1067 if (!(precpred(_ctx, 9))) throw new FailedPredicateException(this, "precpred(_ctx, 9)"); 1068 setState(128); 1069 match(T__22); 1070 setState(129); 1071 type(); 1072 } 1073 break; 1074 } 1075 } 1076 } 1077 setState(134); 1078 _errHandler.sync(this); 1079 _alt = getInterpreter().adaptivePredict(_input,5,_ctx); 1080 } 1081 } 1082 } 1083 catch (RecognitionException re) { 1084 _localctx.exception = re; 1085 _errHandler.reportError(this, re); 1086 _errHandler.recover(this, re); 1087 } 1088 finally { 1089 unrollRecursionContexts(_parentctx); 1090 } 1091 return _localctx; 1092 } 1093 1094 public static class ClassExtractionContext extends ParserRuleContext { 1095 public TypeContext type() { 1096 return getRuleContext(TypeContext.class,0); 1097 } 1098 public ClassExtractionContext(ParserRuleContext parent, int invokingState) { 1099 super(parent, invokingState); 1100 } 1101 @Override public int getRuleIndex() { return RULE_classExtraction; } 1102 @Override 1103 public void enterRule(ParseTreeListener listener) { 1104 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterClassExtraction(this); 1105 } 1106 @Override 1107 public void exitRule(ParseTreeListener listener) { 1108 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitClassExtraction(this); 1109 } 1110 @Override 1111 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 1112 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitClassExtraction(this); 1113 else return visitor.visitChildren(this); 1114 } 1115 } 1116 1117 @RuleVersion(0) 1118 public final ClassExtractionContext classExtraction() throws RecognitionException { 1119 ClassExtractionContext _localctx = new ClassExtractionContext(_ctx, getState()); 1120 enterRule(_localctx, 8, RULE_classExtraction); 1121 try { 1122 setState(142); 1123 switch (_input.LA(1)) { 1124 case T__35: 1125 case T__36: 1126 case T__37: 1127 case T__38: 1128 case T__39: 1129 case T__40: 1130 case T__41: 1131 case T__42: 1132 case Identifier: 1133 enterOuterAlt(_localctx, 1); 1134 { 1135 setState(135); 1136 type(); 1137 setState(136); 1138 match(T__5); 1139 setState(137); 1140 match(T__33); 1141 } 1142 break; 1143 case T__34: 1144 enterOuterAlt(_localctx, 2); 1145 { 1146 setState(139); 1147 match(T__34); 1148 setState(140); 1149 match(T__5); 1150 setState(141); 1151 match(T__33); 1152 } 1153 break; 1154 default: 1155 throw new NoViableAltException(this); 1156 } 1157 } 1158 catch (RecognitionException re) { 1159 _localctx.exception = re; 1160 _errHandler.reportError(this, re); 1161 _errHandler.recover(this, re); 1162 } 1163 finally { 1164 exitRule(); 1165 } 1166 return _localctx; 1167 } 1168 1169 public static class ExpressionListContext extends ParserRuleContext { 1170 public List<? extends ExpressionContext> expression() { 1171 return getRuleContexts(ExpressionContext.class); 1172 } 1173 public ExpressionContext expression(int i) { 1174 return getRuleContext(ExpressionContext.class,i); 1175 } 1176 public ExpressionListContext(ParserRuleContext parent, int invokingState) { 1177 super(parent, invokingState); 1178 } 1179 @Override public int getRuleIndex() { return RULE_expressionList; } 1180 @Override 1181 public void enterRule(ParseTreeListener listener) { 1182 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterExpressionList(this); 1183 } 1184 @Override 1185 public void exitRule(ParseTreeListener listener) { 1186 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitExpressionList(this); 1187 } 1188 @Override 1189 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 1190 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitExpressionList(this); 1191 else return visitor.visitChildren(this); 1192 } 1193 } 1194 1195 @RuleVersion(0) 1196 public final ExpressionListContext expressionList() throws RecognitionException { 1197 ExpressionListContext _localctx = new ExpressionListContext(_ctx, getState()); 1198 enterRule(_localctx, 10, RULE_expressionList); 1199 int _la; 1200 try { 1201 enterOuterAlt(_localctx, 1); 1202 { 1203 setState(144); 1204 expression(0); 1205 setState(149); 1206 _errHandler.sync(this); 1207 _la = _input.LA(1); 1208 while (_la==T__0) { 1209 { 1210 { 1211 setState(145); 1212 match(T__0); 1213 setState(146); 1214 expression(0); 1215 } 1216 } 1217 setState(151); 1218 _errHandler.sync(this); 1219 _la = _input.LA(1); 1220 } 1221 } 1222 } 1223 catch (RecognitionException re) { 1224 _localctx.exception = re; 1225 _errHandler.reportError(this, re); 1226 _errHandler.recover(this, re); 1227 } 1228 finally { 1229 exitRule(); 1230 } 1231 return _localctx; 1232 } 1233 1234 public static class LiteralContext extends ParserRuleContext { 1235 public JavaLiteralContext javaLiteral() { 1236 return getRuleContext(JavaLiteralContext.class,0); 1237 } 1238 public StringLiteralContext stringLiteral() { 1239 return getRuleContext(StringLiteralContext.class,0); 1240 } 1241 public LiteralContext(ParserRuleContext parent, int invokingState) { 1242 super(parent, invokingState); 1243 } 1244 @Override public int getRuleIndex() { return RULE_literal; } 1245 @Override 1246 public void enterRule(ParseTreeListener listener) { 1247 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterLiteral(this); 1248 } 1249 @Override 1250 public void exitRule(ParseTreeListener listener) { 1251 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitLiteral(this); 1252 } 1253 @Override 1254 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 1255 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitLiteral(this); 1256 else return visitor.visitChildren(this); 1257 } 1258 } 1259 1260 @RuleVersion(0) 1261 public final LiteralContext literal() throws RecognitionException { 1262 LiteralContext _localctx = new LiteralContext(_ctx, getState()); 1263 enterRule(_localctx, 12, RULE_literal); 1264 try { 1265 setState(154); 1266 switch (_input.LA(1)) { 1267 case IntegerLiteral: 1268 case FloatingPointLiteral: 1269 case BooleanLiteral: 1270 case CharacterLiteral: 1271 case NullLiteral: 1272 enterOuterAlt(_localctx, 1); 1273 { 1274 setState(152); 1275 javaLiteral(); 1276 } 1277 break; 1278 case SingleQuoteString: 1279 case DoubleQuoteString: 1280 enterOuterAlt(_localctx, 2); 1281 { 1282 setState(153); 1283 stringLiteral(); 1284 } 1285 break; 1286 default: 1287 throw new NoViableAltException(this); 1288 } 1289 } 1290 catch (RecognitionException re) { 1291 _localctx.exception = re; 1292 _errHandler.reportError(this, re); 1293 _errHandler.recover(this, re); 1294 } 1295 finally { 1296 exitRule(); 1297 } 1298 return _localctx; 1299 } 1300 1301 public static class IdentifierContext extends ParserRuleContext { 1302 public TerminalNode Identifier() { return getToken(BindingExpressionParser.Identifier, 0); } 1303 public IdentifierContext(ParserRuleContext parent, int invokingState) { 1304 super(parent, invokingState); 1305 } 1306 @Override public int getRuleIndex() { return RULE_identifier; } 1307 @Override 1308 public void enterRule(ParseTreeListener listener) { 1309 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterIdentifier(this); 1310 } 1311 @Override 1312 public void exitRule(ParseTreeListener listener) { 1313 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitIdentifier(this); 1314 } 1315 @Override 1316 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 1317 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitIdentifier(this); 1318 else return visitor.visitChildren(this); 1319 } 1320 } 1321 1322 @RuleVersion(0) 1323 public final IdentifierContext identifier() throws RecognitionException { 1324 IdentifierContext _localctx = new IdentifierContext(_ctx, getState()); 1325 enterRule(_localctx, 14, RULE_identifier); 1326 try { 1327 enterOuterAlt(_localctx, 1); 1328 { 1329 setState(156); 1330 match(Identifier); 1331 } 1332 } 1333 catch (RecognitionException re) { 1334 _localctx.exception = re; 1335 _errHandler.reportError(this, re); 1336 _errHandler.recover(this, re); 1337 } 1338 finally { 1339 exitRule(); 1340 } 1341 return _localctx; 1342 } 1343 1344 public static class JavaLiteralContext extends ParserRuleContext { 1345 public TerminalNode IntegerLiteral() { return getToken(BindingExpressionParser.IntegerLiteral, 0); } 1346 public TerminalNode FloatingPointLiteral() { return getToken(BindingExpressionParser.FloatingPointLiteral, 0); } 1347 public TerminalNode BooleanLiteral() { return getToken(BindingExpressionParser.BooleanLiteral, 0); } 1348 public TerminalNode NullLiteral() { return getToken(BindingExpressionParser.NullLiteral, 0); } 1349 public TerminalNode CharacterLiteral() { return getToken(BindingExpressionParser.CharacterLiteral, 0); } 1350 public JavaLiteralContext(ParserRuleContext parent, int invokingState) { 1351 super(parent, invokingState); 1352 } 1353 @Override public int getRuleIndex() { return RULE_javaLiteral; } 1354 @Override 1355 public void enterRule(ParseTreeListener listener) { 1356 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterJavaLiteral(this); 1357 } 1358 @Override 1359 public void exitRule(ParseTreeListener listener) { 1360 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitJavaLiteral(this); 1361 } 1362 @Override 1363 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 1364 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitJavaLiteral(this); 1365 else return visitor.visitChildren(this); 1366 } 1367 } 1368 1369 @RuleVersion(0) 1370 public final JavaLiteralContext javaLiteral() throws RecognitionException { 1371 JavaLiteralContext _localctx = new JavaLiteralContext(_ctx, getState()); 1372 enterRule(_localctx, 16, RULE_javaLiteral); 1373 int _la; 1374 try { 1375 enterOuterAlt(_localctx, 1); 1376 { 1377 setState(158); 1378 _la = _input.LA(1); 1379 if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << NullLiteral))) != 0)) ) { 1380 _errHandler.recoverInline(this); 1381 } else { 1382 consume(); 1383 } 1384 } 1385 } 1386 catch (RecognitionException re) { 1387 _localctx.exception = re; 1388 _errHandler.reportError(this, re); 1389 _errHandler.recover(this, re); 1390 } 1391 finally { 1392 exitRule(); 1393 } 1394 return _localctx; 1395 } 1396 1397 public static class StringLiteralContext extends ParserRuleContext { 1398 public TerminalNode SingleQuoteString() { return getToken(BindingExpressionParser.SingleQuoteString, 0); } 1399 public TerminalNode DoubleQuoteString() { return getToken(BindingExpressionParser.DoubleQuoteString, 0); } 1400 public StringLiteralContext(ParserRuleContext parent, int invokingState) { 1401 super(parent, invokingState); 1402 } 1403 @Override public int getRuleIndex() { return RULE_stringLiteral; } 1404 @Override 1405 public void enterRule(ParseTreeListener listener) { 1406 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterStringLiteral(this); 1407 } 1408 @Override 1409 public void exitRule(ParseTreeListener listener) { 1410 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitStringLiteral(this); 1411 } 1412 @Override 1413 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 1414 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitStringLiteral(this); 1415 else return visitor.visitChildren(this); 1416 } 1417 } 1418 1419 @RuleVersion(0) 1420 public final StringLiteralContext stringLiteral() throws RecognitionException { 1421 StringLiteralContext _localctx = new StringLiteralContext(_ctx, getState()); 1422 enterRule(_localctx, 18, RULE_stringLiteral); 1423 int _la; 1424 try { 1425 enterOuterAlt(_localctx, 1); 1426 { 1427 setState(160); 1428 _la = _input.LA(1); 1429 if ( !(_la==SingleQuoteString || _la==DoubleQuoteString) ) { 1430 _errHandler.recoverInline(this); 1431 } else { 1432 consume(); 1433 } 1434 } 1435 } 1436 catch (RecognitionException re) { 1437 _localctx.exception = re; 1438 _errHandler.reportError(this, re); 1439 _errHandler.recover(this, re); 1440 } 1441 finally { 1442 exitRule(); 1443 } 1444 return _localctx; 1445 } 1446 1447 public static class ExplicitGenericInvocationContext extends ParserRuleContext { 1448 public TypeArgumentsContext typeArguments() { 1449 return getRuleContext(TypeArgumentsContext.class,0); 1450 } 1451 public ExplicitGenericInvocationSuffixContext explicitGenericInvocationSuffix() { 1452 return getRuleContext(ExplicitGenericInvocationSuffixContext.class,0); 1453 } 1454 public ExplicitGenericInvocationContext(ParserRuleContext parent, int invokingState) { 1455 super(parent, invokingState); 1456 } 1457 @Override public int getRuleIndex() { return RULE_explicitGenericInvocation; } 1458 @Override 1459 public void enterRule(ParseTreeListener listener) { 1460 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterExplicitGenericInvocation(this); 1461 } 1462 @Override 1463 public void exitRule(ParseTreeListener listener) { 1464 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitExplicitGenericInvocation(this); 1465 } 1466 @Override 1467 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 1468 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitExplicitGenericInvocation(this); 1469 else return visitor.visitChildren(this); 1470 } 1471 } 1472 1473 @RuleVersion(0) 1474 public final ExplicitGenericInvocationContext explicitGenericInvocation() throws RecognitionException { 1475 ExplicitGenericInvocationContext _localctx = new ExplicitGenericInvocationContext(_ctx, getState()); 1476 enterRule(_localctx, 20, RULE_explicitGenericInvocation); 1477 try { 1478 enterOuterAlt(_localctx, 1); 1479 { 1480 setState(162); 1481 typeArguments(); 1482 setState(163); 1483 explicitGenericInvocationSuffix(); 1484 } 1485 } 1486 catch (RecognitionException re) { 1487 _localctx.exception = re; 1488 _errHandler.reportError(this, re); 1489 _errHandler.recover(this, re); 1490 } 1491 finally { 1492 exitRule(); 1493 } 1494 return _localctx; 1495 } 1496 1497 public static class TypeArgumentsContext extends ParserRuleContext { 1498 public List<? extends TypeContext> type() { 1499 return getRuleContexts(TypeContext.class); 1500 } 1501 public TypeContext type(int i) { 1502 return getRuleContext(TypeContext.class,i); 1503 } 1504 public TypeArgumentsContext(ParserRuleContext parent, int invokingState) { 1505 super(parent, invokingState); 1506 } 1507 @Override public int getRuleIndex() { return RULE_typeArguments; } 1508 @Override 1509 public void enterRule(ParseTreeListener listener) { 1510 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterTypeArguments(this); 1511 } 1512 @Override 1513 public void exitRule(ParseTreeListener listener) { 1514 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitTypeArguments(this); 1515 } 1516 @Override 1517 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 1518 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitTypeArguments(this); 1519 else return visitor.visitChildren(this); 1520 } 1521 } 1522 1523 @RuleVersion(0) 1524 public final TypeArgumentsContext typeArguments() throws RecognitionException { 1525 TypeArgumentsContext _localctx = new TypeArgumentsContext(_ctx, getState()); 1526 enterRule(_localctx, 22, RULE_typeArguments); 1527 int _la; 1528 try { 1529 enterOuterAlt(_localctx, 1); 1530 { 1531 setState(165); 1532 match(T__21); 1533 setState(166); 1534 type(); 1535 setState(171); 1536 _errHandler.sync(this); 1537 _la = _input.LA(1); 1538 while (_la==T__0) { 1539 { 1540 { 1541 setState(167); 1542 match(T__0); 1543 setState(168); 1544 type(); 1545 } 1546 } 1547 setState(173); 1548 _errHandler.sync(this); 1549 _la = _input.LA(1); 1550 } 1551 setState(174); 1552 match(T__20); 1553 } 1554 } 1555 catch (RecognitionException re) { 1556 _localctx.exception = re; 1557 _errHandler.reportError(this, re); 1558 _errHandler.recover(this, re); 1559 } 1560 finally { 1561 exitRule(); 1562 } 1563 return _localctx; 1564 } 1565 1566 public static class TypeContext extends ParserRuleContext { 1567 public ClassOrInterfaceTypeContext classOrInterfaceType() { 1568 return getRuleContext(ClassOrInterfaceTypeContext.class,0); 1569 } 1570 public PrimitiveTypeContext primitiveType() { 1571 return getRuleContext(PrimitiveTypeContext.class,0); 1572 } 1573 public TypeContext(ParserRuleContext parent, int invokingState) { 1574 super(parent, invokingState); 1575 } 1576 @Override public int getRuleIndex() { return RULE_type; } 1577 @Override 1578 public void enterRule(ParseTreeListener listener) { 1579 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterType(this); 1580 } 1581 @Override 1582 public void exitRule(ParseTreeListener listener) { 1583 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitType(this); 1584 } 1585 @Override 1586 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 1587 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitType(this); 1588 else return visitor.visitChildren(this); 1589 } 1590 } 1591 1592 @RuleVersion(0) 1593 public final TypeContext type() throws RecognitionException { 1594 TypeContext _localctx = new TypeContext(_ctx, getState()); 1595 enterRule(_localctx, 24, RULE_type); 1596 try { 1597 int _alt; 1598 setState(192); 1599 switch (_input.LA(1)) { 1600 case Identifier: 1601 enterOuterAlt(_localctx, 1); 1602 { 1603 setState(176); 1604 classOrInterfaceType(); 1605 setState(181); 1606 _errHandler.sync(this); 1607 _alt = getInterpreter().adaptivePredict(_input,10,_ctx); 1608 while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { 1609 if ( _alt==1 ) { 1610 { 1611 { 1612 setState(177); 1613 match(T__6); 1614 setState(178); 1615 match(T__7); 1616 } 1617 } 1618 } 1619 setState(183); 1620 _errHandler.sync(this); 1621 _alt = getInterpreter().adaptivePredict(_input,10,_ctx); 1622 } 1623 } 1624 break; 1625 case T__35: 1626 case T__36: 1627 case T__37: 1628 case T__38: 1629 case T__39: 1630 case T__40: 1631 case T__41: 1632 case T__42: 1633 enterOuterAlt(_localctx, 2); 1634 { 1635 setState(184); 1636 primitiveType(); 1637 setState(189); 1638 _errHandler.sync(this); 1639 _alt = getInterpreter().adaptivePredict(_input,11,_ctx); 1640 while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { 1641 if ( _alt==1 ) { 1642 { 1643 { 1644 setState(185); 1645 match(T__6); 1646 setState(186); 1647 match(T__7); 1648 } 1649 } 1650 } 1651 setState(191); 1652 _errHandler.sync(this); 1653 _alt = getInterpreter().adaptivePredict(_input,11,_ctx); 1654 } 1655 } 1656 break; 1657 default: 1658 throw new NoViableAltException(this); 1659 } 1660 } 1661 catch (RecognitionException re) { 1662 _localctx.exception = re; 1663 _errHandler.reportError(this, re); 1664 _errHandler.recover(this, re); 1665 } 1666 finally { 1667 exitRule(); 1668 } 1669 return _localctx; 1670 } 1671 1672 public static class ExplicitGenericInvocationSuffixContext extends ParserRuleContext { 1673 public TerminalNode Identifier() { return getToken(BindingExpressionParser.Identifier, 0); } 1674 public ArgumentsContext arguments() { 1675 return getRuleContext(ArgumentsContext.class,0); 1676 } 1677 public ExplicitGenericInvocationSuffixContext(ParserRuleContext parent, int invokingState) { 1678 super(parent, invokingState); 1679 } 1680 @Override public int getRuleIndex() { return RULE_explicitGenericInvocationSuffix; } 1681 @Override 1682 public void enterRule(ParseTreeListener listener) { 1683 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterExplicitGenericInvocationSuffix(this); 1684 } 1685 @Override 1686 public void exitRule(ParseTreeListener listener) { 1687 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitExplicitGenericInvocationSuffix(this); 1688 } 1689 @Override 1690 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 1691 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitExplicitGenericInvocationSuffix(this); 1692 else return visitor.visitChildren(this); 1693 } 1694 } 1695 1696 @RuleVersion(0) 1697 public final ExplicitGenericInvocationSuffixContext explicitGenericInvocationSuffix() throws RecognitionException { 1698 ExplicitGenericInvocationSuffixContext _localctx = new ExplicitGenericInvocationSuffixContext(_ctx, getState()); 1699 enterRule(_localctx, 26, RULE_explicitGenericInvocationSuffix); 1700 try { 1701 enterOuterAlt(_localctx, 1); 1702 { 1703 setState(194); 1704 match(Identifier); 1705 setState(195); 1706 arguments(); 1707 } 1708 } 1709 catch (RecognitionException re) { 1710 _localctx.exception = re; 1711 _errHandler.reportError(this, re); 1712 _errHandler.recover(this, re); 1713 } 1714 finally { 1715 exitRule(); 1716 } 1717 return _localctx; 1718 } 1719 1720 public static class ArgumentsContext extends ParserRuleContext { 1721 public ExpressionListContext expressionList() { 1722 return getRuleContext(ExpressionListContext.class,0); 1723 } 1724 public ArgumentsContext(ParserRuleContext parent, int invokingState) { 1725 super(parent, invokingState); 1726 } 1727 @Override public int getRuleIndex() { return RULE_arguments; } 1728 @Override 1729 public void enterRule(ParseTreeListener listener) { 1730 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterArguments(this); 1731 } 1732 @Override 1733 public void exitRule(ParseTreeListener listener) { 1734 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitArguments(this); 1735 } 1736 @Override 1737 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 1738 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitArguments(this); 1739 else return visitor.visitChildren(this); 1740 } 1741 } 1742 1743 @RuleVersion(0) 1744 public final ArgumentsContext arguments() throws RecognitionException { 1745 ArgumentsContext _localctx = new ArgumentsContext(_ctx, getState()); 1746 enterRule(_localctx, 28, RULE_arguments); 1747 int _la; 1748 try { 1749 enterOuterAlt(_localctx, 1); 1750 { 1751 setState(197); 1752 match(T__3); 1753 setState(199); 1754 _la = _input.LA(1); 1755 if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__3) | (1L << T__8) | (1L << T__9) | (1L << T__10) | (1L << T__11) | (1L << T__34) | (1L << T__35) | (1L << T__36) | (1L << T__37) | (1L << T__38) | (1L << T__39) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << SingleQuoteString) | (1L << DoubleQuoteString) | (1L << NullLiteral) | (1L << Identifier) | (1L << ResourceReference))) != 0)) { 1756 { 1757 setState(198); 1758 expressionList(); 1759 } 1760 } 1761 1762 setState(201); 1763 match(T__4); 1764 } 1765 } 1766 catch (RecognitionException re) { 1767 _localctx.exception = re; 1768 _errHandler.reportError(this, re); 1769 _errHandler.recover(this, re); 1770 } 1771 finally { 1772 exitRule(); 1773 } 1774 return _localctx; 1775 } 1776 1777 public static class ClassOrInterfaceTypeContext extends ParserRuleContext { 1778 public IdentifierContext identifier() { 1779 return getRuleContext(IdentifierContext.class,0); 1780 } 1781 public List<? extends TypeArgumentsContext> typeArguments() { 1782 return getRuleContexts(TypeArgumentsContext.class); 1783 } 1784 public TypeArgumentsContext typeArguments(int i) { 1785 return getRuleContext(TypeArgumentsContext.class,i); 1786 } 1787 public List<? extends TerminalNode> Identifier() { return getTokens(BindingExpressionParser.Identifier); } 1788 public TerminalNode Identifier(int i) { 1789 return getToken(BindingExpressionParser.Identifier, i); 1790 } 1791 public ClassOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { 1792 super(parent, invokingState); 1793 } 1794 @Override public int getRuleIndex() { return RULE_classOrInterfaceType; } 1795 @Override 1796 public void enterRule(ParseTreeListener listener) { 1797 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterClassOrInterfaceType(this); 1798 } 1799 @Override 1800 public void exitRule(ParseTreeListener listener) { 1801 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitClassOrInterfaceType(this); 1802 } 1803 @Override 1804 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 1805 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitClassOrInterfaceType(this); 1806 else return visitor.visitChildren(this); 1807 } 1808 } 1809 1810 @RuleVersion(0) 1811 public final ClassOrInterfaceTypeContext classOrInterfaceType() throws RecognitionException { 1812 ClassOrInterfaceTypeContext _localctx = new ClassOrInterfaceTypeContext(_ctx, getState()); 1813 enterRule(_localctx, 30, RULE_classOrInterfaceType); 1814 try { 1815 int _alt; 1816 enterOuterAlt(_localctx, 1); 1817 { 1818 setState(203); 1819 identifier(); 1820 setState(205); 1821 switch ( getInterpreter().adaptivePredict(_input,14,_ctx) ) { 1822 case 1: 1823 { 1824 setState(204); 1825 typeArguments(); 1826 } 1827 break; 1828 } 1829 setState(214); 1830 _errHandler.sync(this); 1831 _alt = getInterpreter().adaptivePredict(_input,16,_ctx); 1832 while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { 1833 if ( _alt==1 ) { 1834 { 1835 { 1836 setState(207); 1837 match(T__5); 1838 setState(208); 1839 match(Identifier); 1840 setState(210); 1841 switch ( getInterpreter().adaptivePredict(_input,15,_ctx) ) { 1842 case 1: 1843 { 1844 setState(209); 1845 typeArguments(); 1846 } 1847 break; 1848 } 1849 } 1850 } 1851 } 1852 setState(216); 1853 _errHandler.sync(this); 1854 _alt = getInterpreter().adaptivePredict(_input,16,_ctx); 1855 } 1856 } 1857 } 1858 catch (RecognitionException re) { 1859 _localctx.exception = re; 1860 _errHandler.reportError(this, re); 1861 _errHandler.recover(this, re); 1862 } 1863 finally { 1864 exitRule(); 1865 } 1866 return _localctx; 1867 } 1868 1869 public static class PrimitiveTypeContext extends ParserRuleContext { 1870 public PrimitiveTypeContext(ParserRuleContext parent, int invokingState) { 1871 super(parent, invokingState); 1872 } 1873 @Override public int getRuleIndex() { return RULE_primitiveType; } 1874 @Override 1875 public void enterRule(ParseTreeListener listener) { 1876 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterPrimitiveType(this); 1877 } 1878 @Override 1879 public void exitRule(ParseTreeListener listener) { 1880 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitPrimitiveType(this); 1881 } 1882 @Override 1883 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 1884 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitPrimitiveType(this); 1885 else return visitor.visitChildren(this); 1886 } 1887 } 1888 1889 @RuleVersion(0) 1890 public final PrimitiveTypeContext primitiveType() throws RecognitionException { 1891 PrimitiveTypeContext _localctx = new PrimitiveTypeContext(_ctx, getState()); 1892 enterRule(_localctx, 32, RULE_primitiveType); 1893 int _la; 1894 try { 1895 enterOuterAlt(_localctx, 1); 1896 { 1897 setState(217); 1898 _la = _input.LA(1); 1899 if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__35) | (1L << T__36) | (1L << T__37) | (1L << T__38) | (1L << T__39) | (1L << T__40) | (1L << T__41) | (1L << T__42))) != 0)) ) { 1900 _errHandler.recoverInline(this); 1901 } else { 1902 consume(); 1903 } 1904 } 1905 } 1906 catch (RecognitionException re) { 1907 _localctx.exception = re; 1908 _errHandler.reportError(this, re); 1909 _errHandler.recover(this, re); 1910 } 1911 finally { 1912 exitRule(); 1913 } 1914 return _localctx; 1915 } 1916 1917 public static class ResourcesContext extends ParserRuleContext { 1918 public TerminalNode ResourceReference() { return getToken(BindingExpressionParser.ResourceReference, 0); } 1919 public ResourceParametersContext resourceParameters() { 1920 return getRuleContext(ResourceParametersContext.class,0); 1921 } 1922 public ResourcesContext(ParserRuleContext parent, int invokingState) { 1923 super(parent, invokingState); 1924 } 1925 @Override public int getRuleIndex() { return RULE_resources; } 1926 @Override 1927 public void enterRule(ParseTreeListener listener) { 1928 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterResources(this); 1929 } 1930 @Override 1931 public void exitRule(ParseTreeListener listener) { 1932 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitResources(this); 1933 } 1934 @Override 1935 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 1936 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitResources(this); 1937 else return visitor.visitChildren(this); 1938 } 1939 } 1940 1941 @RuleVersion(0) 1942 public final ResourcesContext resources() throws RecognitionException { 1943 ResourcesContext _localctx = new ResourcesContext(_ctx, getState()); 1944 enterRule(_localctx, 34, RULE_resources); 1945 try { 1946 enterOuterAlt(_localctx, 1); 1947 { 1948 setState(219); 1949 match(ResourceReference); 1950 setState(221); 1951 switch ( getInterpreter().adaptivePredict(_input,17,_ctx) ) { 1952 case 1: 1953 { 1954 setState(220); 1955 resourceParameters(); 1956 } 1957 break; 1958 } 1959 } 1960 } 1961 catch (RecognitionException re) { 1962 _localctx.exception = re; 1963 _errHandler.reportError(this, re); 1964 _errHandler.recover(this, re); 1965 } 1966 finally { 1967 exitRule(); 1968 } 1969 return _localctx; 1970 } 1971 1972 public static class ResourceParametersContext extends ParserRuleContext { 1973 public ExpressionListContext expressionList() { 1974 return getRuleContext(ExpressionListContext.class,0); 1975 } 1976 public ResourceParametersContext(ParserRuleContext parent, int invokingState) { 1977 super(parent, invokingState); 1978 } 1979 @Override public int getRuleIndex() { return RULE_resourceParameters; } 1980 @Override 1981 public void enterRule(ParseTreeListener listener) { 1982 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterResourceParameters(this); 1983 } 1984 @Override 1985 public void exitRule(ParseTreeListener listener) { 1986 if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitResourceParameters(this); 1987 } 1988 @Override 1989 public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) { 1990 if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitResourceParameters(this); 1991 else return visitor.visitChildren(this); 1992 } 1993 } 1994 1995 @RuleVersion(0) 1996 public final ResourceParametersContext resourceParameters() throws RecognitionException { 1997 ResourceParametersContext _localctx = new ResourceParametersContext(_ctx, getState()); 1998 enterRule(_localctx, 36, RULE_resourceParameters); 1999 try { 2000 enterOuterAlt(_localctx, 1); 2001 { 2002 setState(223); 2003 match(T__3); 2004 setState(224); 2005 expressionList(); 2006 setState(225); 2007 match(T__4); 2008 } 2009 } 2010 catch (RecognitionException re) { 2011 _localctx.exception = re; 2012 _errHandler.reportError(this, re); 2013 _errHandler.recover(this, re); 2014 } 2015 finally { 2016 exitRule(); 2017 } 2018 return _localctx; 2019 } 2020 2021 public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { 2022 switch (ruleIndex) { 2023 case 3: 2024 return expression_sempred((ExpressionContext)_localctx, predIndex); 2025 } 2026 return true; 2027 } 2028 private boolean expression_sempred(ExpressionContext _localctx, int predIndex) { 2029 switch (predIndex) { 2030 case 0: 2031 return precpred(_ctx, 13); 2032 2033 case 1: 2034 return precpred(_ctx, 12); 2035 2036 case 2: 2037 return precpred(_ctx, 11); 2038 2039 case 3: 2040 return precpred(_ctx, 10); 2041 2042 case 4: 2043 return precpred(_ctx, 8); 2044 2045 case 5: 2046 return precpred(_ctx, 7); 2047 2048 case 6: 2049 return precpred(_ctx, 6); 2050 2051 case 7: 2052 return precpred(_ctx, 5); 2053 2054 case 8: 2055 return precpred(_ctx, 4); 2056 2057 case 9: 2058 return precpred(_ctx, 3); 2059 2060 case 10: 2061 return precpred(_ctx, 2); 2062 2063 case 11: 2064 return precpred(_ctx, 1); 2065 2066 case 12: 2067 return precpred(_ctx, 19); 2068 2069 case 13: 2070 return precpred(_ctx, 18); 2071 2072 case 14: 2073 return precpred(_ctx, 17); 2074 2075 case 15: 2076 return precpred(_ctx, 9); 2077 } 2078 return true; 2079 } 2080 2081 public static final String _serializedATN = 2082 "\3\uaf6f\u8320\u479d\ub75c\u4880\u1605\u191c\uab37\3:\u00e6\4\2\t\2\4"+ 2083 "\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+ 2084 "\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ 2085 "\4\23\t\23\4\24\t\24\3\2\3\2\5\2+\n\2\3\3\3\3\3\3\3\3\3\3\3\4\3\4\3\4"+ 2086 "\5\4\65\n\4\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3"+ 2087 "\5\3\5\3\5\3\5\5\5I\n\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3"+ 2088 "\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5"+ 2089 "\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3"+ 2090 "\5\3\5\3\5\3\5\3\5\3\5\5\5\177\n\5\3\5\3\5\3\5\3\5\7\5\u0085\n\5\f\5\16"+ 2091 "\5\u0088\13\5\3\6\3\6\3\6\3\6\3\6\3\6\3\6\5\6\u0091\n\6\3\7\3\7\3\7\7"+ 2092 "\7\u0096\n\7\f\7\16\7\u0099\13\7\3\b\3\b\5\b\u009d\n\b\3\t\3\t\3\n\3\n"+ 2093 "\3\13\3\13\3\f\3\f\3\f\3\r\3\r\3\r\3\r\7\r\u00ac\n\r\f\r\16\r\u00af\13"+ 2094 "\r\3\r\3\r\3\16\3\16\3\16\7\16\u00b6\n\16\f\16\16\16\u00b9\13\16\3\16"+ 2095 "\3\16\3\16\7\16\u00be\n\16\f\16\16\16\u00c1\13\16\5\16\u00c3\n\16\3\17"+ 2096 "\3\17\3\17\3\20\3\20\5\20\u00ca\n\20\3\20\3\20\3\21\3\21\5\21\u00d0\n"+ 2097 "\21\3\21\3\21\3\21\5\21\u00d5\n\21\7\21\u00d7\n\21\f\21\16\21\u00da\13"+ 2098 "\21\3\22\3\22\3\23\3\23\5\23\u00e0\n\23\3\24\3\24\3\24\3\24\3\24\2\2\3"+ 2099 "\b\25\2\2\4\2\6\2\b\2\n\2\f\2\16\2\20\2\22\2\24\2\26\2\30\2\32\2\34\2"+ 2100 "\36\2 \2\"\2$\2&\2\2\13\3\2\13\f\3\2\r\16\3\2\17\21\3\2\22\24\3\2\25\30"+ 2101 "\3\2\32\33\4\2/\62\65\65\3\2\63\64\3\2&-\u00f9\2(\3\2\2\2\4,\3\2\2\2\6"+ 2102 "\64\3\2\2\2\bH\3\2\2\2\n\u0090\3\2\2\2\f\u0092\3\2\2\2\16\u009c\3\2\2"+ 2103 "\2\20\u009e\3\2\2\2\22\u00a0\3\2\2\2\24\u00a2\3\2\2\2\26\u00a4\3\2\2\2"+ 2104 "\30\u00a7\3\2\2\2\32\u00c2\3\2\2\2\34\u00c4\3\2\2\2\36\u00c7\3\2\2\2 "+ 2105 "\u00cd\3\2\2\2\"\u00db\3\2\2\2$\u00dd\3\2\2\2&\u00e1\3\2\2\2(*\5\b\5\2"+ 2106 ")+\5\4\3\2*)\3\2\2\2*+\3\2\2\2+\3\3\2\2\2,-\7\3\2\2-.\7\4\2\2./\7\5\2"+ 2107 "\2/\60\5\6\4\2\60\5\3\2\2\2\61\65\5\16\b\2\62\65\78\2\2\63\65\5\20\t\2"+ 2108 "\64\61\3\2\2\2\64\62\3\2\2\2\64\63\3\2\2\2\65\7\3\2\2\2\66\67\b\5\1\2"+ 2109 "\678\7\6\2\289\5\32\16\29:\7\7\2\2:;\5\b\5\22;I\3\2\2\2<=\t\2\2\2=I\5"+ 2110 "\b\5\21>?\t\3\2\2?I\5\b\5\20@A\7\6\2\2AB\5\b\5\2BC\7\7\2\2CI\3\2\2\2D"+ 2111 "I\5\16\b\2EI\5\20\t\2FI\5\n\6\2GI\5$\23\2H\66\3\2\2\2H<\3\2\2\2H>\3\2"+ 2112 "\2\2H@\3\2\2\2HD\3\2\2\2HE\3\2\2\2HF\3\2\2\2HG\3\2\2\2I\u0086\3\2\2\2"+ 2113 "JK\f\17\2\2KL\t\4\2\2L\u0085\5\b\5\20MN\f\16\2\2NO\t\2\2\2O\u0085\5\b"+ 2114 "\5\17PQ\f\r\2\2QR\t\5\2\2R\u0085\5\b\5\16ST\f\f\2\2TU\t\6\2\2U\u0085\5"+ 2115 "\b\5\rVW\f\n\2\2WX\t\7\2\2X\u0085\5\b\5\13YZ\f\t\2\2Z[\7\34\2\2[\u0085"+ 2116 "\5\b\5\n\\]\f\b\2\2]^\7\35\2\2^\u0085\5\b\5\t_`\f\7\2\2`a\7\36\2\2a\u0085"+ 2117 "\5\b\5\bbc\f\6\2\2cd\7\37\2\2d\u0085\5\b\5\7ef\f\5\2\2fg\7 \2\2g\u0085"+ 2118 "\5\b\5\6hi\f\4\2\2ij\7!\2\2jk\5\b\5\2kl\7\"\2\2lm\5\b\5\4m\u0085\3\2\2"+ 2119 "\2no\f\3\2\2op\7#\2\2p\u0085\5\b\5\4qr\f\25\2\2rs\7\b\2\2s\u0085\7\66"+ 2120 "\2\2tu\f\24\2\2uv\7\t\2\2vw\5\b\5\2wx\7\n\2\2x\u0085\3\2\2\2yz\f\23\2"+ 2121 "\2z{\7\b\2\2{|\7\66\2\2|~\7\6\2\2}\177\5\f\7\2~}\3\2\2\2~\177\3\2\2\2"+ 2122 "\177\u0080\3\2\2\2\u0080\u0085\7\7\2\2\u0081\u0082\f\13\2\2\u0082\u0083"+ 2123 "\7\31\2\2\u0083\u0085\5\32\16\2\u0084J\3\2\2\2\u0084M\3\2\2\2\u0084P\3"+ 2124 "\2\2\2\u0084S\3\2\2\2\u0084V\3\2\2\2\u0084Y\3\2\2\2\u0084\\\3\2\2\2\u0084"+ 2125 "_\3\2\2\2\u0084b\3\2\2\2\u0084e\3\2\2\2\u0084h\3\2\2\2\u0084n\3\2\2\2"+ 2126 "\u0084q\3\2\2\2\u0084t\3\2\2\2\u0084y\3\2\2\2\u0084\u0081\3\2\2\2\u0085"+ 2127 "\u0088\3\2\2\2\u0086\u0084\3\2\2\2\u0086\u0087\3\2\2\2\u0087\t\3\2\2\2"+ 2128 "\u0088\u0086\3\2\2\2\u0089\u008a\5\32\16\2\u008a\u008b\7\b\2\2\u008b\u008c"+ 2129 "\7$\2\2\u008c\u0091\3\2\2\2\u008d\u008e\7%\2\2\u008e\u008f\7\b\2\2\u008f"+ 2130 "\u0091\7$\2\2\u0090\u0089\3\2\2\2\u0090\u008d\3\2\2\2\u0091\13\3\2\2\2"+ 2131 "\u0092\u0097\5\b\5\2\u0093\u0094\7\3\2\2\u0094\u0096\5\b\5\2\u0095\u0093"+ 2132 "\3\2\2\2\u0096\u0099\3\2\2\2\u0097\u0095\3\2\2\2\u0097\u0098\3\2\2\2\u0098"+ 2133 "\r\3\2\2\2\u0099\u0097\3\2\2\2\u009a\u009d\5\22\n\2\u009b\u009d\5\24\13"+ 2134 "\2\u009c\u009a\3\2\2\2\u009c\u009b\3\2\2\2\u009d\17\3\2\2\2\u009e\u009f"+ 2135 "\7\66\2\2\u009f\21\3\2\2\2\u00a0\u00a1\t\b\2\2\u00a1\23\3\2\2\2\u00a2"+ 2136 "\u00a3\t\t\2\2\u00a3\25\3\2\2\2\u00a4\u00a5\5\30\r\2\u00a5\u00a6\5\34"+ 2137 "\17\2\u00a6\27\3\2\2\2\u00a7\u00a8\7\30\2\2\u00a8\u00ad\5\32\16\2\u00a9"+ 2138 "\u00aa\7\3\2\2\u00aa\u00ac\5\32\16\2\u00ab\u00a9\3\2\2\2\u00ac\u00af\3"+ 2139 "\2\2\2\u00ad\u00ab\3\2\2\2\u00ad\u00ae\3\2\2\2\u00ae\u00b0\3\2\2\2\u00af"+ 2140 "\u00ad\3\2\2\2\u00b0\u00b1\7\27\2\2\u00b1\31\3\2\2\2\u00b2\u00b7\5 \21"+ 2141 "\2\u00b3\u00b4\7\t\2\2\u00b4\u00b6\7\n\2\2\u00b5\u00b3\3\2\2\2\u00b6\u00b9"+ 2142 "\3\2\2\2\u00b7\u00b5\3\2\2\2\u00b7\u00b8\3\2\2\2\u00b8\u00c3\3\2\2\2\u00b9"+ 2143 "\u00b7\3\2\2\2\u00ba\u00bf\5\"\22\2\u00bb\u00bc\7\t\2\2\u00bc\u00be\7"+ 2144 "\n\2\2\u00bd\u00bb\3\2\2\2\u00be\u00c1\3\2\2\2\u00bf\u00bd\3\2\2\2\u00bf"+ 2145 "\u00c0\3\2\2\2\u00c0\u00c3\3\2\2\2\u00c1\u00bf\3\2\2\2\u00c2\u00b2\3\2"+ 2146 "\2\2\u00c2\u00ba\3\2\2\2\u00c3\33\3\2\2\2\u00c4\u00c5\7\66\2\2\u00c5\u00c6"+ 2147 "\5\36\20\2\u00c6\35\3\2\2\2\u00c7\u00c9\7\6\2\2\u00c8\u00ca\5\f\7\2\u00c9"+ 2148 "\u00c8\3\2\2\2\u00c9\u00ca\3\2\2\2\u00ca\u00cb\3\2\2\2\u00cb\u00cc\7\7"+ 2149 "\2\2\u00cc\37\3\2\2\2\u00cd\u00cf\5\20\t\2\u00ce\u00d0\5\30\r\2\u00cf"+ 2150 "\u00ce\3\2\2\2\u00cf\u00d0\3\2\2\2\u00d0\u00d8\3\2\2\2\u00d1\u00d2\7\b"+ 2151 "\2\2\u00d2\u00d4\7\66\2\2\u00d3\u00d5\5\30\r\2\u00d4\u00d3\3\2\2\2\u00d4"+ 2152 "\u00d5\3\2\2\2\u00d5\u00d7\3\2\2\2\u00d6\u00d1\3\2\2\2\u00d7\u00da\3\2"+ 2153 "\2\2\u00d8\u00d6\3\2\2\2\u00d8\u00d9\3\2\2\2\u00d9!\3\2\2\2\u00da\u00d8"+ 2154 "\3\2\2\2\u00db\u00dc\t\n\2\2\u00dc#\3\2\2\2\u00dd\u00df\78\2\2\u00de\u00e0"+ 2155 "\5&\24\2\u00df\u00de\3\2\2\2\u00df\u00e0\3\2\2\2\u00e0%\3\2\2\2\u00e1"+ 2156 "\u00e2\7\6\2\2\u00e2\u00e3\5\f\7\2\u00e3\u00e4\7\7\2\2\u00e4\'\3\2\2\2"+ 2157 "\24*\64H~\u0084\u0086\u0090\u0097\u009c\u00ad\u00b7\u00bf\u00c2\u00c9"+ 2158 "\u00cf\u00d4\u00d8\u00df"; 2159 public static final ATN _ATN = 2160 new ATNDeserializer().deserialize(_serializedATN.toCharArray()); 2161 static { 2162 } 2163}