nesclexer.java
来自「plugin for eclipse」· Java 代码 · 共 2,374 行 · 第 1/5 页
JAVA
2,374 行
int _m3325 = mark();
synPredMatched3325 = true;
inputState.guessing++;
try {
{
match("...");
}
}
catch (RecognitionException pe) {
synPredMatched3325 = false;
}
rewind(_m3325);
inputState.guessing--;
}
if ( synPredMatched3325 ) {
match("...");
if ( inputState.guessing==0 ) {
_ttype = VARARGS;
}
}
else if ((LA(1)=='0') && (LA(2)=='X'||LA(2)=='x')) {
match('0');
{
switch ( LA(1)) {
case 'x':
{
match('x');
break;
}
case 'X':
{
match('X');
break;
}
default:
{
throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
}
}
}
{
int _cnt3342=0;
_loop3342:
do {
switch ( LA(1)) {
case 'a': case 'b': case 'c': case 'd':
case 'e': case 'f':
{
matchRange('a','f');
break;
}
case 'A': case 'B': case 'C': case 'D':
case 'E': case 'F':
{
matchRange('A','F');
break;
}
case '0': case '1': case '2': case '3':
case '4': case '5': case '6': case '7':
case '8': case '9':
{
mDigit(false);
break;
}
default:
{
if ( _cnt3342>=1 ) { break _loop3342; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
}
}
_cnt3342++;
} while (true);
}
{
_loop3344:
do {
if ((_tokenSet_4.member(LA(1)))) {
mIntSuffix(false);
}
else {
break _loop3344;
}
} while (true);
}
}
else if ((LA(1)=='.') && (true)) {
match('.');
if ( inputState.guessing==0 ) {
_ttype = DOT;
}
{
if (((LA(1) >= '0' && LA(1) <= '9'))) {
{
int _cnt3328=0;
_loop3328:
do {
if (((LA(1) >= '0' && LA(1) <= '9'))) {
mDigit(false);
}
else {
if ( _cnt3328>=1 ) { break _loop3328; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
}
_cnt3328++;
} while (true);
}
{
if ((LA(1)=='E'||LA(1)=='e')) {
mExponent(false);
}
else {
}
}
if ( inputState.guessing==0 ) {
_ttype = Number;
}
{
_loop3331:
do {
if ((_tokenSet_3.member(LA(1)))) {
mNumberSuffix(false);
}
else {
break _loop3331;
}
} while (true);
}
}
else {
}
}
}
else if ((LA(1)=='0') && (true) && (true)) {
match('0');
{
_loop3333:
do {
if (((LA(1) >= '0' && LA(1) <= '7'))) {
matchRange('0','7');
}
else {
break _loop3333;
}
} while (true);
}
{
_loop3335:
do {
if ((_tokenSet_3.member(LA(1)))) {
mNumberSuffix(false);
}
else {
break _loop3335;
}
} while (true);
}
}
else if (((LA(1) >= '1' && LA(1) <= '9')) && (true) && (true)) {
matchRange('1','9');
{
_loop3337:
do {
if (((LA(1) >= '0' && LA(1) <= '9'))) {
mDigit(false);
}
else {
break _loop3337;
}
} while (true);
}
{
_loop3339:
do {
if ((_tokenSet_3.member(LA(1)))) {
mNumberSuffix(false);
}
else {
break _loop3339;
}
} while (true);
}
}
else {
throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
}
}
if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
_token = makeToken(_ttype);
_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
}
_returnToken = _token;
}
public final void mStringLiteral(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
int _ttype; Token _token=null; int _begin=text.length();
_ttype = StringLiteral;
int _saveIndex;
match('"');
{
_loop3359:
do {
boolean synPredMatched3356 = false;
if (((LA(1)=='\\') && ((LA(2) >= '\u0000' && LA(2) <= '\u00ff')) && ((LA(3) >= '\u0000' && LA(3) <= '\u00ff')))) {
int _m3356 = mark();
synPredMatched3356 = true;
inputState.guessing++;
try {
{
match('\\');
{
match(_tokenSet_5);
}
}
}
catch (RecognitionException pe) {
synPredMatched3356 = false;
}
rewind(_m3356);
inputState.guessing--;
}
if ( synPredMatched3356 ) {
mEscape(false);
}
else if ((LA(1)=='\n'||LA(1)=='\r'||LA(1)=='\\') && ((LA(2) >= '\u0000' && LA(2) <= '\u00ff')) && (true)) {
{
switch ( LA(1)) {
case '\r':
{
match('\r');
if ( inputState.guessing==0 ) {
newline();
}
break;
}
case '\n':
{
match('\n');
if ( inputState.guessing==0 ) {
newline();
}
break;
}
case '\\':
{
match('\\');
match('\n');
if ( inputState.guessing==0 ) {
newline();
}
break;
}
default:
{
throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
}
}
}
}
else if ((_tokenSet_6.member(LA(1)))) {
{
match(_tokenSet_6);
}
}
else {
break _loop3359;
}
} while (true);
}
match('"');
if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
_token = makeToken(_ttype);
_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
}
_returnToken = _token;
}
protected final void mID(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
int _ttype; Token _token=null; int _begin=text.length();
_ttype = ID;
int _saveIndex;
{
switch ( LA(1)) {
case 'a': case 'b': case 'c': case 'd':
case 'e': case 'f': case 'g': case 'h':
case 'i': case 'j': case 'k': case 'l':
case 'm': case 'n': case 'o': case 'p':
case 'q': case 'r': case 's': case 't':
case 'u': case 'v': case 'w': case 'x':
case 'y': case 'z':
{
matchRange('a','z');
break;
}
case 'A': case 'B': case 'C': case 'D':
case 'E': case 'F': case 'G': case 'H':
case 'I': case 'J': case 'K': case 'L':
case 'M': case 'N': case 'O': case 'P':
case 'Q': case 'R': case 'S': case 'T':
case 'U': case 'V': case 'W': case 'X':
case 'Y': case 'Z':
{
matchRange('A','Z');
break;
}
case '_':
{
match('_');
break;
}
case '$':
{
match('$');
break;
}
default:
{
throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
}
}
}
{
_loop3349:
do {
if (((LA(1) >= 'a' && LA(1) <= 'z')) && (true) && (true)) {
matchRange('a','z');
}
else if (((LA(1) >= 'A' && LA(1) <= 'Z')) && (true) && (true)) {
matchRange('A','Z');
}
else if ((LA(1)=='_') && (true) && (true)) {
match('_');
}
else if ((LA(1)=='$') && (true) && (true)) {
match('$');
}
else if (((LA(1) >= '0' && LA(1) <= '9')) && (true) && (true)) {
matchRange('0','9');
}
else {
break _loop3349;
}
} while (true);
}
_ttype = testLiteralsTable(new String(text.getBuffer(),_begin,text.length()-_begin),_ttype);
if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
_token = makeToken(_ttype);
_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
}
_returnToken = _token;
}
public final void mBACKPTR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
int _ttype; Token _token=null; int _begin=text.length();
_ttype = BACKPTR;
int _saveIndex;
match("<-");
if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
_token = makeToken(_ttype);
_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
}
_returnToken = _token;
}
public final void mComment(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
int _ttype; Token _token=null; int _begin=text.length();
_ttype = Comment;
int _saveIndex;
if (!( LA(3) != '*' ))
throw new SemanticException(" LA(3) != '*' ");
{
match("/*");
{
_loop3287:
do {
if (((LA(1)=='*') && ((LA(2) >= '\u0000' && LA(2) <= '\u00ff')) && ((LA(3) >= '\u0000' && LA(3) <= '\u00ff')))&&( LA(2) != '/' )) {
match('*');
}
else if ((LA(1)=='\r') && (LA(2)=='\n') && ((LA(3) >= '\u0000' && LA(3) <= '\u00ff'))) {
match("\r\n");
if ( inputState.guessing==0 ) {
deferredNewline();
}
}
else if ((LA(1)=='\n'||LA(1)=='\r') && ((LA(2) >= '\u0000' && LA(2) <= '\u00ff')) && ((LA(3) >= '\u0000' && LA(3) <= '\u00ff'))) {
{
switch ( LA(1)) {
case '\r':
{
match('\r');
break;
}
case '\n':
{
match('\n');
break;
}
default:
{
throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
}
}
}
if ( inputState.guessing==0 ) {
deferredNewline();
}
}
else if ((_tokenSet_7.member(LA(1)))) {
{
match(_tokenSet_7);
}
}
else {
break _loop3287;
}
} while (true);
}
match("*/");
if ( inputState.guessing==0 ) {
_ttype = Token.SKIP;
}
}
if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
_token = makeToken(_ttype);
_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
}
_returnToken = _token;
}
public final void mTinyDoc(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
int _ttype; Token _token=null; int _begin=text.length();
_ttype = TinyDoc;
int _saveIndex;
match("/**");
if ( inputState.guessing==0 ) {
// System.out.println("LEXER: found start of TinyDoc comment");
}
{
_loop3292:
do {
if (((LA(1)=='*') && ((LA(2) >= '\u0000' && LA(2) <= '\u00ff')) && ((LA(3) >= '\u0000' && LA(3) <= '\u00ff')))&&( LA(2) != '/' )) {
match('*');
}
else if ((LA(1)=='\r') && (LA(2)=='\n') && ((LA(3) >= '\u0000' && LA(3) <= '\u00ff'))) {
match("\r\n");
if ( inputState.guessing==0 ) {
deferredNewline();
}
}
else if ((LA(1)=='\n'||LA(1)=='\r') && ((LA(2) >= '\u0000' && LA(2) <= '\u00ff')) && ((LA(3) >= '\u0000' && LA(3) <= '\u00ff'))) {
{
switch ( LA(1)) {
case '\r':
{
match('\r');
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?