/* Generated By:JavaCC: Do not edit this line. GeneratedFormulaParserTokenManager.java */ package org.pentaho.reporting.libraries.formula.parser; public class GeneratedFormulaParserTokenManager implements GeneratedFormulaParserConstants { public java.io.PrintStream debugStream = System.out; public void setDebugStream( java.io.PrintStream ds ) { debugStream = ds; } private final int jjStopAtPos( int pos, int kind ) { jjmatchedKind = kind; jjmatchedPos = pos; return pos + 1; } private final int jjMoveStringLiteralDfa0_0() { switch( curChar ) { case 37: jjmatchedKind = 39; return jjMoveNfa_0( 0, 0 ); case 38: jjmatchedKind = 38; return jjMoveNfa_0( 0, 0 ); case 40: jjmatchedKind = 19; return jjMoveNfa_0( 0, 0 ); case 41: jjmatchedKind = 20; return jjMoveNfa_0( 0, 0 ); case 42: jjmatchedKind = 29; return jjMoveNfa_0( 0, 0 ); case 43: jjmatchedKind = 27; return jjMoveNfa_0( 0, 0 ); case 44: jjmatchedKind = 13; return jjMoveNfa_0( 0, 0 ); case 45: jjmatchedKind = 28; return jjMoveNfa_0( 0, 0 ); case 47: jjmatchedKind = 30; return jjMoveNfa_0( 0, 0 ); case 59: jjmatchedKind = 18; return jjMoveNfa_0( 0, 0 ); case 60: jjmatchedKind = 36; return jjMoveStringLiteralDfa1_0( 0x600000000L ); case 61: jjmatchedKind = 32; return jjMoveNfa_0( 0, 0 ); case 62: jjmatchedKind = 37; return jjMoveStringLiteralDfa1_0( 0x800000000L ); case 63: jjmatchedKind = 23; return jjMoveNfa_0( 0, 0 ); case 78: return jjMoveStringLiteralDfa1_0( 0x1000000000000L ); case 91: jjmatchedKind = 21; return jjMoveNfa_0( 0, 0 ); case 93: jjmatchedKind = 22; return jjMoveNfa_0( 0, 0 ); case 94: jjmatchedKind = 31; return jjMoveNfa_0( 0, 0 ); case 110: return jjMoveStringLiteralDfa1_0( 0x1000000000000L ); case 123: jjmatchedKind = 24; return jjMoveNfa_0( 0, 0 ); case 124: jjmatchedKind = 26; return jjMoveNfa_0( 0, 0 ); case 125: jjmatchedKind = 25; return jjMoveNfa_0( 0, 0 ); default: return jjMoveNfa_0( 0, 0 ); } } private final int jjMoveStringLiteralDfa1_0( long active0 ) { try { curChar = input_stream.readChar(); } catch ( java.io.IOException e ) { return jjMoveNfa_0( 0, 0 ); } switch( curChar ) { case 61: if ( ( active0 & 0x400000000L ) != 0L ) { jjmatchedKind = 34; jjmatchedPos = 1; } else if ( ( active0 & 0x800000000L ) != 0L ) { jjmatchedKind = 35; jjmatchedPos = 1; } break; case 62: if ( ( active0 & 0x200000000L ) != 0L ) { jjmatchedKind = 33; jjmatchedPos = 1; } break; case 85: return jjMoveStringLiteralDfa2_0( active0, 0x1000000000000L ); case 117: return jjMoveStringLiteralDfa2_0( active0, 0x1000000000000L ); default: break; } return jjMoveNfa_0( 0, 1 ); } private final int jjMoveStringLiteralDfa2_0( long old0, long active0 ) { if ( ( ( active0 &= old0 ) ) == 0L ) { return jjMoveNfa_0( 0, 1 ); } try { curChar = input_stream.readChar(); } catch ( java.io.IOException e ) { return jjMoveNfa_0( 0, 1 ); } switch( curChar ) { case 76: return jjMoveStringLiteralDfa3_0( active0, 0x1000000000000L ); case 108: return jjMoveStringLiteralDfa3_0( active0, 0x1000000000000L ); default: break; } return jjMoveNfa_0( 0, 2 ); } private final int jjMoveStringLiteralDfa3_0( long old0, long active0 ) { if ( ( ( active0 &= old0 ) ) == 0L ) { return jjMoveNfa_0( 0, 2 ); } try { curChar = input_stream.readChar(); } catch ( java.io.IOException e ) { return jjMoveNfa_0( 0, 2 ); } switch( curChar ) { case 76: if ( ( active0 & 0x1000000000000L ) != 0L ) { jjmatchedKind = 48; jjmatchedPos = 3; } break; case 108: if ( ( active0 & 0x1000000000000L ) != 0L ) { jjmatchedKind = 48; jjmatchedPos = 3; } break; default: break; } return jjMoveNfa_0( 0, 3 ); } 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 = { 0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL }; static final long[] jjbitVec2 = { 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL }; private final int jjMoveNfa_0( int startState, int curPos ) { int strKind = jjmatchedKind; int strPos = jjmatchedPos; int seenUpto; input_stream.backup( seenUpto = curPos + 1 ); try { curChar = input_stream.readChar(); } catch ( java.io.IOException e ) { throw new Error( "Internal Error" ); } curPos = 0; int[] nextStates; int startsAt = 0; jjnewStateCnt = 38; 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 0: if ( ( 0x1ffffffffL & l ) != 0L ) { if ( kind > 1 ) { kind = 1; } } else if ( ( 0x3ff000000000000L & l ) != 0L ) { if ( kind > 8 ) { kind = 8; } jjCheckNAddStates( 0, 5 ); } else if ( curChar == 46 ) { jjCheckNAddTwoStates( 17, 21 ); } else if ( curChar == 34 ) { jjCheckNAddStates( 6, 8 ); } else if ( curChar == 36 ) { if ( kind > 40 ) { kind = 40; } jjCheckNAddTwoStates( 8, 9 ); } else if ( curChar == 45 ) { jjstateSet[ jjnewStateCnt++ ] = 1; } break; case 1: if ( curChar == 45 ) { jjCheckNAddStates( 9, 11 ); } break; case 2: if ( ( 0xffffffffffffdbffL & l ) != 0L ) { jjCheckNAddStates( 9, 11 ); } break; case 3: if ( ( 0x2400L & l ) != 0L && kind > 2 ) { kind = 2; } break; case 4: if ( curChar == 10 && kind > 2 ) { kind = 2; } break; case 5: if ( curChar == 13 ) { jjstateSet[ jjnewStateCnt++ ] = 4; } break; case 6: if ( curChar == 45 ) { jjstateSet[ jjnewStateCnt++ ] = 1; } break; case 7: if ( curChar != 36 ) { break; } if ( kind > 40 ) { kind = 40; } jjCheckNAddTwoStates( 8, 9 ); break; case 8: if ( ( 0x3ff001000000000L & l ) == 0L ) { break; } if ( kind > 40 ) { kind = 40; } jjCheckNAddTwoStates( 8, 9 ); break; case 9: if ( curChar != 46 ) { break; } if ( kind > 40 ) { kind = 40; } jjCheckNAdd( 10 ); break; case 10: if ( ( 0x3ff001000000000L & l ) == 0L ) { break; } if ( kind > 40 ) { kind = 40; } jjCheckNAdd( 10 ); break; case 11: case 12: if ( curChar == 34 ) { jjCheckNAddStates( 6, 8 ); } break; case 13: if ( curChar == 34 ) { jjstateSet[ jjnewStateCnt++ ] = 12; } break; case 14: if ( ( 0xfffffffbffffffffL & l ) != 0L ) { jjCheckNAddStates( 6, 8 ); } break; case 15: if ( curChar == 34 && kind > 42 ) { kind = 42; } break; case 16: if ( curChar == 46 ) { jjCheckNAddTwoStates( 17, 21 ); } break; case 17: if ( ( 0x3ff000000000000L & l ) != 0L ) { jjCheckNAddTwoStates( 17, 18 ); } break; case 19: if ( ( 0x280000000000L & l ) != 0L ) { jjCheckNAdd( 20 ); } break; case 20: if ( ( 0x3ff000000000000L & l ) == 0L ) { break; } if ( kind > 43 ) { kind = 43; } jjCheckNAdd( 20 ); break; case 21: if ( ( 0x3ff000000000000L & l ) == 0L ) { break; } if ( kind > 43 ) { kind = 43; } jjCheckNAdd( 21 ); break; case 23: if ( ( 0xfffffcffffffffffL & l ) != 0L ) { jjCheckNAddTwoStates( 23, 24 ); } break; case 25: case 26: if ( curChar == 34 ) { jjCheckNAddStates( 12, 14 ); } break; case 27: if ( curChar == 34 ) { jjstateSet[ jjnewStateCnt++ ] = 26; } break; case 28: if ( ( 0xfffffffbffffffffL & l ) != 0L ) { jjCheckNAddStates( 12, 14 ); } break; case 29: if ( curChar == 34 ) { jjCheckNAdd( 24 ); } break; case 30: if ( ( 0x3ff000000000000L & l ) == 0L ) { break; } if ( kind > 8 ) { kind = 8; } jjCheckNAddStates( 0, 5 ); break; case 31: if ( ( 0x3ff000000000000L & l ) == 0L ) { break; } if ( kind > 8 ) { kind = 8; } jjCheckNAdd( 31 ); break; case 32: if ( ( 0x3ff000000000000L & l ) != 0L ) { jjCheckNAddStates( 15, 17 ); } break; case 33: if ( curChar == 46 ) { jjCheckNAdd( 34 ); } break; case 34: if ( ( 0x3ff000000000000L & l ) != 0L ) { jjCheckNAddTwoStates( 34, 18 ); } break; case 35: if ( ( 0x3ff000000000000L & l ) == 0L ) { break; } if ( kind > 43 ) { kind = 43; } jjCheckNAddTwoStates( 35, 36 ); break; case 36: if ( curChar == 46 ) { jjCheckNAdd( 37 ); } break; case 37: if ( ( 0x3ff000000000000L & l ) == 0L ) { break; } if ( kind > 43 ) { kind = 43; } jjCheckNAdd( 37 ); break; default: break; } } while ( i != startsAt ); } else if ( curChar < 128 ) { long l = 1L << ( curChar & 077 ); MatchLoop: do { switch( jjstateSet[ --i ] ) { case 0: if ( ( 0x7fffffe87fffffeL & l ) != 0L ) { if ( kind > 40 ) { kind = 40; } jjCheckNAddTwoStates( 8, 9 ); } else if ( curChar == 91 ) { jjCheckNAddStates( 18, 20 ); } break; case 2: jjAddStates( 9, 11 ); break; case 7: case 8: if ( ( 0x7fffffe87fffffeL & l ) == 0L ) { break; } if ( kind > 40 ) { kind = 40; } jjCheckNAddTwoStates( 8, 9 ); break; case 10: if ( ( 0x7fffffe87fffffeL & l ) == 0L ) { break; } if ( kind > 40 ) { kind = 40; } jjstateSet[ jjnewStateCnt++ ] = 10; break; case 14: jjAddStates( 6, 8 ); break; case 18: if ( ( 0x2000000020L & l ) != 0L ) { jjAddStates( 21, 22 ); } break; case 22: if ( curChar == 91 ) { jjCheckNAddStates( 18, 20 ); } break; case 23: if ( ( 0xffffffffdfffffffL & l ) != 0L ) { jjCheckNAddTwoStates( 23, 24 ); } break; case 24: if ( curChar == 93 && kind > 41 ) { kind = 41; } break; case 28: jjAddStates( 12, 14 ); 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 2: if ( jjCanMove_0( hiByte, i1, i2, l1, l2 ) ) { jjAddStates( 9, 11 ); } break; case 14: if ( jjCanMove_0( hiByte, i1, i2, l1, l2 ) ) { jjAddStates( 6, 8 ); } break; case 23: if ( jjCanMove_0( hiByte, i1, i2, l1, l2 ) ) { jjAddStates( 23, 24 ); } break; case 28: if ( jjCanMove_0( hiByte, i1, i2, l1, l2 ) ) { jjAddStates( 12, 14 ); } break; default: break; } } while ( i != startsAt ); } if ( kind != 0x7fffffff ) { jjmatchedKind = kind; jjmatchedPos = curPos; kind = 0x7fffffff; } ++curPos; if ( ( i = jjnewStateCnt ) == ( startsAt = 38 - ( jjnewStateCnt = startsAt ) ) ) { break; } try { curChar = input_stream.readChar(); } catch ( java.io.IOException e ) { break; } } if ( jjmatchedPos > strPos ) { return curPos; } int toRet = Math.max( curPos, seenUpto ); if ( curPos < toRet ) { for ( i = toRet - Math.min( curPos, seenUpto ); i-- > 0; ) { try { curChar = input_stream.readChar(); } catch ( java.io.IOException e ) { throw new Error( "Internal Error : Please send a bug report." ); } } } if ( jjmatchedPos < strPos ) { jjmatchedKind = strKind; jjmatchedPos = strPos; } else if ( jjmatchedPos == strPos && jjmatchedKind > strKind ) { jjmatchedKind = strKind; } return toRet; } static final int[] jjnextStates = { 31, 32, 33, 18, 35, 36, 13, 14, 15, 2, 3, 5, 27, 28, 29, 32, 33, 18, 23, 24, 25, 19, 20, 23, 24, }; private static final boolean jjCanMove_0( int hiByte, int i1, int i2, long l1, long l2 ) { switch( hiByte ) { case 0: return ( ( jjbitVec2[ i2 ] & l2 ) != 0L ); default: if ( ( jjbitVec0[ i1 ] & l1 ) != 0L ) { return true; } return false; } } public static final String[] jjstrLiteralImages = { "", null, null, null, null, null, null, null, null, null, null, null, null, "\54", null, null, null, null, "\73", "\50", "\51", "\133", "\135", "\77", "\173", "\175", "\174", "\53", "\55", "\52", "\57", "\136", "\75", "\74\76", "\74\75", "\76\75", "\74", "\76", "\46", "\45", null, null, null, null, null, null, null, null, null, }; public static final String[] lexStateNames = { "DEFAULT", }; static final long[] jjtoToken = { 0x10ffffffc2101L, }; static final long[] jjtoSkip = { 0x6L, }; protected JavaCharStream input_stream; private final int[] jjrounds = new int[ 38 ]; private final int[] jjstateSet = new int[ 76 ]; protected char curChar; public GeneratedFormulaParserTokenManager( JavaCharStream stream ) { if ( JavaCharStream.staticFlag ) { throw new Error( "ERROR: Cannot use a static CharStream class with a non-static lexical analyzer." ); } input_stream = stream; } public GeneratedFormulaParserTokenManager( JavaCharStream stream, int lexState ) { this( stream ); SwitchTo( lexState ); } public void ReInit( JavaCharStream stream ) { jjmatchedPos = jjnewStateCnt = 0; curLexState = defaultLexState; input_stream = stream; ReInitRounds(); } private final void ReInitRounds() { int i; jjround = 0x80000001; for ( i = 38; i-- > 0; ) { jjrounds[ i ] = 0x80000000; } } public void ReInit( JavaCharStream 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; } 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 ); } } }