javacc-7.0.1.test.tmp.java.JJTreeExamples.eg3.Eg3TokenManager Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of javacc Show documentation
Show all versions of javacc Show documentation
JavaCC is a parser/scanner generator for Java.
/* Eg3TokenManager.java */
/* Generated By:JJTree&JavaCC: Do not edit this line. Eg3TokenManager.java */
/** Token Manager. */
public class Eg3TokenManager implements Eg3Constants {
/** Debug output. */
public static java.io.PrintStream debugStream = System.out;
/** Set debug output. */
public static void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
private static final int jjStopStringLiteralDfa_0(int pos, long active0){
switch (pos)
{
default :
return -1;
}
}
private static final int jjStartNfa_0(int pos, long active0){
return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1);
}
static private int jjStopAtPos(int pos, int kind)
{
jjmatchedKind = kind;
jjmatchedPos = pos;
return pos + 1;
}
static private int jjMoveStringLiteralDfa0_0(){
switch(curChar)
{
case 37:
return jjStopAtPos(0, 19);
case 40:
return jjStopAtPos(0, 20);
case 41:
return jjStopAtPos(0, 21);
case 42:
return jjStopAtPos(0, 17);
case 43:
return jjStopAtPos(0, 15);
case 45:
return jjStopAtPos(0, 16);
case 47:
return jjStartNfaWithStates_0(0, 18, 10);
case 59:
return jjStopAtPos(0, 14);
default :
return jjMoveNfa_0(0, 0);
}
}
static private int jjStartNfaWithStates_0(int pos, int kind, int state)
{
jjmatchedKind = kind;
jjmatchedPos = pos;
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) { return pos + 1; }
return jjMoveNfa_0(state, pos + 1);
}
static final long[] jjbitVec0 = {
0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
};
static private int jjMoveNfa_0(int startState, int curPos)
{
int startsAt = 0;
jjnewStateCnt = 21;
int i = 1;
jjstateSet[0] = startState;
int kind = 0x7fffffff;
for (;;)
{
if (++jjround == 0x7fffffff)
ReInitRounds();
if (curChar < 64)
{
long l = 1L << curChar;
do
{
switch(jjstateSet[--i])
{
case 10:
if (curChar == 42)
{ jjCheckNAddTwoStates(16, 17); }
else if (curChar == 47)
{ jjCheckNAddStates(0, 2); }
break;
case 0:
if ((0x3fe000000000000L & l) != 0L)
{
if (kind > 7)
kind = 7;
{ jjCheckNAddTwoStates(1, 2); }
}
else if (curChar == 47)
{ jjAddStates(3, 4); }
else if (curChar == 48)
{
if (kind > 7)
kind = 7;
{ jjCheckNAddStates(5, 7); }
}
break;
case 1:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 7)
kind = 7;
{ jjCheckNAddTwoStates(1, 2); }
break;
case 4:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 11)
kind = 11;
jjstateSet[jjnewStateCnt++] = 4;
break;
case 5:
if (curChar != 48)
break;
if (kind > 7)
kind = 7;
{ jjCheckNAddStates(5, 7); }
break;
case 7:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 7)
kind = 7;
{ jjCheckNAddTwoStates(7, 2); }
break;
case 8:
if ((0xff000000000000L & l) == 0L)
break;
if (kind > 7)
kind = 7;
{ jjCheckNAddTwoStates(8, 2); }
break;
case 9:
if (curChar == 47)
{ jjAddStates(3, 4); }
break;
case 11:
if ((0xffffffffffffdbffL & l) != 0L)
{ jjCheckNAddStates(0, 2); }
break;
case 12:
if ((0x2400L & l) != 0L && kind > 5)
kind = 5;
break;
case 13:
if (curChar == 10 && kind > 5)
kind = 5;
break;
case 14:
if (curChar == 13)
jjstateSet[jjnewStateCnt++] = 13;
break;
case 15:
if (curChar == 42)
{ jjCheckNAddTwoStates(16, 17); }
break;
case 16:
if ((0xfffffbffffffffffL & l) != 0L)
{ jjCheckNAddTwoStates(16, 17); }
break;
case 17:
if (curChar == 42)
{ jjAddStates(8, 9); }
break;
case 18:
if ((0xffff7fffffffffffL & l) != 0L)
{ jjCheckNAddTwoStates(19, 17); }
break;
case 19:
if ((0xfffffbffffffffffL & l) != 0L)
{ jjCheckNAddTwoStates(19, 17); }
break;
case 20:
if (curChar == 47 && kind > 6)
kind = 6;
break;
default : break;
}
} while(i != startsAt);
}
else if (curChar < 128)
{
long l = 1L << (curChar & 077);
do
{
switch(jjstateSet[--i])
{
case 0:
case 4:
if ((0x7fffffe87fffffeL & l) == 0L)
break;
if (kind > 11)
kind = 11;
{ jjCheckNAdd(4); }
break;
case 2:
if ((0x100000001000L & l) != 0L && kind > 7)
kind = 7;
break;
case 6:
if ((0x100000001000000L & l) != 0L)
{ jjCheckNAdd(7); }
break;
case 7:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 7)
kind = 7;
{ jjCheckNAddTwoStates(7, 2); }
break;
case 11:
{ jjAddStates(0, 2); }
break;
case 16:
{ jjCheckNAddTwoStates(16, 17); }
break;
case 18:
case 19:
{ jjCheckNAddTwoStates(19, 17); }
break;
default : break;
}
} while(i != startsAt);
}
else
{
int i2 = (curChar & 0xff) >> 6;
long l2 = 1L << (curChar & 077);
do
{
switch(jjstateSet[--i])
{
case 11:
if ((jjbitVec0[i2] & l2) != 0L)
{ jjAddStates(0, 2); }
break;
case 16:
if ((jjbitVec0[i2] & l2) != 0L)
{ jjCheckNAddTwoStates(16, 17); }
break;
case 18:
case 19:
if ((jjbitVec0[i2] & l2) != 0L)
{ jjCheckNAddTwoStates(19, 17); }
break;
default : break;
}
} while(i != startsAt);
}
if (kind != 0x7fffffff)
{
jjmatchedKind = kind;
jjmatchedPos = curPos;
kind = 0x7fffffff;
}
++curPos;
if ((i = jjnewStateCnt) == (startsAt = 21 - (jjnewStateCnt = startsAt)))
return curPos;
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) { return curPos; }
}
}
/** Token literal values. */
public static final String[] jjstrLiteralImages = {
"", null, null, null, null, null, null, null, null, null, null, null, null,
null, "\73", "\53", "\55", "\52", "\57", "\45", "\50", "\51", };
static protected Token jjFillToken()
{
final Token t;
final String curTokenImage;
final int beginLine;
final int endLine;
final int beginColumn;
final int endColumn;
String im = jjstrLiteralImages[jjmatchedKind];
curTokenImage = (im == null) ? input_stream.GetImage() : im;
beginLine = input_stream.getBeginLine();
beginColumn = input_stream.getBeginColumn();
endLine = input_stream.getEndLine();
endColumn = input_stream.getEndColumn();
t = Token.newToken(jjmatchedKind);
t.kind = jjmatchedKind;
t.image = curTokenImage;
t.beginLine = beginLine;
t.endLine = endLine;
t.beginColumn = beginColumn;
t.endColumn = endColumn;
return t;
}
static final int[] jjnextStates = {
11, 12, 14, 10, 15, 6, 8, 2, 18, 20,
};
static int curLexState = 0;
static int defaultLexState = 0;
static int jjnewStateCnt;
static int jjround;
static int jjmatchedPos;
static int jjmatchedKind;
/** Get the next Token. */
public static Token getNextToken()
{
Token matchedToken;
int curPos = 0;
EOFLoop :
for (;;)
{
try
{
curChar = input_stream.BeginToken();
}
catch(Exception e)
{
jjmatchedKind = 0;
jjmatchedPos = -1;
matchedToken = jjFillToken();
return matchedToken;
}
try { input_stream.backup(0);
while (curChar <= 32 && (0x100002600L & (1L << curChar)) != 0L)
curChar = input_stream.BeginToken();
}
catch (java.io.IOException e1) { continue EOFLoop; }
jjmatchedKind = 0x7fffffff;
jjmatchedPos = 0;
curPos = jjMoveStringLiteralDfa0_0();
if (jjmatchedKind != 0x7fffffff)
{
if (jjmatchedPos + 1 < curPos)
input_stream.backup(curPos - jjmatchedPos - 1);
if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
{
matchedToken = jjFillToken();
return matchedToken;
}
else
{
continue EOFLoop;
}
}
int error_line = input_stream.getEndLine();
int error_column = input_stream.getEndColumn();
String error_after = null;
boolean EOFSeen = false;
try { input_stream.readChar(); input_stream.backup(1); }
catch (java.io.IOException e1) {
EOFSeen = true;
error_after = curPos <= 1 ? "" : input_stream.GetImage();
if (curChar == '\n' || curChar == '\r') {
error_line++;
error_column = 0;
}
else
error_column++;
}
if (!EOFSeen) {
input_stream.backup(1);
error_after = curPos <= 1 ? "" : input_stream.GetImage();
}
throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
}
}
static void SkipLexicalActions(Token matchedToken)
{
switch(jjmatchedKind)
{
default :
break;
}
}
static void MoreLexicalActions()
{
jjimageLen += (lengthOfMatch = jjmatchedPos + 1);
switch(jjmatchedKind)
{
default :
break;
}
}
static void TokenLexicalActions(Token matchedToken)
{
switch(jjmatchedKind)
{
default :
break;
}
}
static private void jjCheckNAdd(int state)
{
if (jjrounds[state] != jjround)
{
jjstateSet[jjnewStateCnt++] = state;
jjrounds[state] = jjround;
}
}
static private void jjAddStates(int start, int end)
{
do {
jjstateSet[jjnewStateCnt++] = jjnextStates[start];
} while (start++ != end);
}
static private void jjCheckNAddTwoStates(int state1, int state2)
{
jjCheckNAdd(state1);
jjCheckNAdd(state2);
}
static private void jjCheckNAddStates(int start, int end)
{
do {
jjCheckNAdd(jjnextStates[start]);
} while (start++ != end);
}
/** Constructor. */
public Eg3TokenManager(SimpleCharStream stream){
if (input_stream != null)
throw new TokenMgrError("ERROR: Second call to constructor of static lexer. You must use ReInit() to initialize the static variables.", TokenMgrError.STATIC_LEXER_ERROR);
input_stream = stream;
}
/** Constructor. */
public Eg3TokenManager (SimpleCharStream stream, int lexState){
ReInit(stream);
SwitchTo(lexState);
}
/** Reinitialise parser. */
static public void ReInit(SimpleCharStream stream)
{
jjmatchedPos =
jjnewStateCnt =
0;
curLexState = defaultLexState;
input_stream = stream;
ReInitRounds();
}
static private void ReInitRounds()
{
int i;
jjround = 0x80000001;
for (i = 21; i-- > 0;)
jjrounds[i] = 0x80000000;
}
/** Reinitialise parser. */
static public void ReInit(SimpleCharStream stream, int lexState)
{
ReInit(stream);
SwitchTo(lexState);
}
/** Switch to specified lex state. */
public static void SwitchTo(int lexState)
{
if (lexState >= 1 || lexState < 0)
throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
else
curLexState = lexState;
}
/** Lexer state names. */
public static final String[] lexStateNames = {
"DEFAULT",
};
/** Lex State array. */
public static final int[] jjnewLexState = {
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
};
static final long[] jjtoToken = {
0x3fc881L,
};
static final long[] jjtoSkip = {
0x7eL,
};
static final long[] jjtoSpecial = {
0x0L,
};
static final long[] jjtoMore = {
0x0L,
};
static protected SimpleCharStream input_stream;
static private final int[] jjrounds = new int[21];
static private final int[] jjstateSet = new int[2 * 21];
private static final StringBuilder jjimage = new StringBuilder();
private static StringBuilder image = jjimage;
private static int jjimageLen;
private static int lengthOfMatch;
static protected int curChar;
}