public ParseItem yylex() throws FormulaException, IOException {
int yy_lookahead;
int yy_anchor = YY_NO_ANCHOR;
int yy_state = yy_state_dtrans[yy_lexical_state];
int yy_next_state = YY_NO_STATE;
int yy_last_accept_state = YY_NO_STATE;
boolean yy_initial = true;
int yy_this_accept;
yy_mark_start();
yy_this_accept = yy_acpt[yy_state];
if (YY_NOT_ACCEPT != yy_this_accept) {
yy_last_accept_state = yy_state;
yy_mark_end();
}
while (true) {
if (yy_initial && yy_at_bol) yy_lookahead = YY_BOL;
else yy_lookahead = yy_advance();
yy_next_state = YY_F;
yy_next_state = yy_nxt[yy_rmap[yy_state]][yy_cmap[yy_lookahead]];
if (YY_EOF == yy_lookahead && true == yy_initial) {
return null;
}
if (YY_F != yy_next_state) {
yy_state = yy_next_state;
yy_initial = false;
yy_this_accept = yy_acpt[yy_state];
if (YY_NOT_ACCEPT != yy_this_accept) {
yy_last_accept_state = yy_state;
yy_mark_end();
}
}
else {
if (YY_NO_STATE == yy_last_accept_state) {
throw (new Error("Lexical Error: Unmatched Input."));
}
else {
yy_anchor = yy_acpt[yy_last_accept_state];
if (0 != (YY_END & yy_anchor)) {
yy_move_end();
}
yy_to_mark();
switch (yy_last_accept_state) {
case 1:
case -2:
break;
case 2:
{ return new Plus() ;}
case -3:
break;
case 3:
{ return new Minus() ; }
case -4:
break;
case 4:
{ return new Multiply() ; }
case -5:
break;
case 5:
{ return new Divide() ; }
case -6:
break;
case 6:
{ return new GreaterThan() ; }
case -7:
break;
case 7:
{ return new Equal() ; }
case -8:
break;
case 8:
{ return new LessThan() ; }
case -9:
break;
case 9:
{ return new ArgumentSeparator() ; }
case -10:
break;
case 10:
{ return new IntegerValue(yytext()) ; }
case -11:
break;
case 11:
{return new NameRange(yytext(), nameTable); }
case -12:
break;
case 12:
{ return new RangeSeparator(); }
case -13:
break;
case 13:
{}
case -14:
break;
case 14:
{ return new OpenParentheses() ;}
case -15:
break;
case 15:
{ return new CloseParentheses() ;}
case -16:
break;
case 16:
{emptyString = true; yybegin(YYSTRING);}
case -17:
break;
case 17:
{ return new GreaterEqual() ; }
case -18:
break;
case 18:
{ return new NotEqual() ; }
case -19:
break;
case 19:
{ return new LessEqual() ; }
case -20:
break;
case 20:
{ return new CellReference(yytext()) ; }
case -21:
break;
case 21:
{ return new StringFunction(yytext()) ; }
case -22:
break;
case 22:
{ return new DoubleValue(yytext()) ; }
case -23:
break;
case 23:
{ return new ColumnRange(yytext()); }
case -24:
break;
case 24:
{return new CellReference3d(yytext(),externalSheet) ; }
case -25:
break;
case 25:
{return new BooleanValue(yytext());}
case -26:
break;
case 26:
{ return new Area(yytext()) ; }
case -27:
break;
case 27:
{return new CellReference3d(yytext(),externalSheet) ; }
case -28:
break;
case 28:
{return new BooleanValue(yytext());}
case -29:
break;
case 29:
{return new ErrorConstant(yytext());}
case -30:
break;
case 30:
{ return new ColumnRange3d(yytext(),externalSheet) ; }
case -31:
break;
case 31:
{ return new Area3d(yytext(),externalSheet) ; }
case -32:
break;
case 32:
{emptyString = false; return new StringValue(yytext()) ; }
case -33:
break;
case 33:
{yybegin(YYINITIAL); if (emptyString) return new StringValue("");}
case -34:
break;
case 35:
{return new NameRange(yytext(), nameTable); }
case -35:
break;
case 36:
{ return new CellReference(yytext()) ; }
case -36:
break;
case 37:
{ return new ColumnRange(yytext()); }
case -37:
break;
case 38:
{ return new ColumnRange3d(yytext(),externalSheet) ; }
case -38:
break;
case 39:
{emptyString = false; return new StringValue(yytext()) ; }
case -39:
break;
case 41:
{return new NameRange(yytext(), nameTable); }
case -40:
break;
case 43:
{return new NameRange(yytext(), nameTable); }
case -41:
break;
case 45:
{return new NameRange(yytext(), nameTable); }
case -42:
break;
case 89:
{return new NameRange(yytext(), nameTable); }
case -43:
break;
case 90:
{return new NameRange(yytext(), nameTable); }
case -44:
break;
case 93:
{return new NameRange(yytext(), nameTable); }
case -45:
break;
case 94:
{return new NameRange(yytext(), nameTable); }
case -46:
break;
case 95:
{return new NameRange(yytext(), nameTable); }
case -47:
break;
case 96:
{return new NameRange(yytext(), nameTable); }
case -48:
break;
default:
yy_error(YY_E_INTERNAL,false);
case -1:
}
yy_initial = true;
yy_state = yy_state_dtrans[yy_lexical_state];
yy_next_state = YY_NO_STATE;
yy_last_accept_state = YY_NO_STATE;
yy_mark_start();
yy_this_accept = yy_acpt[yy_state];
if (YY_NOT_ACCEPT != yy_this_accept) {
yy_last_accept_state = yy_state;
yy_mark_end();
}
}
}
}
}
|