use of org.antlr.runtime.tree.RewriteRuleSubtreeStream in project drools by kiegroup.
the class DSLMapParser method keyword_key.
// $ANTLR start "keyword_key"
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:261:1: keyword_key :{...}?value= LITERAL -> VT_KEYWORD[$value] ;
public final DSLMapParser.keyword_key_return keyword_key() throws RecognitionException {
DSLMapParser.keyword_key_return retval = new DSLMapParser.keyword_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token value = null;
Object value_tree = null;
RewriteRuleTokenStream stream_LITERAL = new RewriteRuleTokenStream(adaptor, "token LITERAL");
try {
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:262:5: ({...}?value= LITERAL -> VT_KEYWORD[$value] )
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:262:7: {...}?value= LITERAL
{
if (!((validateIdentifierKey("keyword")))) {
if (state.backtracking > 0) {
state.failed = true;
return retval;
}
throw new FailedPredicateException(input, "keyword_key", "validateIdentifierKey(\"keyword\")");
}
value = (Token) match(input, LITERAL, FOLLOW_LITERAL_in_keyword_key1663);
if (state.failed)
return retval;
if (state.backtracking == 0)
stream_LITERAL.add(value);
// 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();
// 263:5: -> VT_KEYWORD[$value]
{
adaptor.addChild(root_0, (Object) adaptor.create(VT_KEYWORD, value));
}
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.tree.RewriteRuleSubtreeStream in project drools by kiegroup.
the class DSLMapParser method variable_definition.
// $ANTLR start "variable_definition"
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:190:1: variable_definition : lc= LEFT_CURLY name= LITERAL ( ( COLON q= LITERAL )? COLON pat= pattern )? rc= RIGHT_CURLY -> { hasSpaceBefore && !\"\".equals(text) && !hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) VT_PATTERN[$pat.start, text] ) -> {!hasSpaceBefore && !\"\".equals(text) && !hasSpaceAfter}? ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) VT_PATTERN[$pat.start, text] ) -> { hasSpaceBefore && !hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) ) -> {!hasSpaceBefore && !hasSpaceAfter}? ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) ) -> { hasSpaceBefore && !\"\".equals(text) && hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) VT_PATTERN[$pat.start, text] ) VT_SPACE -> {!hasSpaceBefore && !\"\".equals(text) && hasSpaceAfter}? ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) VT_PATTERN[$pat.start, text] ) VT_SPACE -> { hasSpaceBefore && hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) ) VT_SPACE -> {!hasSpaceBefore && hasSpaceAfter}? ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) ) VT_SPACE -> ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) ) ;
public final DSLMapParser.variable_definition_return variable_definition() throws RecognitionException {
DSLMapParser.variable_definition_return retval = new DSLMapParser.variable_definition_return();
retval.start = input.LT(1);
Object root_0 = null;
Token lc = null;
Token name = null;
Token q = null;
Token rc = null;
Token COLON25 = null;
Token COLON26 = null;
ParserRuleReturnScope pat = null;
Object lc_tree = null;
Object name_tree = null;
Object q_tree = null;
Object rc_tree = null;
Object COLON25_tree = null;
Object COLON26_tree = null;
RewriteRuleTokenStream stream_COLON = new RewriteRuleTokenStream(adaptor, "token COLON");
RewriteRuleTokenStream stream_LITERAL = new RewriteRuleTokenStream(adaptor, "token LITERAL");
RewriteRuleTokenStream stream_RIGHT_CURLY = new RewriteRuleTokenStream(adaptor, "token RIGHT_CURLY");
RewriteRuleTokenStream stream_LEFT_CURLY = new RewriteRuleTokenStream(adaptor, "token LEFT_CURLY");
RewriteRuleSubtreeStream stream_pattern = new RewriteRuleSubtreeStream(adaptor, "rule pattern");
String text = "";
boolean hasSpaceBefore = false;
boolean hasSpaceAfter = false;
try {
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:196:5: (lc= LEFT_CURLY name= LITERAL ( ( COLON q= LITERAL )? COLON pat= pattern )? rc= RIGHT_CURLY -> { hasSpaceBefore && !\"\".equals(text) && !hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) VT_PATTERN[$pat.start, text] ) -> {!hasSpaceBefore && !\"\".equals(text) && !hasSpaceAfter}? ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) VT_PATTERN[$pat.start, text] ) -> { hasSpaceBefore && !hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) ) -> {!hasSpaceBefore && !hasSpaceAfter}? ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) ) -> { hasSpaceBefore && !\"\".equals(text) && hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) VT_PATTERN[$pat.start, text] ) VT_SPACE -> {!hasSpaceBefore && !\"\".equals(text) && hasSpaceAfter}? ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) VT_PATTERN[$pat.start, text] ) VT_SPACE -> { hasSpaceBefore && hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) ) VT_SPACE -> {!hasSpaceBefore && hasSpaceAfter}? ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) ) VT_SPACE -> ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) ) )
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:196:7: lc= LEFT_CURLY name= LITERAL ( ( COLON q= LITERAL )? COLON pat= pattern )? rc= RIGHT_CURLY
{
lc = (Token) match(input, LEFT_CURLY, FOLLOW_LEFT_CURLY_in_variable_definition809);
if (state.failed)
return retval;
if (state.backtracking == 0)
stream_LEFT_CURLY.add(lc);
if (state.backtracking == 0) {
CommonToken back2 = (CommonToken) input.LT(-2);
if (back2 != null && back2.getStopIndex() < ((CommonToken) lc).getStartIndex() - 1)
hasSpaceBefore = true;
}
name = (Token) match(input, LITERAL, FOLLOW_LITERAL_in_variable_definition827);
if (state.failed)
return retval;
if (state.backtracking == 0)
stream_LITERAL.add(name);
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:201:18: ( ( COLON q= LITERAL )? COLON pat= pattern )?
int alt15 = 2;
int LA15_0 = input.LA(1);
if ((LA15_0 == COLON)) {
alt15 = 1;
}
switch(alt15) {
case 1:
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:201:20: ( COLON q= LITERAL )? COLON pat= pattern
{
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:201:20: ( COLON q= LITERAL )?
int alt14 = 2;
int LA14_0 = input.LA(1);
if ((LA14_0 == COLON)) {
int LA14_1 = input.LA(2);
if ((LA14_1 == LITERAL)) {
int LA14_2 = input.LA(3);
if ((LA14_2 == COLON)) {
int LA14_4 = input.LA(4);
if ((synpred22_DSLMap())) {
alt14 = 1;
}
}
}
}
switch(alt14) {
case 1:
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:201:21: COLON q= LITERAL
{
COLON25 = (Token) match(input, COLON, FOLLOW_COLON_in_variable_definition832);
if (state.failed)
return retval;
if (state.backtracking == 0)
stream_COLON.add(COLON25);
q = (Token) match(input, LITERAL, FOLLOW_LITERAL_in_variable_definition836);
if (state.failed)
return retval;
if (state.backtracking == 0)
stream_LITERAL.add(q);
}
break;
}
COLON26 = (Token) match(input, COLON, FOLLOW_COLON_in_variable_definition840);
if (state.failed)
return retval;
if (state.backtracking == 0)
stream_COLON.add(COLON26);
pushFollow(FOLLOW_pattern_in_variable_definition844);
pat = pattern();
state._fsp--;
if (state.failed)
return retval;
if (state.backtracking == 0)
stream_pattern.add(pat.getTree());
if (state.backtracking == 0) {
text = (pat != null ? input.toString(pat.start, pat.stop) : null);
}
}
break;
}
rc = (Token) match(input, RIGHT_CURLY, FOLLOW_RIGHT_CURLY_in_variable_definition853);
if (state.failed)
return retval;
if (state.backtracking == 0)
stream_RIGHT_CURLY.add(rc);
if (state.backtracking == 0) {
CommonToken rc1 = (CommonToken) input.LT(1);
if (!"=".equals(rc1.getText()) && ((CommonToken) rc).getStopIndex() < rc1.getStartIndex() - 1)
hasSpaceAfter = true;
isIdentifier(name);
}
// wildcard labels:
if (state.backtracking == 0) {
retval.tree = root_0;
RewriteRuleTokenStream stream_q = new RewriteRuleTokenStream(adaptor, "token q", q);
RewriteRuleTokenStream stream_name = new RewriteRuleTokenStream(adaptor, "token name", name);
RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval != null ? retval.getTree() : null);
root_0 = (Object) adaptor.nil();
// 208:5: -> { hasSpaceBefore && !\"\".equals(text) && !hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) VT_PATTERN[$pat.start, text] )
if (hasSpaceBefore && !"".equals(text) && !hasSpaceAfter) {
adaptor.addChild(root_0, (Object) adaptor.create(VT_SPACE, "VT_SPACE"));
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:208:74: ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) VT_PATTERN[$pat.start, text] )
{
Object root_1 = (Object) adaptor.nil();
root_1 = (Object) adaptor.becomeRoot((Object) adaptor.create(VT_VAR_DEF, "VT_VAR_DEF"), root_1);
adaptor.addChild(root_1, stream_name.nextNode());
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:208:93: ^( VT_QUAL ( $q)? )
{
Object root_2 = (Object) adaptor.nil();
root_2 = (Object) adaptor.becomeRoot((Object) adaptor.create(VT_QUAL, "VT_QUAL"), root_2);
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:208:104: ( $q)?
if (stream_q.hasNext()) {
adaptor.addChild(root_2, stream_q.nextNode());
}
stream_q.reset();
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_1, (Object) adaptor.create(VT_PATTERN, (pat != null ? (pat.start) : null), text));
adaptor.addChild(root_0, root_1);
}
} else // 209:5: -> {!hasSpaceBefore && !\"\".equals(text) && !hasSpaceAfter}? ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) VT_PATTERN[$pat.start, text] )
if (!hasSpaceBefore && !"".equals(text) && !hasSpaceAfter) {
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:209:74: ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) VT_PATTERN[$pat.start, text] )
{
Object root_1 = (Object) adaptor.nil();
root_1 = (Object) adaptor.becomeRoot((Object) adaptor.create(VT_VAR_DEF, "VT_VAR_DEF"), root_1);
adaptor.addChild(root_1, stream_name.nextNode());
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:209:93: ^( VT_QUAL ( $q)? )
{
Object root_2 = (Object) adaptor.nil();
root_2 = (Object) adaptor.becomeRoot((Object) adaptor.create(VT_QUAL, "VT_QUAL"), root_2);
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:209:104: ( $q)?
if (stream_q.hasNext()) {
adaptor.addChild(root_2, stream_q.nextNode());
}
stream_q.reset();
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_1, (Object) adaptor.create(VT_PATTERN, (pat != null ? (pat.start) : null), text));
adaptor.addChild(root_0, root_1);
}
} else // 210:5: -> { hasSpaceBefore && !hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) )
if (hasSpaceBefore && !hasSpaceAfter) {
adaptor.addChild(root_0, (Object) adaptor.create(VT_SPACE, "VT_SPACE"));
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:210:74: ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) )
{
Object root_1 = (Object) adaptor.nil();
root_1 = (Object) adaptor.becomeRoot((Object) adaptor.create(VT_VAR_DEF, "VT_VAR_DEF"), root_1);
adaptor.addChild(root_1, stream_name.nextNode());
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:210:93: ^( VT_QUAL ( $q)? )
{
Object root_2 = (Object) adaptor.nil();
root_2 = (Object) adaptor.becomeRoot((Object) adaptor.create(VT_QUAL, "VT_QUAL"), root_2);
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:210:104: ( $q)?
if (stream_q.hasNext()) {
adaptor.addChild(root_2, stream_q.nextNode());
}
stream_q.reset();
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
} else // 211:5: -> {!hasSpaceBefore && !hasSpaceAfter}? ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) )
if (!hasSpaceBefore && !hasSpaceAfter) {
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:211:74: ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) )
{
Object root_1 = (Object) adaptor.nil();
root_1 = (Object) adaptor.becomeRoot((Object) adaptor.create(VT_VAR_DEF, "VT_VAR_DEF"), root_1);
adaptor.addChild(root_1, stream_name.nextNode());
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:211:93: ^( VT_QUAL ( $q)? )
{
Object root_2 = (Object) adaptor.nil();
root_2 = (Object) adaptor.becomeRoot((Object) adaptor.create(VT_QUAL, "VT_QUAL"), root_2);
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:211:104: ( $q)?
if (stream_q.hasNext()) {
adaptor.addChild(root_2, stream_q.nextNode());
}
stream_q.reset();
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
} else // 212:5: -> { hasSpaceBefore && !\"\".equals(text) && hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) VT_PATTERN[$pat.start, text] ) VT_SPACE
if (hasSpaceBefore && !"".equals(text) && hasSpaceAfter) {
adaptor.addChild(root_0, (Object) adaptor.create(VT_SPACE, "VT_SPACE"));
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:212:74: ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) VT_PATTERN[$pat.start, text] )
{
Object root_1 = (Object) adaptor.nil();
root_1 = (Object) adaptor.becomeRoot((Object) adaptor.create(VT_VAR_DEF, "VT_VAR_DEF"), root_1);
adaptor.addChild(root_1, stream_name.nextNode());
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:212:93: ^( VT_QUAL ( $q)? )
{
Object root_2 = (Object) adaptor.nil();
root_2 = (Object) adaptor.becomeRoot((Object) adaptor.create(VT_QUAL, "VT_QUAL"), root_2);
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:212:104: ( $q)?
if (stream_q.hasNext()) {
adaptor.addChild(root_2, stream_q.nextNode());
}
stream_q.reset();
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_1, (Object) adaptor.create(VT_PATTERN, (pat != null ? (pat.start) : null), text));
adaptor.addChild(root_0, root_1);
}
adaptor.addChild(root_0, (Object) adaptor.create(VT_SPACE, "VT_SPACE"));
} else // 213:5: -> {!hasSpaceBefore && !\"\".equals(text) && hasSpaceAfter}? ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) VT_PATTERN[$pat.start, text] ) VT_SPACE
if (!hasSpaceBefore && !"".equals(text) && hasSpaceAfter) {
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:213:74: ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) VT_PATTERN[$pat.start, text] )
{
Object root_1 = (Object) adaptor.nil();
root_1 = (Object) adaptor.becomeRoot((Object) adaptor.create(VT_VAR_DEF, "VT_VAR_DEF"), root_1);
adaptor.addChild(root_1, stream_name.nextNode());
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:213:93: ^( VT_QUAL ( $q)? )
{
Object root_2 = (Object) adaptor.nil();
root_2 = (Object) adaptor.becomeRoot((Object) adaptor.create(VT_QUAL, "VT_QUAL"), root_2);
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:213:104: ( $q)?
if (stream_q.hasNext()) {
adaptor.addChild(root_2, stream_q.nextNode());
}
stream_q.reset();
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_1, (Object) adaptor.create(VT_PATTERN, (pat != null ? (pat.start) : null), text));
adaptor.addChild(root_0, root_1);
}
adaptor.addChild(root_0, (Object) adaptor.create(VT_SPACE, "VT_SPACE"));
} else // 214:5: -> { hasSpaceBefore && hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) ) VT_SPACE
if (hasSpaceBefore && hasSpaceAfter) {
adaptor.addChild(root_0, (Object) adaptor.create(VT_SPACE, "VT_SPACE"));
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:214:74: ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) )
{
Object root_1 = (Object) adaptor.nil();
root_1 = (Object) adaptor.becomeRoot((Object) adaptor.create(VT_VAR_DEF, "VT_VAR_DEF"), root_1);
adaptor.addChild(root_1, stream_name.nextNode());
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:214:93: ^( VT_QUAL ( $q)? )
{
Object root_2 = (Object) adaptor.nil();
root_2 = (Object) adaptor.becomeRoot((Object) adaptor.create(VT_QUAL, "VT_QUAL"), root_2);
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:214:104: ( $q)?
if (stream_q.hasNext()) {
adaptor.addChild(root_2, stream_q.nextNode());
}
stream_q.reset();
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
adaptor.addChild(root_0, (Object) adaptor.create(VT_SPACE, "VT_SPACE"));
} else // 215:5: -> {!hasSpaceBefore && hasSpaceAfter}? ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) ) VT_SPACE
if (!hasSpaceBefore && hasSpaceAfter) {
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:215:74: ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) )
{
Object root_1 = (Object) adaptor.nil();
root_1 = (Object) adaptor.becomeRoot((Object) adaptor.create(VT_VAR_DEF, "VT_VAR_DEF"), root_1);
adaptor.addChild(root_1, stream_name.nextNode());
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:215:93: ^( VT_QUAL ( $q)? )
{
Object root_2 = (Object) adaptor.nil();
root_2 = (Object) adaptor.becomeRoot((Object) adaptor.create(VT_QUAL, "VT_QUAL"), root_2);
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:215:104: ( $q)?
if (stream_q.hasNext()) {
adaptor.addChild(root_2, stream_q.nextNode());
}
stream_q.reset();
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
adaptor.addChild(root_0, (Object) adaptor.create(VT_SPACE, "VT_SPACE"));
} else // 216:5: -> ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) )
{
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:216:74: ^( VT_VAR_DEF $name ^( VT_QUAL ( $q)? ) )
{
Object root_1 = (Object) adaptor.nil();
root_1 = (Object) adaptor.becomeRoot((Object) adaptor.create(VT_VAR_DEF, "VT_VAR_DEF"), root_1);
adaptor.addChild(root_1, stream_name.nextNode());
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:216:93: ^( VT_QUAL ( $q)? )
{
Object root_2 = (Object) adaptor.nil();
root_2 = (Object) adaptor.becomeRoot((Object) adaptor.create(VT_QUAL, "VT_QUAL"), root_2);
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:216:104: ( $q)?
if (stream_q.hasNext()) {
adaptor.addChild(root_2, stream_q.nextNode());
}
stream_q.reset();
adaptor.addChild(root_1, root_2);
}
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.tree.RewriteRuleSubtreeStream in project drools by kiegroup.
the class DSLMapParser method consequence_key.
// $ANTLR start "consequence_key"
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:256:1: consequence_key :{...}?value= LITERAL -> VT_CONSEQUENCE[$value] ;
public final DSLMapParser.consequence_key_return consequence_key() throws RecognitionException {
DSLMapParser.consequence_key_return retval = new DSLMapParser.consequence_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token value = null;
Object value_tree = null;
RewriteRuleTokenStream stream_LITERAL = new RewriteRuleTokenStream(adaptor, "token LITERAL");
try {
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:257:5: ({...}?value= LITERAL -> VT_CONSEQUENCE[$value] )
// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:257:7: {...}?value= LITERAL
{
if (!((validateIdentifierKey("consequence") || validateIdentifierKey("then")))) {
if (state.backtracking > 0) {
state.failed = true;
return retval;
}
throw new FailedPredicateException(input, "consequence_key", "validateIdentifierKey(\"consequence\")||validateIdentifierKey(\"then\")");
}
value = (Token) match(input, LITERAL, FOLLOW_LITERAL_in_consequence_key1631);
if (state.failed)
return retval;
if (state.backtracking == 0)
stream_LITERAL.add(value);
// 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();
// 258:5: -> VT_CONSEQUENCE[$value]
{
adaptor.addChild(root_0, (Object) adaptor.create(VT_CONSEQUENCE, value));
}
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;
}
Aggregations