
src.it.unimi.di.mg4j.query.parser.SimpleParserTokenManager Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mg4j Show documentation
Show all versions of mg4j Show documentation
MG4J (Managing Gigabytes for Java) is a free full-text search engine for large document collections written in Java.
/* Generated By:JavaCC: Do not edit this line. SimpleParserTokenManager.java */
package it.unimi.di.mg4j.query.parser;
import it.unimi.di.mg4j.index.*;
import it.unimi.di.mg4j.query.nodes.*;
import it.unimi.dsi.lang.*;
import it.unimi.dsi.fastutil.objects.*;
import it.unimi.dsi.fastutil.ints.*;
import java.util.*;
public class SimpleParserTokenManager implements SimpleParserConstants
{
public java.io.PrintStream debugStream = System.out;
public void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
private final int jjStopStringLiteralDfa_0(int pos, long active0)
{
switch (pos)
{
case 0:
if ((active0 & 0x100000000L) != 0L)
{
jjmatchedKind = 33;
return 26;
}
if ((active0 & 0x8000000L) != 0L)
return 20;
return -1;
default :
return -1;
}
}
private final int jjStartNfa_0(int pos, long active0)
{
return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1);
}
private final int jjStopAtPos(int pos, int kind)
{
jjmatchedKind = kind;
jjmatchedPos = pos;
return pos + 1;
}
private final 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);
}
private final int jjMoveStringLiteralDfa0_0()
{
switch(curChar)
{
case 34:
return jjStopAtPos(0, 21);
case 35:
return jjStartNfaWithStates_0(0, 27, 20);
case 36:
return jjStopAtPos(0, 31);
case 40:
return jjStopAtPos(0, 10);
case 41:
return jjStopAtPos(0, 11);
case 42:
return jjStopAtPos(0, 30);
case 43:
return jjStopAtPos(0, 25);
case 45:
jjmatchedKind = 26;
return jjMoveStringLiteralDfa1_0(0x40000L);
case 46:
return jjMoveStringLiteralDfa1_0(0x100000000L);
case 58:
return jjStopAtPos(0, 22);
case 59:
return jjStopAtPos(0, 23);
case 60:
return jjStopAtPos(0, 6);
case 91:
jjmatchedKind = 12;
return jjMoveStringLiteralDfa1_0(0x80000L);
case 93:
jjmatchedKind = 13;
return jjMoveStringLiteralDfa1_0(0x100000L);
case 94:
return jjStopAtPos(0, 9);
case 123:
jjmatchedKind = 14;
return jjMoveStringLiteralDfa1_0(0x10000L);
case 125:
jjmatchedKind = 15;
return jjMoveStringLiteralDfa1_0(0x20000L);
case 126:
return jjStopAtPos(0, 24);
default :
return jjMoveNfa_0(2, 0);
}
}
private final int jjMoveStringLiteralDfa1_0(long active0)
{
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(0, active0);
return 1;
}
switch(curChar)
{
case 46:
if ((active0 & 0x100000000L) != 0L)
return jjStartNfaWithStates_0(1, 32, 26);
break;
case 62:
if ((active0 & 0x40000L) != 0L)
return jjStopAtPos(1, 18);
break;
case 91:
if ((active0 & 0x80000L) != 0L)
return jjStopAtPos(1, 19);
break;
case 93:
if ((active0 & 0x100000L) != 0L)
return jjStopAtPos(1, 20);
break;
case 123:
if ((active0 & 0x10000L) != 0L)
return jjStopAtPos(1, 16);
break;
case 125:
if ((active0 & 0x20000L) != 0L)
return jjStopAtPos(1, 17);
break;
default :
break;
}
return jjStartNfa_0(0, active0);
}
private final void jjCheckNAdd(int state)
{
if (jjrounds[state] != jjround)
{
jjstateSet[jjnewStateCnt++] = state;
jjrounds[state] = jjround;
}
}
private final void jjAddStates(int start, int end)
{
do {
jjstateSet[jjnewStateCnt++] = jjnextStates[start];
} while (start++ != end);
}
private final void jjCheckNAddTwoStates(int state1, int state2)
{
jjCheckNAdd(state1);
jjCheckNAdd(state2);
}
private final void jjCheckNAddStates(int start, int end)
{
do {
jjCheckNAdd(jjnextStates[start]);
} while (start++ != end);
}
private final void jjCheckNAddStates(int start)
{
jjCheckNAdd(jjnextStates[start]);
jjCheckNAdd(jjnextStates[start + 1]);
}
static final long[] jjbitVec0 = {
0x8000000000L, 0x0L, 0x0L, 0x0L
};
static final long[] jjbitVec1 = {
0x10000000000L, 0x0L, 0x0L, 0x0L
};
static final long[] jjbitVec2 = {
0x0L, 0x0L, 0x1000000000L, 0x0L
};
static final long[] jjbitVec3 = {
0x0L, 0x0L, 0x2000000000L, 0x0L
};
static final long[] jjbitVec4 = {
0xfffffffbfffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
};
static final long[] jjbitVec6 = {
0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
};
static final long[] jjbitVec7 = {
0xfffffe7fffffffffL, 0xffffffffffffffffL, 0xffffffcfffffffffL, 0xffffffffffffffffL
};
static final long[] jjbitVec8 = {
0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
};
private final int jjMoveNfa_0(int startState, int curPos)
{
int[] nextStates;
int startsAt = 0;
jjnewStateCnt = 26;
int i = 1;
jjstateSet[0] = startState;
int j, kind = 0x7fffffff;
for (;;)
{
if (++jjround == 0x7fffffff)
ReInitRounds();
if (curChar < 64)
{
long l = 1L << curChar;
MatchLoop: do
{
switch(jjstateSet[--i])
{
case 26:
case 13:
if ((0xe3ffc0a000000000L & l) == 0L)
break;
if (kind > 33)
kind = 33;
jjCheckNAddTwoStates(13, 14);
break;
case 2:
if ((0xe3ffc0a000000000L & l) != 0L)
{
if (kind > 33)
kind = 33;
jjCheckNAddTwoStates(13, 14);
}
else if (curChar == 35)
jjAddStates(0, 1);
else if (curChar == 33)
{
if (kind > 8)
kind = 8;
}
else if (curChar == 38)
{
if (kind > 5)
kind = 5;
}
break;
case 3:
if (curChar == 38 && kind > 5)
kind = 5;
break;
case 10:
if (curChar == 33 && kind > 8)
kind = 8;
break;
case 15:
if ((0xffffffff00000000L & l) == 0L)
break;
if (kind > 33)
kind = 33;
jjCheckNAddTwoStates(13, 14);
break;
case 16:
if (curChar == 35)
jjAddStates(0, 1);
break;
default : break;
}
} while(i != startsAt);
}
else if (curChar < 128)
{
long l = 1L << (curChar & 077);
MatchLoop: do
{
switch(jjstateSet[--i])
{
case 20:
if (curChar == 70)
jjstateSet[jjnewStateCnt++] = 24;
else if (curChar == 84)
jjstateSet[jjnewStateCnt++] = 19;
break;
case 26:
if ((0x87ffffff87ffffffL & l) != 0L)
{
if (kind > 33)
kind = 33;
jjCheckNAddTwoStates(13, 14);
}
else if (curChar == 92)
jjstateSet[jjnewStateCnt++] = 15;
break;
case 2:
if ((0x87ffffff87ffffffL & l) != 0L)
{
if (kind > 33)
kind = 33;
jjCheckNAddTwoStates(13, 14);
}
else if (curChar == 92)
jjstateSet[jjnewStateCnt++] = 15;
else if (curChar == 124)
{
if (kind > 7)
kind = 7;
}
if (curChar == 78)
jjstateSet[jjnewStateCnt++] = 8;
else if (curChar == 79)
jjstateSet[jjnewStateCnt++] = 4;
else if (curChar == 65)
jjstateSet[jjnewStateCnt++] = 1;
break;
case 0:
if (curChar == 68 && kind > 5)
kind = 5;
break;
case 1:
if (curChar == 78)
jjstateSet[jjnewStateCnt++] = 0;
break;
case 4:
if (curChar == 82 && kind > 7)
kind = 7;
break;
case 5:
if (curChar == 79)
jjstateSet[jjnewStateCnt++] = 4;
break;
case 6:
if (curChar == 124 && kind > 7)
kind = 7;
break;
case 7:
if (curChar == 84 && kind > 8)
kind = 8;
break;
case 8:
if (curChar == 79)
jjstateSet[jjnewStateCnt++] = 7;
break;
case 9:
if (curChar == 78)
jjstateSet[jjnewStateCnt++] = 8;
break;
case 13:
if ((0x87ffffff87ffffffL & l) == 0L)
break;
if (kind > 33)
kind = 33;
jjCheckNAddTwoStates(13, 14);
break;
case 14:
if (curChar == 92)
jjstateSet[jjnewStateCnt++] = 15;
break;
case 15:
if (kind > 33)
kind = 33;
jjCheckNAddTwoStates(13, 14);
break;
case 17:
if (curChar == 69 && kind > 28)
kind = 28;
break;
case 18:
if (curChar == 85)
jjstateSet[jjnewStateCnt++] = 17;
break;
case 19:
if (curChar == 82)
jjstateSet[jjnewStateCnt++] = 18;
break;
case 21:
if (curChar == 69 && kind > 29)
kind = 29;
break;
case 22:
if (curChar == 83)
jjstateSet[jjnewStateCnt++] = 21;
break;
case 23:
if (curChar == 76)
jjstateSet[jjnewStateCnt++] = 22;
break;
case 24:
if (curChar == 65)
jjstateSet[jjnewStateCnt++] = 23;
break;
case 25:
if (curChar == 70)
jjstateSet[jjnewStateCnt++] = 24;
break;
default : break;
}
} while(i != startsAt);
}
else
{
int hiByte = (int)(curChar >> 8);
int i1 = hiByte >> 6;
long l1 = 1L << (hiByte & 077);
int i2 = (curChar & 0xff) >> 6;
long l2 = 1L << (curChar & 077);
MatchLoop: do
{
switch(jjstateSet[--i])
{
case 26:
case 13:
if (!jjCanMove_4(hiByte, i1, i2, l1, l2))
break;
if (kind > 33)
kind = 33;
jjCheckNAddTwoStates(13, 14);
break;
case 2:
if (jjCanMove_0(hiByte, i1, i2, l1, l2))
{
if (kind > 5)
kind = 5;
}
if (jjCanMove_1(hiByte, i1, i2, l1, l2))
{
if (kind > 7)
kind = 7;
}
if (jjCanMove_2(hiByte, i1, i2, l1, l2))
{
if (kind > 28)
kind = 28;
}
if (jjCanMove_3(hiByte, i1, i2, l1, l2))
{
if (kind > 29)
kind = 29;
}
if (jjCanMove_4(hiByte, i1, i2, l1, l2))
{
if (kind > 33)
kind = 33;
jjCheckNAddTwoStates(13, 14);
}
break;
case 3:
if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 5)
kind = 5;
break;
case 6:
if (jjCanMove_1(hiByte, i1, i2, l1, l2) && kind > 7)
kind = 7;
break;
case 11:
if (jjCanMove_2(hiByte, i1, i2, l1, l2) && kind > 28)
kind = 28;
break;
case 12:
if (jjCanMove_3(hiByte, i1, i2, l1, l2) && kind > 29)
kind = 29;
break;
case 15:
if (!jjCanMove_5(hiByte, i1, i2, l1, l2))
break;
if (kind > 33)
kind = 33;
jjCheckNAddTwoStates(13, 14);
break;
default : break;
}
} while(i != startsAt);
}
if (kind != 0x7fffffff)
{
jjmatchedKind = kind;
jjmatchedPos = curPos;
kind = 0x7fffffff;
}
++curPos;
if ((i = jjnewStateCnt) == (startsAt = 26 - (jjnewStateCnt = startsAt)))
return curPos;
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) { return curPos; }
}
}
static final int[] jjnextStates = {
20, 25,
};
private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2)
{
switch(hiByte)
{
case 34:
return ((jjbitVec0[i2] & l2) != 0L);
default :
return false;
}
}
private static final boolean jjCanMove_1(int hiByte, int i1, int i2, long l1, long l2)
{
switch(hiByte)
{
case 34:
return ((jjbitVec1[i2] & l2) != 0L);
default :
return false;
}
}
private static final boolean jjCanMove_2(int hiByte, int i1, int i2, long l1, long l2)
{
switch(hiByte)
{
case 34:
return ((jjbitVec2[i2] & l2) != 0L);
default :
return false;
}
}
private static final boolean jjCanMove_3(int hiByte, int i1, int i2, long l1, long l2)
{
switch(hiByte)
{
case 34:
return ((jjbitVec3[i2] & l2) != 0L);
default :
return false;
}
}
private static final boolean jjCanMove_4(int hiByte, int i1, int i2, long l1, long l2)
{
switch(hiByte)
{
case 0:
return ((jjbitVec6[i2] & l2) != 0L);
case 34:
return ((jjbitVec7[i2] & l2) != 0L);
default :
if ((jjbitVec4[i1] & l1) != 0L)
return true;
return false;
}
}
private static final boolean jjCanMove_5(int hiByte, int i1, int i2, long l1, long l2)
{
switch(hiByte)
{
case 0:
return ((jjbitVec6[i2] & l2) != 0L);
default :
if ((jjbitVec8[i1] & l1) != 0L)
return true;
return false;
}
}
public static final String[] jjstrLiteralImages = {
"", null, null, null, null, null, "\74", null, null, "\136", "\50", "\51",
"\133", "\135", "\173", "\175", "\173\173", "\175\175", "\55\76", "\133\133",
"\135\135", "\42", "\72", "\73", "\176", "\53", "\55", "\43", null, null, "\52", "\44",
"\56\56", null, };
public static final String[] lexStateNames = {
"DEFAULT",
};
static final long[] jjtoToken = {
0x3ffffffe1L,
};
static final long[] jjtoSkip = {
0x1eL,
};
protected SimpleCharStream input_stream;
private final int[] jjrounds = new int[26];
private final int[] jjstateSet = new int[52];
protected char curChar;
public SimpleParserTokenManager(SimpleCharStream stream){
if (SimpleCharStream.staticFlag)
throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
input_stream = stream;
}
public SimpleParserTokenManager(SimpleCharStream stream, int lexState){
this(stream);
SwitchTo(lexState);
}
public void ReInit(SimpleCharStream stream)
{
jjmatchedPos = jjnewStateCnt = 0;
curLexState = defaultLexState;
input_stream = stream;
ReInitRounds();
}
private final void ReInitRounds()
{
int i;
jjround = 0x80000001;
for (i = 26; i-- > 0;)
jjrounds[i] = 0x80000000;
}
public void ReInit(SimpleCharStream stream, int lexState)
{
ReInit(stream);
SwitchTo(lexState);
}
public 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;
}
protected Token jjFillToken()
{
Token t = Token.newToken(jjmatchedKind);
t.kind = jjmatchedKind;
String im = jjstrLiteralImages[jjmatchedKind];
t.image = (im == null) ? input_stream.GetImage() : im;
t.beginLine = input_stream.getBeginLine();
t.beginColumn = input_stream.getBeginColumn();
t.endLine = input_stream.getEndLine();
t.endColumn = input_stream.getEndColumn();
return t;
}
int curLexState = 0;
int defaultLexState = 0;
int jjnewStateCnt;
int jjround;
int jjmatchedPos;
int jjmatchedKind;
public Token getNextToken()
{
int kind;
Token specialToken = null;
Token matchedToken;
int curPos = 0;
EOFLoop :
for (;;)
{
try
{
curChar = input_stream.BeginToken();
}
catch(java.io.IOException e)
{
jjmatchedKind = 0;
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);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy