Imported Upstream version 1.8.8
[platform/upstream/doxygen.git] / vhdlparser / VhdlParserTokenManager.h
1 #ifndef VHDLPARSERTOKENMANAGER_H
2 #define VHDLPARSERTOKENMANAGER_H
3 #include "JavaCC.h"
4 #include "CharStream.h"
5 #include "Token.h"
6 #include "ErrorHandler.h"
7 #include "TokenManager.h"
8 #include "VhdlParserConstants.h"
9 #include "VhdlParser.h"
10
11 namespace vhdl {
12 namespace parser {
13 class VhdlParser;
14
15 /** Token Manager. */
16 class VhdlParserTokenManager : public TokenManager {
17    public:
18
19   /** Debug output. */
20   FILE *debugStream;
21   /** Set debug output. */
22
23 void  setDebugStream(FILE *ds);
24
25  int  jjStopAtPos(int pos, int kind);
26
27  int  jjMoveStringLiteralDfa0_0();
28
29  int  jjMoveStringLiteralDfa1_0(unsigned long long active0, unsigned long long active1, unsigned long long active2);
30
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);
32
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);
34
35  int  jjMoveStringLiteralDfa4_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
36
37  int  jjMoveStringLiteralDfa5_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
38
39  int  jjMoveStringLiteralDfa6_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
40
41  int  jjMoveStringLiteralDfa7_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
42
43  int  jjMoveStringLiteralDfa8_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
44
45  int  jjMoveStringLiteralDfa9_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
46
47  int  jjMoveStringLiteralDfa10_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
48
49  int  jjMoveStringLiteralDfa11_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
50
51  int  jjMoveStringLiteralDfa12_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
52
53  int  jjMoveStringLiteralDfa13_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
54
55  int  jjMoveStringLiteralDfa14_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
56
57  int  jjMoveStringLiteralDfa15_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
58
59  int  jjMoveStringLiteralDfa16_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1);
60
61  int  jjMoveStringLiteralDfa17_0(unsigned long long old1, unsigned long long active1);
62
63 int jjMoveNfa_0(int startState, int curPos);
64
65 bool jjCanMove_0(int hiByte, int i1, int i2, unsigned long long l1, unsigned long long l2);
66
67 bool jjCanMove_1(int hiByte, int i1, int i2, unsigned long long l1, unsigned long long l2);
68
69 Token * jjFillToken();
70
71 public: int curLexState;
72 public: int jjnewStateCnt;
73 public: int jjround;
74 public: int jjmatchedPos;
75 public: int jjmatchedKind;
76
77
78 Token * getNextToken();
79
80 void  SkipLexicalActions(Token *matchedToken);
81
82 void  TokenLexicalActions(Token *matchedToken);
83 #define jjCheckNAdd(state)\
84 {\
85    if (jjrounds[state] != jjround)\
86    {\
87       jjstateSet[jjnewStateCnt++] = state;\
88       jjrounds[state] = jjround;\
89    }\
90 }
91 #define jjAddStates(start, end)\
92 {\
93    for (int x = start; x <= end; x++) {\
94       jjstateSet[jjnewStateCnt++] = jjnextStates[x];\
95    } /*while (start++ != end);*/\
96 }
97 #define jjCheckNAddTwoStates(state1, state2)\
98 {\
99    jjCheckNAdd(state1);\
100    jjCheckNAdd(state2);\
101 }
102
103 #define jjCheckNAddStates(start, end)\
104 {\
105    for (int x = start; x <= end; x++) {\
106       jjCheckNAdd(jjnextStates[x]);\
107    } /*while (start++ != end);*/\
108 }
109
110 #ifndef JAVACC_CHARSTREAM
111 #define JAVACC_CHARSTREAM CharStream
112 #endif
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;
122     int jjrounds[75];
123     int jjstateSet[2 * 75];
124     JAVACC_STRING_TYPE jjimage;
125     JAVACC_STRING_TYPE image;
126     int jjimageLen;
127     int lengthOfMatch;
128     JAVACC_CHAR_TYPE curChar;
129     TokenManagerErrorHandler *errorHandler;
130     bool errorHandlerCreated;
131     public: void setErrorHandler(TokenManagerErrorHandler *eh) {
132       if (errorHandlerCreated && errorHandler != NULL) delete errorHandler;
133       errorHandler = eh;
134       errorHandlerCreated = false;
135     }
136 };
137 }
138 }
139 #endif