comparison regexParser/regexParser.h @ 190:3e8e5780ad4a pairPro

change node::State to State
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Fri, 25 Dec 2015 15:30:52 +0900
parents 109d22faf7b5
children 02031fb73af8
comparison
equal deleted inserted replaced
189:fccf7941ecc2 190:3e8e5780ad4a
30 struct charClass *right; 30 struct charClass *right;
31 Condition cond; 31 Condition cond;
32 BitVector nextState; 32 BitVector nextState;
33 } CharClass, *CharClassPtr; 33 } CharClass, *CharClassPtr;
34 34
35 struct node;
36
37 typedef struct state {
38 BitVector bitState;
39 CharClassPtr cc;
40 struct node *node;
41 struct state *next;
42 } State, *StatePtr;
43
35 typedef struct node { 44 typedef struct node {
36 unsigned char tokenType; 45 unsigned char tokenType;
37 CharClassPtr cc; 46 CharClassPtr cc;
38 int stateNum; 47 int stateNum;
39 int nextStateNum; 48 int nextStateNum;
40 typedef struct state {
41 BitVector bitState;
42 CharClassPtr cc;
43 struct node *node;
44 struct state *next;
45 } State, *StatePtr;
46 StatePtr state; 49 StatePtr state;
47 struct node *left; 50 struct node *left;
48 struct node *right; 51 struct node *right;
49 } Node, *NodePtr; 52 } Node, *NodePtr;
50 53
54 } StateStack, *StateStackPtr; 57 } StateStack, *StateStackPtr;
55 58
56 typedef struct transitionGenerator { 59 typedef struct transitionGenerator {
57 long stateMax; 60 long stateMax;
58 StateStackPtr stack; 61 StateStackPtr stack;
59 node::StatePtr state; 62 StatePtr state;
60 node::StatePtr stateArray; 63 StatePtr stateArray;
61 node::StatePtr currentState; 64 StatePtr currentState;
62 node::StatePtr startState; 65 StatePtr startState;
63 node::StatePtr endState; 66 StatePtr endState;
64 } TransitionGenerator, *TransitionGeneratorPtr; 67 } TransitionGenerator, *TransitionGeneratorPtr;
65 68
66 typedef struct tgValue { 69 typedef struct tgValue {
67 bool asterisk; 70 bool asterisk;
68 int stateNum; 71 int stateNum;
69 int stateBegin; 72 int stateBegin;
70 int stateEnd; 73 int stateEnd;
71 node::StatePtr tgState; 74 StatePtr tgState;
72 TransitionGeneratorPtr tg; 75 TransitionGeneratorPtr tg;
73 } TGValue, *TGValuePtr; 76 } TGValue, *TGValuePtr;
74 77
75 enum charClassStackState { 78 enum charClassStackState {
76 LEFT, 79 LEFT,
95 unsigned char tokenType; 98 unsigned char tokenType;
96 unsigned char *tokenValue; 99 unsigned char *tokenValue;
97 int stateNumber; 100 int stateNumber;
98 } RegexInfo, *RegexInfoPtr; 101 } RegexInfo, *RegexInfoPtr;
99 #endif 102 #endif
100 NodePtr createNode(RegexInfoPtr ri,unsigned char type,CharClassPtr cc, NodePtr left, NodePtr right); 103
104 extern NodePtr createNode(RegexInfoPtr ri,unsigned char type,CharClassPtr cc, NodePtr left, NodePtr right);
101 extern CharClassPtr createCharClassRange(unsigned long begin, unsigned long end,unsigned long state, CharClassPtr left, CharClassPtr right); 105 extern CharClassPtr createCharClassRange(unsigned long begin, unsigned long end,unsigned long state, CharClassPtr left, CharClassPtr right);
106 extern NodePtr regex(RegexInfoPtr);