blob: 9dfc9db38a5d43cf1dc3ff7c1204626440d37a97 [file] [log] [blame]
// $ANTLR 2.7.7 (20080530): "java-expression.g" -> "JavaRecognizer.java"$
package gnu.classpath.tools.gjdoc.expr;
import antlr.TokenBuffer;
import antlr.TokenStreamException;
import antlr.TokenStreamIOException;
import antlr.ANTLRException;
import antlr.LLkParser;
import antlr.Token;
import antlr.TokenStream;
import antlr.RecognitionException;
import antlr.NoViableAltException;
import antlr.MismatchedTokenException;
import antlr.SemanticException;
import antlr.ParserSharedInputState;
import antlr.collections.impl.BitSet;
import antlr.collections.AST;
import java.util.Hashtable;
import antlr.ASTFactory;
import antlr.ASTPair;
import antlr.collections.impl.ASTArray;
public class JavaRecognizer extends antlr.LLkParser implements JavaTokenTypes
{
protected JavaRecognizer(TokenBuffer tokenBuf, int k) {
super(tokenBuf,k);
tokenNames = _tokenNames;
buildTokenTypeASTClassMap();
astFactory = new ASTFactory(getTokenTypeToASTClassMap());
}
public JavaRecognizer(TokenBuffer tokenBuf) {
this(tokenBuf,2);
}
protected JavaRecognizer(TokenStream lexer, int k) {
super(lexer,k);
tokenNames = _tokenNames;
buildTokenTypeASTClassMap();
astFactory = new ASTFactory(getTokenTypeToASTClassMap());
}
public JavaRecognizer(TokenStream lexer) {
this(lexer,2);
}
public JavaRecognizer(ParserSharedInputState state) {
super(state,2);
tokenNames = _tokenNames;
buildTokenTypeASTClassMap();
astFactory = new ASTFactory(getTokenTypeToASTClassMap());
}
public final Type builtInTypeSpec(
boolean addImagNode
) throws RecognitionException, TokenStreamException {
Type t = null;
returnAST = null;
ASTPair currentAST = new ASTPair();
AST builtInTypeSpec_AST = null;
Token lb = null;
AST lb_AST = null;
t=builtInType();
astFactory.addASTChild(currentAST, returnAST);
{
_loop3:
do {
if ((LA(1)==LBRACK)) {
lb = LT(1);
lb_AST = astFactory.create(lb);
astFactory.makeASTRoot(currentAST, lb_AST);
match(LBRACK);
if ( inputState.guessing==0 ) {
lb_AST.setType(ARRAY_DECLARATOR);
}
match(RBRACK);
}
else {
break _loop3;
}
} while (true);
}
if ( inputState.guessing==0 ) {
builtInTypeSpec_AST = (AST)currentAST.root;
if ( addImagNode ) {
builtInTypeSpec_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE,"TYPE")).add(builtInTypeSpec_AST));
}
currentAST.root = builtInTypeSpec_AST;
currentAST.child = builtInTypeSpec_AST!=null &&builtInTypeSpec_AST.getFirstChild()!=null ?
builtInTypeSpec_AST.getFirstChild() : builtInTypeSpec_AST;
currentAST.advanceChildToEnd();
}
builtInTypeSpec_AST = (AST)currentAST.root;
returnAST = builtInTypeSpec_AST;
return t;
}
public final Type builtInType() throws RecognitionException, TokenStreamException {
Type t = null;
returnAST = null;
ASTPair currentAST = new ASTPair();
AST builtInType_AST = null;
switch ( LA(1)) {
case LITERAL_void:
{
AST tmp2_AST = null;
tmp2_AST = astFactory.create(LT(1));
astFactory.addASTChild(currentAST, tmp2_AST);
match(LITERAL_void);
if ( inputState.guessing==0 ) {
t=Type.VOID;
}
builtInType_AST = (AST)currentAST.root;
break;
}
case LITERAL_boolean:
{
AST tmp3_AST = null;
tmp3_AST = astFactory.create(LT(1));
astFactory.addASTChild(currentAST, tmp3_AST);
match(LITERAL_boolean);
if ( inputState.guessing==0 ) {
t=Type.BOOLEAN;
}
builtInType_AST = (AST)currentAST.root;
break;
}
case LITERAL_byte:
{
AST tmp4_AST = null;
tmp4_AST = astFactory.create(LT(1));
astFactory.addASTChild(currentAST, tmp4_AST);
match(LITERAL_byte);
if ( inputState.guessing==0 ) {
t=Type.BYTE;
}
builtInType_AST = (AST)currentAST.root;
break;
}
case LITERAL_char:
{
AST tmp5_AST = null;
tmp5_AST = astFactory.create(LT(1));
astFactory.addASTChild(currentAST, tmp5_AST);
match(LITERAL_char);
if ( inputState.guessing==0 ) {
t=Type.CHAR;
}
builtInType_AST = (AST)currentAST.root;
break;
}
case LITERAL_short:
{
AST tmp6_AST = null;
tmp6_AST = astFactory.create(LT(1));
astFactory.addASTChild(currentAST, tmp6_AST);
match(LITERAL_short);
if ( inputState.guessing==0 ) {
t=Type.SHORT;
}
builtInType_AST = (AST)currentAST.root;
break;
}
case LITERAL_int:
{
AST tmp7_AST = null;
tmp7_AST = astFactory.create(LT(1));
astFactory.addASTChild(currentAST, tmp7_AST);
match(LITERAL_int);
if ( inputState.guessing==0 ) {
t=Type.INTEGER;
}
builtInType_AST = (AST)currentAST.root;
break;
}
case LITERAL_float:
{
AST tmp8_AST = null;
tmp8_AST = astFactory.create(LT(1));
astFactory.addASTChild(currentAST, tmp8_AST);
match(LITERAL_float);
if ( inputState.guessing==0 ) {
t=Type.FLOAT;
}
builtInType_AST = (AST)currentAST.root;
break;
}
case LITERAL_long:
{
AST tmp9_AST = null;
tmp9_AST = astFactory.create(LT(1));
astFactory.addASTChild(currentAST, tmp9_AST);
match(LITERAL_long);
if ( inputState.guessing==0 ) {
t=Type.LONG;
}
builtInType_AST = (AST)currentAST.root;
break;
}
case LITERAL_double:
{
AST tmp10_AST = null;
tmp10_AST = astFactory.create(LT(1));
astFactory.addASTChild(currentAST, tmp10_AST);
match(LITERAL_double);
if ( inputState.guessing==0 ) {
t=Type.DOUBLE;
}
builtInType_AST = (AST)currentAST.root;
break;
}
case LITERAL_String:
{
AST tmp11_AST = null;
tmp11_AST = astFactory.create(LT(1));
astFactory.addASTChild(currentAST, tmp11_AST);
match(LITERAL_String);
if ( inputState.guessing==0 ) {
t=Type.STRING;
}
builtInType_AST = (AST)currentAST.root;
break;
}
default:
{
throw new NoViableAltException(LT(1), getFilename());
}
}
returnAST = builtInType_AST;
return t;
}
public final Type type() throws RecognitionException, TokenStreamException {
Type t;
returnAST = null;
ASTPair currentAST = new ASTPair();
AST type_AST = null;
t=builtInType();
astFactory.addASTChild(currentAST, returnAST);
type_AST = (AST)currentAST.root;
returnAST = type_AST;
return t;
}
public final String identifier() throws RecognitionException, TokenStreamException {
String s = null;;
returnAST = null;
ASTPair currentAST = new ASTPair();
AST identifier_AST = null;
Token i = null;
AST i_AST = null;
Token i2 = null;
AST i2_AST = null;
i = LT(1);
i_AST = astFactory.create(i);
astFactory.addASTChild(currentAST, i_AST);
match(IDENT);
if ( inputState.guessing==0 ) {
s=i.getText();
}
{
_loop8:
do {
if ((LA(1)==DOT)) {
AST tmp12_AST = null;
tmp12_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp12_AST);
match(DOT);
i2 = LT(1);
i2_AST = astFactory.create(i2);
astFactory.addASTChild(currentAST, i2_AST);
match(IDENT);
if ( inputState.guessing==0 ) {
s+="."+i2.getText();
}
}
else {
break _loop8;
}
} while (true);
}
identifier_AST = (AST)currentAST.root;
returnAST = identifier_AST;
return s;
}
public final Expression expression() throws RecognitionException, TokenStreamException {
Expression e = null;
returnAST = null;
ASTPair currentAST = new ASTPair();
AST expression_AST = null;
e=conditionalExpression();
astFactory.addASTChild(currentAST, returnAST);
match(Token.EOF_TYPE);
expression_AST = (AST)currentAST.root;
returnAST = expression_AST;
return e;
}
public final Expression conditionalExpression() throws RecognitionException, TokenStreamException {
Expression e = null;
returnAST = null;
ASTPair currentAST = new ASTPair();
AST conditionalExpression_AST = null;
Expression a,b,c;
e=logicalOrExpression();
astFactory.addASTChild(currentAST, returnAST);
{
switch ( LA(1)) {
case QUESTION:
{
AST tmp14_AST = null;
tmp14_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp14_AST);
match(QUESTION);
b=conditionalExpression();
astFactory.addASTChild(currentAST, returnAST);
match(COLON);
c=conditionalExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new ConditionalExpression(e,b,c);
}
break;
}
case EOF:
case COLON:
case RPAREN:
{
break;
}
default:
{
throw new NoViableAltException(LT(1), getFilename());
}
}
}
conditionalExpression_AST = (AST)currentAST.root;
returnAST = conditionalExpression_AST;
return e;
}
public final Expression logicalOrExpression() throws RecognitionException, TokenStreamException {
Expression e = null;
returnAST = null;
ASTPair currentAST = new ASTPair();
AST logicalOrExpression_AST = null;
Expression a,b;
e=logicalAndExpression();
astFactory.addASTChild(currentAST, returnAST);
{
_loop14:
do {
if ((LA(1)==LOR)) {
AST tmp16_AST = null;
tmp16_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp16_AST);
match(LOR);
b=logicalAndExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new LogicalOrExpression(e,b);
}
}
else {
break _loop14;
}
} while (true);
}
logicalOrExpression_AST = (AST)currentAST.root;
returnAST = logicalOrExpression_AST;
return e;
}
public final Expression logicalAndExpression() throws RecognitionException, TokenStreamException {
Expression e = null;
returnAST = null;
ASTPair currentAST = new ASTPair();
AST logicalAndExpression_AST = null;
Expression a,b;
e=inclusiveOrExpression();
astFactory.addASTChild(currentAST, returnAST);
{
_loop17:
do {
if ((LA(1)==LAND)) {
AST tmp17_AST = null;
tmp17_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp17_AST);
match(LAND);
b=inclusiveOrExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new LogicalAndExpression(e,b);
}
}
else {
break _loop17;
}
} while (true);
}
logicalAndExpression_AST = (AST)currentAST.root;
returnAST = logicalAndExpression_AST;
return e;
}
public final Expression inclusiveOrExpression() throws RecognitionException, TokenStreamException {
Expression e = null;
returnAST = null;
ASTPair currentAST = new ASTPair();
AST inclusiveOrExpression_AST = null;
Expression a,b;
e=exclusiveOrExpression();
astFactory.addASTChild(currentAST, returnAST);
{
_loop20:
do {
if ((LA(1)==BOR)) {
AST tmp18_AST = null;
tmp18_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp18_AST);
match(BOR);
b=exclusiveOrExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new InclusiveOrExpression(e,b);
}
}
else {
break _loop20;
}
} while (true);
}
inclusiveOrExpression_AST = (AST)currentAST.root;
returnAST = inclusiveOrExpression_AST;
return e;
}
public final Expression exclusiveOrExpression() throws RecognitionException, TokenStreamException {
Expression e = null;
returnAST = null;
ASTPair currentAST = new ASTPair();
AST exclusiveOrExpression_AST = null;
Expression a,b;
e=andExpression();
astFactory.addASTChild(currentAST, returnAST);
{
_loop23:
do {
if ((LA(1)==BXOR)) {
AST tmp19_AST = null;
tmp19_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp19_AST);
match(BXOR);
b=andExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new ExclusiveOrExpression(e,b);
}
}
else {
break _loop23;
}
} while (true);
}
exclusiveOrExpression_AST = (AST)currentAST.root;
returnAST = exclusiveOrExpression_AST;
return e;
}
public final Expression andExpression() throws RecognitionException, TokenStreamException {
Expression e = null;
returnAST = null;
ASTPair currentAST = new ASTPair();
AST andExpression_AST = null;
Expression a,b;
e=equalityExpression();
astFactory.addASTChild(currentAST, returnAST);
{
_loop26:
do {
if ((LA(1)==BAND)) {
AST tmp20_AST = null;
tmp20_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp20_AST);
match(BAND);
b=equalityExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new AndExpression(e,b);
}
}
else {
break _loop26;
}
} while (true);
}
andExpression_AST = (AST)currentAST.root;
returnAST = andExpression_AST;
return e;
}
public final Expression equalityExpression() throws RecognitionException, TokenStreamException {
Expression e = null;
returnAST = null;
ASTPair currentAST = new ASTPair();
AST equalityExpression_AST = null;
Expression a,b;
e=relationalExpression();
astFactory.addASTChild(currentAST, returnAST);
{
_loop30:
do {
if ((LA(1)==NOT_EQUAL||LA(1)==EQUAL)) {
{
switch ( LA(1)) {
case NOT_EQUAL:
{
AST tmp21_AST = null;
tmp21_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp21_AST);
match(NOT_EQUAL);
a=relationalExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new NotEqualExpression(e,a);
}
break;
}
case EQUAL:
{
AST tmp22_AST = null;
tmp22_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp22_AST);
match(EQUAL);
a=relationalExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new EqualExpression(e,a);
}
break;
}
default:
{
throw new NoViableAltException(LT(1), getFilename());
}
}
}
}
else {
break _loop30;
}
} while (true);
}
equalityExpression_AST = (AST)currentAST.root;
returnAST = equalityExpression_AST;
return e;
}
public final Expression relationalExpression() throws RecognitionException, TokenStreamException {
Expression e = null;
returnAST = null;
ASTPair currentAST = new ASTPair();
AST relationalExpression_AST = null;
Expression a,b;
e=shiftExpression();
astFactory.addASTChild(currentAST, returnAST);
{
{
_loop35:
do {
if (((LA(1) >= LT && LA(1) <= GE))) {
{
switch ( LA(1)) {
case LT:
{
AST tmp23_AST = null;
tmp23_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp23_AST);
match(LT);
a=shiftExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new LessThanExpression(e,a);
}
break;
}
case GT:
{
AST tmp24_AST = null;
tmp24_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp24_AST);
match(GT);
a=shiftExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new GreaterThanExpression(e,a);
}
break;
}
case LE:
{
AST tmp25_AST = null;
tmp25_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp25_AST);
match(LE);
a=shiftExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new LessThanOrEqualExpression(e,a);
}
break;
}
case GE:
{
AST tmp26_AST = null;
tmp26_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp26_AST);
match(GE);
a=shiftExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new GreaterThanOrEqualExpression(e,a);
}
break;
}
default:
{
throw new NoViableAltException(LT(1), getFilename());
}
}
}
}
else {
break _loop35;
}
} while (true);
}
}
relationalExpression_AST = (AST)currentAST.root;
returnAST = relationalExpression_AST;
return e;
}
public final Expression shiftExpression() throws RecognitionException, TokenStreamException {
Expression e = null;
returnAST = null;
ASTPair currentAST = new ASTPair();
AST shiftExpression_AST = null;
Expression a,b;
e=additiveExpression();
astFactory.addASTChild(currentAST, returnAST);
{
_loop39:
do {
if (((LA(1) >= SL && LA(1) <= BSR))) {
{
switch ( LA(1)) {
case SL:
{
AST tmp27_AST = null;
tmp27_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp27_AST);
match(SL);
a=additiveExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new ShiftLeftExpression(e,a);
}
break;
}
case SR:
{
AST tmp28_AST = null;
tmp28_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp28_AST);
match(SR);
a=additiveExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new ShiftRightExpression(e,a);
}
break;
}
case BSR:
{
AST tmp29_AST = null;
tmp29_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp29_AST);
match(BSR);
a=additiveExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new BitShiftRightExpression(e,a);
}
break;
}
default:
{
throw new NoViableAltException(LT(1), getFilename());
}
}
}
}
else {
break _loop39;
}
} while (true);
}
shiftExpression_AST = (AST)currentAST.root;
returnAST = shiftExpression_AST;
return e;
}
public final Expression additiveExpression() throws RecognitionException, TokenStreamException {
Expression e = null;
returnAST = null;
ASTPair currentAST = new ASTPair();
AST additiveExpression_AST = null;
Expression a,b;
e=multiplicativeExpression();
astFactory.addASTChild(currentAST, returnAST);
{
_loop43:
do {
if ((LA(1)==PLUS||LA(1)==MINUS)) {
{
switch ( LA(1)) {
case PLUS:
{
AST tmp30_AST = null;
tmp30_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp30_AST);
match(PLUS);
a=multiplicativeExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new AdditionExpression(e,a);
}
break;
}
case MINUS:
{
AST tmp31_AST = null;
tmp31_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp31_AST);
match(MINUS);
a=multiplicativeExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new SubtractionExpression(e,a);
}
break;
}
default:
{
throw new NoViableAltException(LT(1), getFilename());
}
}
}
}
else {
break _loop43;
}
} while (true);
}
additiveExpression_AST = (AST)currentAST.root;
returnAST = additiveExpression_AST;
return e;
}
public final Expression multiplicativeExpression() throws RecognitionException, TokenStreamException {
Expression e = null;
returnAST = null;
ASTPair currentAST = new ASTPair();
AST multiplicativeExpression_AST = null;
Expression a,b;
e=unaryExpression();
astFactory.addASTChild(currentAST, returnAST);
{
_loop47:
do {
if (((LA(1) >= STAR && LA(1) <= MOD))) {
{
switch ( LA(1)) {
case STAR:
{
AST tmp32_AST = null;
tmp32_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp32_AST);
match(STAR);
a=unaryExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new MultiplicationExpression(e,a);
}
break;
}
case DIV:
{
AST tmp33_AST = null;
tmp33_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp33_AST);
match(DIV);
a=unaryExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new DivisionExpression(e,a);
}
break;
}
case MOD:
{
AST tmp34_AST = null;
tmp34_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp34_AST);
match(MOD);
a=unaryExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new ModuloExpression(e,a);
}
break;
}
default:
{
throw new NoViableAltException(LT(1), getFilename());
}
}
}
}
else {
break _loop47;
}
} while (true);
}
multiplicativeExpression_AST = (AST)currentAST.root;
returnAST = multiplicativeExpression_AST;
return e;
}
public final Expression unaryExpression() throws RecognitionException, TokenStreamException {
Expression e = null;
returnAST = null;
ASTPair currentAST = new ASTPair();
AST unaryExpression_AST = null;
Expression a,b;
switch ( LA(1)) {
case MINUS:
{
AST tmp35_AST = null;
tmp35_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp35_AST);
match(MINUS);
if ( inputState.guessing==0 ) {
tmp35_AST.setType(UNARY_MINUS);
}
a=unaryExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new NegateExpression(a);
}
unaryExpression_AST = (AST)currentAST.root;
break;
}
case PLUS:
{
AST tmp36_AST = null;
tmp36_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp36_AST);
match(PLUS);
if ( inputState.guessing==0 ) {
tmp36_AST.setType(UNARY_PLUS);
}
e=unaryExpression();
astFactory.addASTChild(currentAST, returnAST);
unaryExpression_AST = (AST)currentAST.root;
break;
}
case IDENT:
case BNOT:
case LNOT:
case LPAREN:
case LITERAL_true:
case LITERAL_false:
case LITERAL_null:
case NUM_INT:
case CHAR_LITERAL:
case STRING_LITERAL:
case NUM_FLOAT:
case NUM_LONG:
case NUM_DOUBLE:
{
e=unaryExpressionNotPlusMinus();
astFactory.addASTChild(currentAST, returnAST);
unaryExpression_AST = (AST)currentAST.root;
break;
}
default:
{
throw new NoViableAltException(LT(1), getFilename());
}
}
returnAST = unaryExpression_AST;
return e;
}
public final Expression unaryExpressionNotPlusMinus() throws RecognitionException, TokenStreamException {
Expression e = null;
returnAST = null;
ASTPair currentAST = new ASTPair();
AST unaryExpressionNotPlusMinus_AST = null;
Token lpb = null;
AST lpb_AST = null;
Expression a; Type t;
switch ( LA(1)) {
case BNOT:
{
AST tmp37_AST = null;
tmp37_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp37_AST);
match(BNOT);
a=unaryExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new NotExpression(a);
}
unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
break;
}
case LNOT:
{
AST tmp38_AST = null;
tmp38_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp38_AST);
match(LNOT);
a=unaryExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new LogicalNotExpression(a);
}
unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
break;
}
default:
boolean synPredMatched51 = false;
if (((LA(1)==LPAREN) && ((LA(2) >= LITERAL_void && LA(2) <= LITERAL_String)))) {
int _m51 = mark();
synPredMatched51 = true;
inputState.guessing++;
try {
{
match(LPAREN);
builtInTypeSpec(true);
match(RPAREN);
}
}
catch (RecognitionException pe) {
synPredMatched51 = false;
}
rewind(_m51);
inputState.guessing--;
}
if ( synPredMatched51 ) {
lpb = LT(1);
lpb_AST = astFactory.create(lpb);
astFactory.makeASTRoot(currentAST, lpb_AST);
match(LPAREN);
if ( inputState.guessing==0 ) {
lpb_AST.setType(TYPECAST);
}
t=builtInTypeSpec(true);
astFactory.addASTChild(currentAST, returnAST);
match(RPAREN);
a=unaryExpression();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new TypeCastExpression(t,a);
}
unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
}
else if ((_tokenSet_0.member(LA(1))) && (_tokenSet_1.member(LA(2)))) {
e=primaryExpression();
astFactory.addASTChild(currentAST, returnAST);
unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
}
else {
throw new NoViableAltException(LT(1), getFilename());
}
}
returnAST = unaryExpressionNotPlusMinus_AST;
return e;
}
public final Expression primaryExpression() throws RecognitionException, TokenStreamException {
Expression e = null; String i = null;;
returnAST = null;
ASTPair currentAST = new ASTPair();
AST primaryExpression_AST = null;
switch ( LA(1)) {
case NUM_INT:
case CHAR_LITERAL:
case STRING_LITERAL:
case NUM_FLOAT:
case NUM_LONG:
case NUM_DOUBLE:
{
e=constant();
astFactory.addASTChild(currentAST, returnAST);
primaryExpression_AST = (AST)currentAST.root;
break;
}
case IDENT:
{
i=identifier();
astFactory.addASTChild(currentAST, returnAST);
if ( inputState.guessing==0 ) {
e=new IdentifierExpression(i);
}
primaryExpression_AST = (AST)currentAST.root;
break;
}
case LITERAL_true:
{
AST tmp40_AST = null;
tmp40_AST = astFactory.create(LT(1));
astFactory.addASTChild(currentAST, tmp40_AST);
match(LITERAL_true);
if ( inputState.guessing==0 ) {
e=new ConstantBoolean(true);
}
primaryExpression_AST = (AST)currentAST.root;
break;
}
case LITERAL_false:
{
AST tmp41_AST = null;
tmp41_AST = astFactory.create(LT(1));
astFactory.addASTChild(currentAST, tmp41_AST);
match(LITERAL_false);
if ( inputState.guessing==0 ) {
e=new ConstantBoolean(false);
}
primaryExpression_AST = (AST)currentAST.root;
break;
}
case LITERAL_null:
{
AST tmp42_AST = null;
tmp42_AST = astFactory.create(LT(1));
astFactory.addASTChild(currentAST, tmp42_AST);
match(LITERAL_null);
if ( inputState.guessing==0 ) {
e=new ConstantNull();
}
primaryExpression_AST = (AST)currentAST.root;
break;
}
case LPAREN:
{
match(LPAREN);
e=conditionalExpression();
astFactory.addASTChild(currentAST, returnAST);
match(RPAREN);
primaryExpression_AST = (AST)currentAST.root;
break;
}
default:
{
throw new NoViableAltException(LT(1), getFilename());
}
}
returnAST = primaryExpression_AST;
return e;
}
public final Expression constant() throws RecognitionException, TokenStreamException {
Expression e = null;
returnAST = null;
ASTPair currentAST = new ASTPair();
AST constant_AST = null;
Token l1 = null;
AST l1_AST = null;
Token l2 = null;
AST l2_AST = null;
Token l3 = null;
AST l3_AST = null;
Token l4 = null;
AST l4_AST = null;
Token l5 = null;
AST l5_AST = null;
Token l6 = null;
AST l6_AST = null;
switch ( LA(1)) {
case NUM_INT:
{
l1 = LT(1);
l1_AST = astFactory.create(l1);
astFactory.addASTChild(currentAST, l1_AST);
match(NUM_INT);
if ( inputState.guessing==0 ) {
e=new ConstantInteger(l1.getText());
}
constant_AST = (AST)currentAST.root;
break;
}
case CHAR_LITERAL:
{
l2 = LT(1);
l2_AST = astFactory.create(l2);
astFactory.addASTChild(currentAST, l2_AST);
match(CHAR_LITERAL);
if ( inputState.guessing==0 ) {
e=new ConstantChar(l2.getText());
}
constant_AST = (AST)currentAST.root;
break;
}
case STRING_LITERAL:
{
l3 = LT(1);
l3_AST = astFactory.create(l3);
astFactory.addASTChild(currentAST, l3_AST);
match(STRING_LITERAL);
if ( inputState.guessing==0 ) {
e=new ConstantString(l3.getText().substring(1, l3.getText().length()-1));
}
constant_AST = (AST)currentAST.root;
break;
}
case NUM_FLOAT:
{
l4 = LT(1);
l4_AST = astFactory.create(l4);
astFactory.addASTChild(currentAST, l4_AST);
match(NUM_FLOAT);
if ( inputState.guessing==0 ) {
e=new ConstantFloat(l4.getText());
}
constant_AST = (AST)currentAST.root;
break;
}
case NUM_LONG:
{
l5 = LT(1);
l5_AST = astFactory.create(l5);
astFactory.addASTChild(currentAST, l5_AST);
match(NUM_LONG);
if ( inputState.guessing==0 ) {
e=new ConstantLong(l5.getText());
}
constant_AST = (AST)currentAST.root;
break;
}
case NUM_DOUBLE:
{
l6 = LT(1);
l6_AST = astFactory.create(l6);
astFactory.addASTChild(currentAST, l6_AST);
match(NUM_DOUBLE);
if ( inputState.guessing==0 ) {
e=new ConstantDouble(l6.getText());
}
constant_AST = (AST)currentAST.root;
break;
}
default:
{
throw new NoViableAltException(LT(1), getFilename());
}
}
returnAST = constant_AST;
return e;
}
/** Match a, a.b.c refs
*/
public final Expression identPrimary() throws RecognitionException, TokenStreamException {
Expression e = null;
returnAST = null;
ASTPair currentAST = new ASTPair();
AST identPrimary_AST = null;
AST tmp45_AST = null;
tmp45_AST = astFactory.create(LT(1));
astFactory.addASTChild(currentAST, tmp45_AST);
match(IDENT);
{
_loop55:
do {
if ((LA(1)==DOT)) {
AST tmp46_AST = null;
tmp46_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp46_AST);
match(DOT);
AST tmp47_AST = null;
tmp47_AST = astFactory.create(LT(1));
astFactory.addASTChild(currentAST, tmp47_AST);
match(IDENT);
}
else {
break _loop55;
}
} while (true);
}
identPrimary_AST = (AST)currentAST.root;
returnAST = identPrimary_AST;
return e;
}
public static final String[] _tokenNames = {
"<0>",
"EOF",
"<2>",
"NULL_TREE_LOOKAHEAD",
"BLOCK",
"MODIFIERS",
"OBJBLOCK",
"SLIST",
"CTOR_DEF",
"METHOD_DEF",
"VARIABLE_DEF",
"INSTANCE_INIT",
"STATIC_INIT",
"TYPE",
"CLASS_DEF",
"INTERFACE_DEF",
"PACKAGE_DEF",
"ARRAY_DECLARATOR",
"EXTENDS_CLAUSE",
"IMPLEMENTS_CLAUSE",
"PARAMETERS",
"PARAMETER_DEF",
"LABELED_STAT",
"TYPECAST",
"INDEX_OP",
"POST_INC",
"POST_DEC",
"METHOD_CALL",
"EXPR",
"ARRAY_INIT",
"IMPORT",
"UNARY_MINUS",
"UNARY_PLUS",
"CASE_GROUP",
"ELIST",
"FOR_INIT",
"FOR_CONDITION",
"FOR_ITERATOR",
"EMPTY_STAT",
"\"final\"",
"\"abstract\"",
"\"strictfp\"",
"SUPER_CTOR_CALL",
"CTOR_CALL",
"LBRACK",
"RBRACK",
"\"void\"",
"\"boolean\"",
"\"byte\"",
"\"char\"",
"\"short\"",
"\"int\"",
"\"float\"",
"\"long\"",
"\"double\"",
"\"String\"",
"IDENT",
"DOT",
"QUESTION",
"COLON",
"LOR",
"LAND",
"BOR",
"BXOR",
"BAND",
"NOT_EQUAL",
"EQUAL",
"LT",
"GT",
"LE",
"GE",
"SL",
"SR",
"BSR",
"PLUS",
"MINUS",
"STAR",
"DIV",
"MOD",
"BNOT",
"LNOT",
"LPAREN",
"RPAREN",
"\"true\"",
"\"false\"",
"\"null\"",
"NUM_INT",
"CHAR_LITERAL",
"STRING_LITERAL",
"NUM_FLOAT",
"NUM_LONG",
"NUM_DOUBLE",
"LCURLY",
"RCURLY",
"COMMA",
"ASSIGN",
"DIV_ASSIGN",
"PLUS_ASSIGN",
"INC",
"MINUS_ASSIGN",
"DEC",
"STAR_ASSIGN",
"MOD_ASSIGN",
"SR_ASSIGN",
"BSR_ASSIGN",
"SL_ASSIGN",
"BXOR_ASSIGN",
"BOR_ASSIGN",
"BAND_ASSIGN",
"SEMI",
"WS",
"SL_COMMIT",
"ML_COMMENT",
"ESC",
"HEX_DIGIT",
"VOCAB",
"EXPONENT",
"FLOAT_SUFFIX"
};
protected void buildTokenTypeASTClassMap() {
tokenTypeToASTClassMap=null;
};
private static final long[] mk_tokenSet_0() {
long[] data = { 72057594037927936L, 268042240L, 0L, 0L};
return data;
}
public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0());
private static final long[] mk_tokenSet_1() {
long[] data = { -72057594037927934L, 268435455L, 0L, 0L};
return data;
}
public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1());
}