1 #ifndef VHDLPARSERTOKENMANAGER_H
2 #define VHDLPARSERTOKENMANAGER_H
4 #include "CharStream.h"
6 #include "ErrorHandler.h"
7 #include "TokenManager.h"
8 #include "VhdlParserConstants.h"
9 #include "VhdlParser.h"
16 class VhdlParserTokenManager : public TokenManager {
21 /** Set debug output. */
23 void setDebugStream(FILE *ds);
25 int jjStopAtPos(int pos, int kind);
27 int jjMoveStringLiteralDfa0_0();
29 int jjMoveStringLiteralDfa1_0(unsigned long long active0, unsigned long long active1, unsigned long long active2);
31 int jjMoveStringLiteralDfa2_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1, unsigned long long old2, unsigned long long active2);
33 int jjMoveStringLiteralDfa3_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1, unsigned long long old2, unsigned long long active2);
35 int jjMoveStringLiteralDfa4_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
37 int jjMoveStringLiteralDfa5_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
39 int jjMoveStringLiteralDfa6_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
41 int jjMoveStringLiteralDfa7_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
43 int jjMoveStringLiteralDfa8_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
45 int jjMoveStringLiteralDfa9_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
47 int jjMoveStringLiteralDfa10_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
49 int jjMoveStringLiteralDfa11_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
51 int jjMoveStringLiteralDfa12_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
53 int jjMoveStringLiteralDfa13_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
55 int jjMoveStringLiteralDfa14_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
57 int jjMoveStringLiteralDfa15_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
59 int jjMoveStringLiteralDfa16_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
61 int jjMoveStringLiteralDfa17_0(unsigned long long old1, unsigned long long active1);
63 int jjMoveNfa_0(int startState, int curPos);
65 bool jjCanMove_0(int hiByte, int i1, int i2, unsigned long long l1, unsigned long long l2);
67 bool jjCanMove_1(int hiByte, int i1, int i2, unsigned long long l1, unsigned long long l2);
69 Token * jjFillToken();
71 public: int curLexState;
72 public: int jjnewStateCnt;
74 public: int jjmatchedPos;
75 public: int jjmatchedKind;
78 Token * getNextToken();
80 void SkipLexicalActions(Token *matchedToken);
82 void TokenLexicalActions(Token *matchedToken);
83 #define jjCheckNAdd(state)\
85 if (jjrounds[state] != jjround)\
87 jjstateSet[jjnewStateCnt++] = state;\
88 jjrounds[state] = jjround;\
91 #define jjAddStates(start, end)\
93 for (int x = start; x <= end; x++) {\
94 jjstateSet[jjnewStateCnt++] = jjnextStates[x];\
95 } /*while (start++ != end);*/\
97 #define jjCheckNAddTwoStates(state1, state2)\
100 jjCheckNAdd(state2);\
103 #define jjCheckNAddStates(start, end)\
105 for (int x = start; x <= end; x++) {\
106 jjCheckNAdd(jjnextStates[x]);\
107 } /*while (start++ != end);*/\
110 #ifndef JAVACC_CHARSTREAM
111 #define JAVACC_CHARSTREAM CharStream
113 private: VhdlParser*parser;
114 private: void ReInitRounds();
115 public: VhdlParserTokenManager(JAVACC_CHARSTREAM *stream, int lexState = 0, VhdlParser *parserArg = NULL);
116 public: virtual ~VhdlParserTokenManager();
117 void ReInit(JAVACC_CHARSTREAM *stream, int lexState = 0, VhdlParser *parserArg = NULL);
118 void SwitchTo(int lexState);
119 const JAVACC_SIMPLE_STRING jjKindsForBitVector(int i, unsigned long long vec);
120 const JAVACC_SIMPLE_STRING jjKindsForStateVector(int lexState, int vec[], int start, int end);
121 JAVACC_CHARSTREAM *input_stream;
123 int jjstateSet[2 * 75];
124 JAVACC_STRING_TYPE jjimage;
125 JAVACC_STRING_TYPE image;
128 JAVACC_CHAR_TYPE curChar;
129 TokenManagerErrorHandler *errorHandler;
130 bool errorHandlerCreated;
131 public: void setErrorHandler(TokenManagerErrorHandler *eh) {
132 if (errorHandlerCreated && errorHandler != NULL) delete errorHandler;
134 errorHandlerCreated = false;