// $ANTLR start "literal" // /home/jon/flume/src/antlr/FlumeShell.g:93:1: literal : ( DQuoteLiteral -> ^( DQUOTE // DQuoteLiteral ) | SQuoteLiteral -> ^( SQUOTE SQuoteLiteral ) | Argument -> ^( STRING Argument ) // ); public final FlumeShellParser.literal_return literal() throws RecognitionException { FlumeShellParser.literal_return retval = new FlumeShellParser.literal_return(); retval.start = input.LT(1); Object root_0 = null; Token DQuoteLiteral8 = null; Token SQuoteLiteral9 = null; Token Argument10 = null; Object DQuoteLiteral8_tree = null; Object SQuoteLiteral9_tree = null; Object Argument10_tree = null; RewriteRuleTokenStream stream_Argument = new RewriteRuleTokenStream(adaptor, "token Argument"); RewriteRuleTokenStream stream_DQuoteLiteral = new RewriteRuleTokenStream(adaptor, "token DQuoteLiteral"); RewriteRuleTokenStream stream_SQuoteLiteral = new RewriteRuleTokenStream(adaptor, "token SQuoteLiteral"); try { // /home/jon/flume/src/antlr/FlumeShell.g:94:5: ( DQuoteLiteral -> ^( DQUOTE DQuoteLiteral ) | // SQuoteLiteral -> ^( SQUOTE SQuoteLiteral ) | Argument -> ^( STRING Argument ) ) int alt3 = 3; switch (input.LA(1)) { case DQuoteLiteral: { alt3 = 1; } break; case SQuoteLiteral: { alt3 = 2; } break; case Argument: { alt3 = 3; } break; default: NoViableAltException nvae = new NoViableAltException("", 3, 0, input); throw nvae; } switch (alt3) { case 1: // /home/jon/flume/src/antlr/FlumeShell.g:94:9: DQuoteLiteral { DQuoteLiteral8 = (Token) match(input, DQuoteLiteral, FOLLOW_DQuoteLiteral_in_literal150); stream_DQuoteLiteral.add(DQuoteLiteral8); // AST REWRITE // elements: DQuoteLiteral // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream( adaptor, "rule retval", retval != null ? retval.tree : null); root_0 = (Object) adaptor.nil(); // 94:23: -> ^( DQUOTE DQuoteLiteral ) { // /home/jon/flume/src/antlr/FlumeShell.g:94:26: ^( DQUOTE DQuoteLiteral ) { Object root_1 = (Object) adaptor.nil(); root_1 = (Object) adaptor.becomeRoot((Object) adaptor.create(DQUOTE, "DQUOTE"), root_1); adaptor.addChild(root_1, stream_DQuoteLiteral.nextNode()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 2: // /home/jon/flume/src/antlr/FlumeShell.g:95:9: SQuoteLiteral { SQuoteLiteral9 = (Token) match(input, SQuoteLiteral, FOLLOW_SQuoteLiteral_in_literal170); stream_SQuoteLiteral.add(SQuoteLiteral9); // AST REWRITE // elements: SQuoteLiteral // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream( adaptor, "rule retval", retval != null ? retval.tree : null); root_0 = (Object) adaptor.nil(); // 95:23: -> ^( SQUOTE SQuoteLiteral ) { // /home/jon/flume/src/antlr/FlumeShell.g:95:26: ^( SQUOTE SQuoteLiteral ) { Object root_1 = (Object) adaptor.nil(); root_1 = (Object) adaptor.becomeRoot((Object) adaptor.create(SQUOTE, "SQUOTE"), root_1); adaptor.addChild(root_1, stream_SQuoteLiteral.nextNode()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 3: // /home/jon/flume/src/antlr/FlumeShell.g:96:9: Argument { Argument10 = (Token) match(input, Argument, FOLLOW_Argument_in_literal188); stream_Argument.add(Argument10); // AST REWRITE // elements: Argument // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream( adaptor, "rule retval", retval != null ? retval.tree : null); root_0 = (Object) adaptor.nil(); // 96:21: -> ^( STRING Argument ) { // /home/jon/flume/src/antlr/FlumeShell.g:96:24: ^( STRING Argument ) { Object root_1 = (Object) adaptor.nil(); root_1 = (Object) adaptor.becomeRoot((Object) adaptor.create(STRING, "STRING"), root_1); adaptor.addChild(root_1, stream_Argument.nextNode()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; } retval.stop = input.LT(-1); retval.tree = (Object) adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input, re); retval.tree = (Object) adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; }