📄 yylex.java
字号:
public ParseItem yylex()
throws IOException, FormulaException
{
int yy_anchor = 4;
int yy_state = yy_state_dtrans[yy_lexical_state];
int yy_next_state = -1;
int yy_last_accept_state = -1;
boolean yy_initial = true;
yy_mark_start();
int yy_this_accept = yy_acpt[yy_state];
if(0 != yy_this_accept)
{
yy_last_accept_state = yy_state;
yy_mark_end();
}
do
{
int yy_lookahead;
if(yy_initial && yy_at_bol)
yy_lookahead = 0x10000;
else
yy_lookahead = yy_advance();
yy_next_state = -1;
yy_next_state = yy_nxt[yy_rmap[yy_state]][yy_cmap[yy_lookahead]];
if(0x10001 == yy_lookahead && yy_initial)
return null;
if(-1 != yy_next_state)
{
yy_state = yy_next_state;
yy_initial = false;
yy_this_accept = yy_acpt[yy_state];
if(0 != yy_this_accept)
{
yy_last_accept_state = yy_state;
yy_mark_end();
}
} else
{
if(-1 == yy_last_accept_state)
throw new Error("Lexical Error: Unmatched Input.");
yy_anchor = yy_acpt[yy_last_accept_state];
if(0 != (0x2 & yy_anchor))
yy_move_end();
yy_to_mark();
switch(yy_last_accept_state)
{
case -44:
case -43:
case -42:
case -41:
case -40:
case -39:
case -38:
case -37:
case -36:
case -35:
case -34:
case -33:
case -32:
case -31:
case -30:
case -29:
case -28:
case -27:
case -26:
case -25:
case -24:
case -23:
case -22:
case -21:
case -20:
case -19:
case -18:
case -17:
case -16:
case -15:
case -14:
case -13:
case -12:
case -11:
case -10:
case -9:
case -8:
case -7:
case -6:
case -5:
case -4:
case -3:
case -2:
case -1:
case 1: // '\001'
case 12: // '\f'
break;
case 2: // '\002'
return new Plus();
case 3: // '\003'
return new Minus();
case 4: // '\004'
return new Multiply();
case 5: // '\005'
return new Divide();
case 6: // '\006'
return new GreaterThan();
case 7: // '\007'
return new Equal();
case 8: // '\b'
return new LessThan();
case 9: // '\t'
return new ArgumentSeparator();
case 10: // '\n'
return new IntegerValue(yytext());
case 11: // '\013'
return new RangeSeparator();
case 13: // '\r'
return new OpenParentheses();
case 14: // '\016'
return new CloseParentheses();
case 15: // '\017'
emptyString = true;
yybegin(1);
break;
case 16: // '\020'
return new GreaterEqual();
case 17: // '\021'
return new NotEqual();
case 18: // '\022'
return new LessEqual();
case 19: // '\023'
return new CellReference(yytext());
case 20: // '\024'
return new NameRange(yytext(), nameTable);
case 21: // '\025'
return new StringFunction(yytext());
case 22: // '\026'
return new DoubleValue(yytext());
case 23: // '\027'
return new ColumnRange(yytext());
case 24: // '\030'
return new CellReference3d(yytext(), externalSheet);
case 25: // '\031'
return new BooleanValue(yytext());
case 26: // '\032'
return new Area(yytext());
case 27: // '\033'
return new CellReference3d(yytext(), externalSheet);
case 28: // '\034'
return new BooleanValue(yytext());
case 29: // '\035'
return new ColumnRange3d(yytext(), externalSheet);
case 30: // '\036'
return new Area3d(yytext(), externalSheet);
case 31: // '\037'
emptyString = false;
return new StringValue(yytext());
case 32: // ' '
yybegin(0);
if(emptyString)
return new StringValue("");
break;
case 34: // '"'
return new CellReference(yytext());
case 35: // '#'
return new NameRange(yytext(), nameTable);
case 36: // '$'
return new ColumnRange(yytext());
case 37: // '%'
return new ColumnRange3d(yytext(), externalSheet);
case 38: // '&'
emptyString = false;
return new StringValue(yytext());
case 40: // '('
return new NameRange(yytext(), nameTable);
case 42: // '*'
return new NameRange(yytext(), nameTable);
case 44: // ','
return new NameRange(yytext(), nameTable);
case 68: // 'D'
return new NameRange(yytext(), nameTable);
case 70: // 'F'
return new NameRange(yytext(), nameTable);
case 76: // 'L'
return new NameRange(yytext(), nameTable);
case 0: // '\0'
case 33: // '!'
case 39: // '\''
case 41: // ')'
case 43: // '+'
case 45: // '-'
case 46: // '.'
case 47: // '/'
case 48: // '0'
case 49: // '1'
case 50: // '2'
case 51: // '3'
case 52: // '4'
case 53: // '5'
case 54: // '6'
case 55: // '7'
case 56: // '8'
case 57: // '9'
case 58: // ':'
case 59: // ';'
case 60: // '<'
case 61: // '='
case 62: // '>'
case 63: // '?'
case 64: // '@'
case 65: // 'A'
case 66: // 'B'
case 67: // 'C'
case 69: // 'E'
case 71: // 'G'
case 72: // 'H'
case 73: // 'I'
case 74: // 'J'
case 75: // 'K'
default:
yy_error(0, false);
break;
}
yy_initial = true;
yy_state = yy_state_dtrans[yy_lexical_state];
yy_next_state = -1;
yy_last_accept_state = -1;
yy_mark_start();
yy_this_accept = yy_acpt[yy_state];
if(0 != yy_this_accept)
{
yy_last_accept_state = yy_state;
yy_mark_end();
}
}
} while(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -