use of org.antlr.runtime.ParserRuleReturnScope in project drools by kiegroup.
the class DSLMapParser method pattern.
// $ANTLR start "pattern"
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:219:1: pattern : ( literal | DOT | MISC | LEFT_CURLY literal RIGHT_CURLY | LEFT_SQUARE pattern RIGHT_SQUARE )+ ;
public final DSLMapParser.pattern_return pattern() throws RecognitionException {
DSLMapParser.pattern_return retval = new DSLMapParser.pattern_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DOT28 = null;
Token MISC29 = null;
Token LEFT_CURLY30 = null;
Token RIGHT_CURLY32 = null;
Token LEFT_SQUARE33 = null;
Token RIGHT_SQUARE35 = null;
ParserRuleReturnScope literal27 = null;
ParserRuleReturnScope literal31 = null;
ParserRuleReturnScope pattern34 = null;
Object DOT28_tree = null;
Object MISC29_tree = null;
Object LEFT_CURLY30_tree = null;
Object RIGHT_CURLY32_tree = null;
Object LEFT_SQUARE33_tree = null;
Object RIGHT_SQUARE35_tree = null;
try {
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:220:9: ( ( literal | DOT | MISC | LEFT_CURLY literal RIGHT_CURLY | LEFT_SQUARE pattern RIGHT_SQUARE )+ )
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:220:11: ( literal | DOT | MISC | LEFT_CURLY literal RIGHT_CURLY | LEFT_SQUARE pattern RIGHT_SQUARE )+
{
root_0 = (Object) adaptor.nil();
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:220:11: ( literal | DOT | MISC | LEFT_CURLY literal RIGHT_CURLY | LEFT_SQUARE pattern RIGHT_SQUARE )+
int cnt16 = 0;
loop16: while (true) {
int alt16 = 6;
switch(input.LA(1)) {
case RIGHT_SQUARE:
{
int LA16_2 = input.LA(2);
if ((synpred24_DSLMap())) {
alt16 = 1;
}
}
break;
case LEFT_SQUARE:
{
int LA16_3 = input.LA(2);
if ((synpred24_DSLMap())) {
alt16 = 1;
} else if ((synpred28_DSLMap())) {
alt16 = 5;
}
}
break;
case DOT:
{
alt16 = 2;
}
break;
case MISC:
{
alt16 = 3;
}
break;
case LEFT_CURLY:
{
alt16 = 4;
}
break;
case COLON:
case LITERAL:
{
alt16 = 1;
}
break;
}
switch(alt16) {
case 1:
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:220:13: literal
{
pushFollow(FOLLOW_literal_in_pattern1290);
literal27 = literal();
state._fsp--;
if (state.failed)
return retval;
if (state.backtracking == 0)
adaptor.addChild(root_0, literal27.getTree());
}
break;
case 2:
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:221:13: DOT
{
DOT28 = (Token) match(input, DOT, FOLLOW_DOT_in_pattern1304);
if (state.failed)
return retval;
if (state.backtracking == 0) {
DOT28_tree = (Object) adaptor.create(DOT28);
adaptor.addChild(root_0, DOT28_tree);
}
}
break;
case 3:
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:222:13: MISC
{
MISC29 = (Token) match(input, MISC, FOLLOW_MISC_in_pattern1318);
if (state.failed)
return retval;
if (state.backtracking == 0) {
MISC29_tree = (Object) adaptor.create(MISC29);
adaptor.addChild(root_0, MISC29_tree);
}
}
break;
case 4:
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:223:13: LEFT_CURLY literal RIGHT_CURLY
{
LEFT_CURLY30 = (Token) match(input, LEFT_CURLY, FOLLOW_LEFT_CURLY_in_pattern1332);
if (state.failed)
return retval;
if (state.backtracking == 0) {
LEFT_CURLY30_tree = (Object) adaptor.create(LEFT_CURLY30);
adaptor.addChild(root_0, LEFT_CURLY30_tree);
}
pushFollow(FOLLOW_literal_in_pattern1334);
literal31 = literal();
state._fsp--;
if (state.failed)
return retval;
if (state.backtracking == 0)
adaptor.addChild(root_0, literal31.getTree());
RIGHT_CURLY32 = (Token) match(input, RIGHT_CURLY, FOLLOW_RIGHT_CURLY_in_pattern1336);
if (state.failed)
return retval;
if (state.backtracking == 0) {
RIGHT_CURLY32_tree = (Object) adaptor.create(RIGHT_CURLY32);
adaptor.addChild(root_0, RIGHT_CURLY32_tree);
}
}
break;
case 5:
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:224:13: LEFT_SQUARE pattern RIGHT_SQUARE
{
LEFT_SQUARE33 = (Token) match(input, LEFT_SQUARE, FOLLOW_LEFT_SQUARE_in_pattern1350);
if (state.failed)
return retval;
if (state.backtracking == 0) {
LEFT_SQUARE33_tree = (Object) adaptor.create(LEFT_SQUARE33);
adaptor.addChild(root_0, LEFT_SQUARE33_tree);
}
pushFollow(FOLLOW_pattern_in_pattern1352);
pattern34 = pattern();
state._fsp--;
if (state.failed)
return retval;
if (state.backtracking == 0)
adaptor.addChild(root_0, pattern34.getTree());
RIGHT_SQUARE35 = (Token) match(input, RIGHT_SQUARE, FOLLOW_RIGHT_SQUARE_in_pattern1354);
if (state.failed)
return retval;
if (state.backtracking == 0) {
RIGHT_SQUARE35_tree = (Object) adaptor.create(RIGHT_SQUARE35);
adaptor.addChild(root_0, RIGHT_SQUARE35_tree);
}
}
break;
default:
if (cnt16 >= 1)
break loop16;
if (state.backtracking > 0) {
state.failed = true;
return retval;
}
EarlyExitException eee = new EarlyExitException(16, input);
throw eee;
}
cnt16++;
}
}
retval.stop = input.LT(-1);
if (state.backtracking == 0) {
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 {
// do for sure before leaving
}
return retval;
}
use of org.antlr.runtime.ParserRuleReturnScope in project drools by kiegroup.
the class DSLMapParser method value_section.
// $ANTLR start "value_section"
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:167:1: value_section : ( value_sentence )+ -> ^( VT_ENTRY_VAL ( value_sentence )+ ) ;
public final DSLMapParser.value_section_return value_section() throws RecognitionException {
DSLMapParser.value_section_return retval = new DSLMapParser.value_section_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope value_sentence18 = null;
RewriteRuleSubtreeStream stream_value_sentence = new RewriteRuleSubtreeStream(adaptor, "rule value_sentence");
try {
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:168:5: ( ( value_sentence )+ -> ^( VT_ENTRY_VAL ( value_sentence )+ ) )
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:168:7: ( value_sentence )+
{
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:168:7: ( value_sentence )+
int cnt11 = 0;
loop11: while (true) {
int alt11 = 2;
int LA11_0 = input.LA(1);
if (((LA11_0 >= COLON && LA11_0 <= DOT) || LA11_0 == EQUALS || (LA11_0 >= LEFT_CURLY && LA11_0 <= LITERAL) || LA11_0 == RIGHT_SQUARE)) {
alt11 = 1;
}
switch(alt11) {
case 1:
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:168:7: value_sentence
{
pushFollow(FOLLOW_value_sentence_in_value_section664);
value_sentence18 = value_sentence();
state._fsp--;
if (state.failed)
return retval;
if (state.backtracking == 0)
stream_value_sentence.add(value_sentence18.getTree());
}
break;
default:
if (cnt11 >= 1)
break loop11;
if (state.backtracking > 0) {
state.failed = true;
return retval;
}
EarlyExitException eee = new EarlyExitException(11, input);
throw eee;
}
cnt11++;
}
// wildcard labels:
if (state.backtracking == 0) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval != null ? retval.getTree() : null);
root_0 = (Object) adaptor.nil();
// 169:5: -> ^( VT_ENTRY_VAL ( value_sentence )+ )
{
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:169:8: ^( VT_ENTRY_VAL ( value_sentence )+ )
{
Object root_1 = (Object) adaptor.nil();
root_1 = (Object) adaptor.becomeRoot((Object) adaptor.create(VT_ENTRY_VAL, "VT_ENTRY_VAL"), root_1);
if (!(stream_value_sentence.hasNext())) {
throw new RewriteEarlyExitException();
}
while (stream_value_sentence.hasNext()) {
adaptor.addChild(root_1, stream_value_sentence.nextTree());
}
stream_value_sentence.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if (state.backtracking == 0) {
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 {
// do for sure before leaving
}
return retval;
}
use of org.antlr.runtime.ParserRuleReturnScope in project hive by apache.
the class ParseDriver method parse.
/**
* Parses a command, optionally assigning the parser's token stream to the
* given context.
*
* @param command
* command to parse
*
* @param configuration
* hive configuration
*
* @return parsed AST
*/
public ParseResult parse(String command, Configuration configuration) throws ParseException {
LOG.debug("Parsing command: {}", command);
GenericHiveLexer lexer = GenericHiveLexer.of(command, configuration);
TokenRewriteStream tokens = new TokenRewriteStream(lexer);
HiveParser parser = new HiveParser(tokens);
parser.setTreeAdaptor(adaptor);
parser.setHiveConf(configuration);
ParserRuleReturnScope r;
try {
r = parser.statement();
} catch (RecognitionException e) {
throw new ParseException(parser.errors);
}
if (lexer.getErrors().size() == 0 && parser.errors.size() == 0) {
LOG.debug("Parse Completed");
} else if (lexer.getErrors().size() != 0) {
throw new ParseException(lexer.getErrors());
} else {
throw new ParseException(parser.errors);
}
ASTNode tree = (ASTNode) r.getTree();
tree.setUnknownTokenBoundaries();
return new ParseResult(tree, tokens, parser.gFromClauseParser.tables);
}
use of org.antlr.runtime.ParserRuleReturnScope in project hive by apache.
the class ParseDriver method parseSelect.
/*
* parse a String as a Select List. This allows table functions to be passed expression Strings
* that are translated in
* the context they define at invocation time. Currently used by NPath to allow users to specify
* what output they want.
* NPath allows expressions n 'tpath' a column that represents the matched set of rows. This
* column doesn't exist in
* the input schema and hence the Result Expression cannot be analyzed by the regular Hive
* translation process.
*/
public ParseResult parseSelect(String command, Configuration configuration) throws ParseException {
LOG.debug("Parsing command: {}", command);
GenericHiveLexer lexer = GenericHiveLexer.of(command, configuration);
TokenRewriteStream tokens = new TokenRewriteStream(lexer);
// if (ctx != null) {
// ctx.setTokenRewriteStream(tokens);
// }
HiveParser parser = new HiveParser(tokens);
parser.setTreeAdaptor(adaptor);
parser.setHiveConf(configuration);
ParserRuleReturnScope r;
try {
r = parser.selectClause();
} catch (RecognitionException e) {
throw new ParseException(parser.errors);
}
if (lexer.getErrors().size() == 0 && parser.errors.size() == 0) {
LOG.debug("Parse Completed");
} else if (lexer.getErrors().size() != 0) {
throw new ParseException(lexer.getErrors());
} else {
throw new ParseException(parser.errors);
}
return new ParseResult((ASTNode) r.getTree(), tokens, parser.gFromClauseParser.tables);
}
use of org.antlr.runtime.ParserRuleReturnScope in project hive by apache.
the class ParseDriver method parseTriggerActionExpression.
public ASTNode parseTriggerActionExpression(String command) throws ParseException {
GenericHiveLexer lexer = GenericHiveLexer.of(command, null);
TokenRewriteStream tokens = new TokenRewriteStream(lexer);
HiveParser parser = new HiveParser(tokens);
parser.setTreeAdaptor(adaptor);
ParserRuleReturnScope r;
try {
r = parser.triggerActionExpressionStandalone();
} catch (RecognitionException e) {
throw new ParseException(parser.errors);
}
if (lexer.getErrors().size() != 0) {
throw new ParseException(lexer.getErrors());
} else if (parser.errors.size() != 0) {
throw new ParseException(parser.errors);
}
return (ASTNode) r.getTree();
}
Aggregations