in drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/DRL6Expressions.java [4323:4789]
public final BaseDescr primary() throws RecognitionException {
BaseDescr result = null;
Token i1=null;
Token d=null;
Token i2=null;
Token h=null;
Token n=null;
Token LEFT_PAREN12=null;
Token COMMA13=null;
Token RIGHT_PAREN14=null;
BaseDescr expr =null;
ParserRuleReturnScope literal11 =null;
try {
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:612:5: ( ( LEFT_PAREN )=>expr= parExpression | ( nonWildcardTypeArguments )=> nonWildcardTypeArguments ( explicitGenericInvocationSuffix | this_key arguments ) | ( literal )=> literal | ( super_key )=> super_key superSuffix | ( new_key )=> new_key creator | ( primitiveType )=> primitiveType ( LEFT_SQUARE RIGHT_SQUARE )* DOT class_key | ( inlineMapExpression )=> inlineMapExpression | ( inlineListExpression )=> inlineListExpression | ( ID )=>i1= ID ( ( ( DOT ID )=>d= DOT i2= ID ) | ( ( ( DOT | NULL_SAFE_DOT ) LEFT_PAREN )=>d= ( DOT | NULL_SAFE_DOT ) LEFT_PAREN expression ( COMMA expression )* RIGHT_PAREN ) | ( ( HASH ID )=>h= HASH i2= ID ) | ( ( NULL_SAFE_DOT ID )=>n= NULL_SAFE_DOT i2= ID ) )* ( ( identifierSuffix )=> identifierSuffix )? )
int alt68=9;
int LA68_0 = input.LA(1);
if ( (LA68_0==LEFT_PAREN) && (synpred24_DRL6Expressions())) {
alt68=1;
}
else if ( (LA68_0==LESS) && (synpred25_DRL6Expressions())) {
alt68=2;
}
else if ( (LA68_0==STRING) && (synpred26_DRL6Expressions())) {
alt68=3;
}
else if ( (LA68_0==DECIMAL) && (synpred26_DRL6Expressions())) {
alt68=3;
}
else if ( (LA68_0==HEX) && (synpred26_DRL6Expressions())) {
alt68=3;
}
else if ( (LA68_0==FLOAT) && (synpred26_DRL6Expressions())) {
alt68=3;
}
else if ( (LA68_0==BOOL) && (synpred26_DRL6Expressions())) {
alt68=3;
}
else if ( (LA68_0==NULL) && (synpred26_DRL6Expressions())) {
alt68=3;
}
else if ( (LA68_0==TIME_INTERVAL) && (synpred26_DRL6Expressions())) {
alt68=3;
}
else if ( (LA68_0==STAR) && (synpred26_DRL6Expressions())) {
alt68=3;
}
else if ( (LA68_0==ID) ) {
int LA68_11 = input.LA(2);
if ( ((synpred27_DRL6Expressions()&&((helper.validateIdentifierKey(DroolsSoftKeywords.SUPER))))) ) {
alt68=4;
}
else if ( ((((helper.validateIdentifierKey(DroolsSoftKeywords.NEW)))&&synpred28_DRL6Expressions())) ) {
alt68=5;
}
else if ( ((synpred29_DRL6Expressions()&&(((helper.validateIdentifierKey(DroolsSoftKeywords.SHORT)))||((helper.validateIdentifierKey(DroolsSoftKeywords.LONG)))||((helper.validateIdentifierKey(DroolsSoftKeywords.CHAR)))||((helper.validateIdentifierKey(DroolsSoftKeywords.INT)))||((helper.validateIdentifierKey(DroolsSoftKeywords.FLOAT)))||((helper.validateIdentifierKey(DroolsSoftKeywords.BOOLEAN)))||((helper.validateIdentifierKey(DroolsSoftKeywords.DOUBLE)))||((helper.validateIdentifierKey(DroolsSoftKeywords.BYTE)))))) ) {
alt68=6;
}
else if ( (synpred32_DRL6Expressions()) ) {
alt68=9;
}
else {
if (state.backtracking>0) {state.failed=true; return result;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 68, 11, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA68_0==LEFT_SQUARE) ) {
int LA68_12 = input.LA(2);
if ( (synpred30_DRL6Expressions()) ) {
alt68=7;
}
else if ( (synpred31_DRL6Expressions()) ) {
alt68=8;
}
else {
if (state.backtracking>0) {state.failed=true; return result;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 68, 12, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return result;}
NoViableAltException nvae =
new NoViableAltException("", 68, 0, input);
throw nvae;
}
switch (alt68) {
case 1 :
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:612:7: ( LEFT_PAREN )=>expr= parExpression
{
pushFollow(FOLLOW_parExpression_in_primary3066);
expr=parExpression();
state._fsp--;
if (state.failed) return result;
if ( state.backtracking==0 ) { if( buildDescr ) { result = expr; } }
}
break;
case 2 :
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:613:9: ( nonWildcardTypeArguments )=> nonWildcardTypeArguments ( explicitGenericInvocationSuffix | this_key arguments )
{
pushFollow(FOLLOW_nonWildcardTypeArguments_in_primary3083);
nonWildcardTypeArguments();
state._fsp--;
if (state.failed) return result;
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:613:63: ( explicitGenericInvocationSuffix | this_key arguments )
int alt63=2;
int LA63_0 = input.LA(1);
if ( (LA63_0==ID) ) {
int LA63_1 = input.LA(2);
if ( (!((((helper.validateIdentifierKey(DroolsSoftKeywords.THIS)))))) ) {
alt63=1;
}
else if ( (((helper.validateIdentifierKey(DroolsSoftKeywords.THIS)))) ) {
alt63=2;
}
else {
if (state.backtracking>0) {state.failed=true; return result;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 63, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return result;}
NoViableAltException nvae =
new NoViableAltException("", 63, 0, input);
throw nvae;
}
switch (alt63) {
case 1 :
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:613:64: explicitGenericInvocationSuffix
{
pushFollow(FOLLOW_explicitGenericInvocationSuffix_in_primary3086);
explicitGenericInvocationSuffix();
state._fsp--;
if (state.failed) return result;
}
break;
case 2 :
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:613:98: this_key arguments
{
pushFollow(FOLLOW_this_key_in_primary3090);
this_key();
state._fsp--;
if (state.failed) return result;
pushFollow(FOLLOW_arguments_in_primary3092);
arguments();
state._fsp--;
if (state.failed) return result;
}
break;
}
}
break;
case 3 :
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:614:9: ( literal )=> literal
{
pushFollow(FOLLOW_literal_in_primary3108);
literal11=literal();
state._fsp--;
if (state.failed) return result;
if ( state.backtracking==0 ) { if( buildDescr ) { result = new AtomicExprDescr( (literal11!=null?input.toString(literal11.start,literal11.stop):null), true ); } }
}
break;
case 4 :
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:616:9: ( super_key )=> super_key superSuffix
{
pushFollow(FOLLOW_super_key_in_primary3130);
super_key();
state._fsp--;
if (state.failed) return result;
pushFollow(FOLLOW_superSuffix_in_primary3132);
superSuffix();
state._fsp--;
if (state.failed) return result;
}
break;
case 5 :
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:617:9: ( new_key )=> new_key creator
{
pushFollow(FOLLOW_new_key_in_primary3147);
new_key();
state._fsp--;
if (state.failed) return result;
pushFollow(FOLLOW_creator_in_primary3149);
creator();
state._fsp--;
if (state.failed) return result;
}
break;
case 6 :
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:618:9: ( primitiveType )=> primitiveType ( LEFT_SQUARE RIGHT_SQUARE )* DOT class_key
{
pushFollow(FOLLOW_primitiveType_in_primary3164);
primitiveType();
state._fsp--;
if (state.failed) return result;
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:618:41: ( LEFT_SQUARE RIGHT_SQUARE )*
loop64:
while (true) {
int alt64=2;
int LA64_0 = input.LA(1);
if ( (LA64_0==LEFT_SQUARE) ) {
alt64=1;
}
switch (alt64) {
case 1 :
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:618:42: LEFT_SQUARE RIGHT_SQUARE
{
match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_primary3167); if (state.failed) return result;
match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_primary3169); if (state.failed) return result;
}
break;
default :
break loop64;
}
}
match(input,DOT,FOLLOW_DOT_in_primary3173); if (state.failed) return result;
pushFollow(FOLLOW_class_key_in_primary3175);
class_key();
state._fsp--;
if (state.failed) return result;
}
break;
case 7 :
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:620:9: ( inlineMapExpression )=> inlineMapExpression
{
pushFollow(FOLLOW_inlineMapExpression_in_primary3195);
inlineMapExpression();
state._fsp--;
if (state.failed) return result;
}
break;
case 8 :
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:621:9: ( inlineListExpression )=> inlineListExpression
{
pushFollow(FOLLOW_inlineListExpression_in_primary3210);
inlineListExpression();
state._fsp--;
if (state.failed) return result;
}
break;
case 9 :
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:622:9: ( ID )=>i1= ID ( ( ( DOT ID )=>d= DOT i2= ID ) | ( ( ( DOT | NULL_SAFE_DOT ) LEFT_PAREN )=>d= ( DOT | NULL_SAFE_DOT ) LEFT_PAREN expression ( COMMA expression )* RIGHT_PAREN ) | ( ( HASH ID )=>h= HASH i2= ID ) | ( ( NULL_SAFE_DOT ID )=>n= NULL_SAFE_DOT i2= ID ) )* ( ( identifierSuffix )=> identifierSuffix )?
{
i1=(Token)match(input,ID,FOLLOW_ID_in_primary3226); if (state.failed) return result;
if ( state.backtracking==0 ) { helper.emit(i1, DroolsEditorType.IDENTIFIER); }
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:623:9: ( ( ( DOT ID )=>d= DOT i2= ID ) | ( ( ( DOT | NULL_SAFE_DOT ) LEFT_PAREN )=>d= ( DOT | NULL_SAFE_DOT ) LEFT_PAREN expression ( COMMA expression )* RIGHT_PAREN ) | ( ( HASH ID )=>h= HASH i2= ID ) | ( ( NULL_SAFE_DOT ID )=>n= NULL_SAFE_DOT i2= ID ) )*
loop66:
while (true) {
int alt66=5;
int LA66_0 = input.LA(1);
if ( (LA66_0==DOT) ) {
int LA66_2 = input.LA(2);
if ( (LA66_2==ID) ) {
int LA66_5 = input.LA(3);
if ( (synpred33_DRL6Expressions()) ) {
alt66=1;
}
}
else if ( (LA66_2==LEFT_PAREN) && (synpred34_DRL6Expressions())) {
alt66=2;
}
}
else if ( (LA66_0==NULL_SAFE_DOT) ) {
int LA66_3 = input.LA(2);
if ( (LA66_3==LEFT_PAREN) && (synpred34_DRL6Expressions())) {
alt66=2;
}
else if ( (LA66_3==ID) ) {
int LA66_7 = input.LA(3);
if ( (synpred36_DRL6Expressions()) ) {
alt66=4;
}
}
}
else if ( (LA66_0==HASH) && (synpred35_DRL6Expressions())) {
alt66=3;
}
switch (alt66) {
case 1 :
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:624:13: ( ( DOT ID )=>d= DOT i2= ID )
{
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:624:13: ( ( DOT ID )=>d= DOT i2= ID )
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:624:15: ( DOT ID )=>d= DOT i2= ID
{
d=(Token)match(input,DOT,FOLLOW_DOT_in_primary3262); if (state.failed) return result;
i2=(Token)match(input,ID,FOLLOW_ID_in_primary3266); if (state.failed) return result;
if ( state.backtracking==0 ) { helper.emit(d, DroolsEditorType.SYMBOL); helper.emit(i2, DroolsEditorType.IDENTIFIER); }
}
}
break;
case 2 :
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:626:13: ( ( ( DOT | NULL_SAFE_DOT ) LEFT_PAREN )=>d= ( DOT | NULL_SAFE_DOT ) LEFT_PAREN expression ( COMMA expression )* RIGHT_PAREN )
{
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:626:13: ( ( ( DOT | NULL_SAFE_DOT ) LEFT_PAREN )=>d= ( DOT | NULL_SAFE_DOT ) LEFT_PAREN expression ( COMMA expression )* RIGHT_PAREN )
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:626:15: ( ( DOT | NULL_SAFE_DOT ) LEFT_PAREN )=>d= ( DOT | NULL_SAFE_DOT ) LEFT_PAREN expression ( COMMA expression )* RIGHT_PAREN
{
d=input.LT(1);
if ( input.LA(1)==DOT||input.LA(1)==NULL_SAFE_DOT ) {
input.consume();
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return result;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
LEFT_PAREN12=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_primary3318); if (state.failed) return result;
if ( state.backtracking==0 ) { helper.emit(d, DroolsEditorType.SYMBOL); helper.emit(LEFT_PAREN12, DroolsEditorType.SYMBOL); }
pushFollow(FOLLOW_expression_in_primary3358);
expression();
state._fsp--;
if (state.failed) return result;
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:627:48: ( COMMA expression )*
loop65:
while (true) {
int alt65=2;
int LA65_0 = input.LA(1);
if ( (LA65_0==COMMA) ) {
alt65=1;
}
switch (alt65) {
case 1 :
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:627:49: COMMA expression
{
COMMA13=(Token)match(input,COMMA,FOLLOW_COMMA_in_primary3361); if (state.failed) return result;
if ( state.backtracking==0 ) { helper.emit(COMMA13, DroolsEditorType.SYMBOL); }
pushFollow(FOLLOW_expression_in_primary3365);
expression();
state._fsp--;
if (state.failed) return result;
}
break;
default :
break loop65;
}
}
RIGHT_PAREN14=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_primary3405); if (state.failed) return result;
if ( state.backtracking==0 ) { helper.emit(RIGHT_PAREN14, DroolsEditorType.SYMBOL); }
}
}
break;
case 3 :
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:631:13: ( ( HASH ID )=>h= HASH i2= ID )
{
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:631:13: ( ( HASH ID )=>h= HASH i2= ID )
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:631:15: ( HASH ID )=>h= HASH i2= ID
{
h=(Token)match(input,HASH,FOLLOW_HASH_in_primary3459); if (state.failed) return result;
i2=(Token)match(input,ID,FOLLOW_ID_in_primary3463); if (state.failed) return result;
if ( state.backtracking==0 ) { helper.emit(h, DroolsEditorType.SYMBOL); helper.emit(i2, DroolsEditorType.IDENTIFIER); }
}
}
break;
case 4 :
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:633:13: ( ( NULL_SAFE_DOT ID )=>n= NULL_SAFE_DOT i2= ID )
{
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:633:13: ( ( NULL_SAFE_DOT ID )=>n= NULL_SAFE_DOT i2= ID )
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:633:15: ( NULL_SAFE_DOT ID )=>n= NULL_SAFE_DOT i2= ID
{
n=(Token)match(input,NULL_SAFE_DOT,FOLLOW_NULL_SAFE_DOT_in_primary3505); if (state.failed) return result;
i2=(Token)match(input,ID,FOLLOW_ID_in_primary3509); if (state.failed) return result;
if ( state.backtracking==0 ) { helper.emit(n, DroolsEditorType.SYMBOL); helper.emit(i2, DroolsEditorType.IDENTIFIER); }
}
}
break;
default :
break loop66;
}
}
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:634:12: ( ( identifierSuffix )=> identifierSuffix )?
int alt67=2;
int LA67_0 = input.LA(1);
if ( (LA67_0==LEFT_SQUARE) ) {
int LA67_1 = input.LA(2);
if ( (synpred37_DRL6Expressions()) ) {
alt67=1;
}
}
else if ( (LA67_0==LEFT_PAREN) ) {
int LA67_2 = input.LA(2);
if ( (synpred37_DRL6Expressions()) ) {
alt67=1;
}
}
switch (alt67) {
case 1 :
// src/main/resources/org/drools/drl/parser/DRL6Expressions.g:634:13: ( identifierSuffix )=> identifierSuffix
{
pushFollow(FOLLOW_identifierSuffix_in_primary3531);
identifierSuffix();
state._fsp--;
if (state.failed) return result;
}
break;
}
}
break;
}
}
catch (RecognitionException re) {
throw re;
}
finally {
// do for sure before leaving
}
return result;
}