Mercurial > hg > Applications > Grep
comparison regexParser/regexParser.h @ 187:ef798db705e9 pairPro
remove some warnings and errors(not working)
author | Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 24 Dec 2015 22:38:50 +0900 |
parents | 3e8aae8beba9 |
children | 109d22faf7b5 |
comparison
equal
deleted
inserted
replaced
186:3e8aae8beba9 | 187:ef798db705e9 |
---|---|
4 #define SYNTAX_NODENUMBER 100 | 4 #define SYNTAX_NODENUMBER 100 |
5 | 5 |
6 typedef struct bitVector { | 6 typedef struct bitVector { |
7 unsigned long bitContainer; | 7 unsigned long bitContainer; |
8 }BitVector,*BitVectorPtr; | 8 }BitVector,*BitVectorPtr; |
9 | |
10 typedef struct stateStack { | |
11 BitVector state; | |
12 struct stateStack *next; | |
13 } StateStack, *StateStackPtr; | |
14 | |
15 typedef struct transitionGenerator { | |
16 long stateMax; | |
17 StateStack stack; | |
18 StatePtr state; | |
19 StatePtr stateArray; | |
20 StatePtr currentState; | |
21 } TransitionGenerator, *TransitionGeneratorPtr; | |
22 | |
23 typedef struct tgValue { | |
24 bool asterisk; | |
25 int stateBegin; | |
26 int stateEnd; | |
27 TransitionGeneratorPtr tg; | |
28 } TGValue, *TGValuePtr; | |
29 | |
30 enum charClassStackState { | |
31 LEFT, | |
32 SELF, | |
33 RIGHT | |
34 }; | |
35 | |
36 typedef struct charClassStack { | |
37 charClassStackState turn; | |
38 CharClassPtr cc; | |
39 struct charClassStack *next; | |
40 } CharClassStack, *CharClassStackPtr; | |
41 | |
42 typedef struct charClassWalker { | |
43 CharClassStackPtr stack; | |
44 CharClassPtr next; | |
45 } CharClassWalker, *CharClassWalkerPtr; | |
46 | 9 |
47 typedef struct word { | 10 typedef struct word { |
48 unsigned char *word; | 11 unsigned char *word; |
49 int length; | 12 int length; |
50 } Word, *WordPtr; | 13 } Word, *WordPtr; |
68 BitVector nextState; | 31 BitVector nextState; |
69 } CharClass, *CharClassPtr; | 32 } CharClass, *CharClassPtr; |
70 | 33 |
71 typedef struct node { | 34 typedef struct node { |
72 unsigned char tokenType; | 35 unsigned char tokenType; |
73 unsigned long nodeNumber; | |
74 CharClassPtr cc; | 36 CharClassPtr cc; |
75 int stateNum; | 37 int stateNum; |
76 int nextStateNum; | 38 int nextStateNum; |
39 typedef struct state { | |
40 BitVector bitState; | |
41 CharClassPtr cc; | |
42 struct node *node; | |
43 struct state *next; | |
44 } State, *StatePtr; | |
77 StatePtr state; | 45 StatePtr state; |
78 struct node *left; | 46 struct node *left; |
79 struct node *right; | 47 struct node *right; |
80 } Node, *NodePtr; | 48 } Node, *NodePtr; |
81 | 49 |
82 typedef struct state { | 50 typedef struct stateStack { |
83 BitVector bitState; | 51 BitVector state; |
52 struct stateStack *next; | |
53 } StateStack, *StateStackPtr; | |
54 | |
55 typedef struct transitionGenerator { | |
56 long stateMax; | |
57 StateStackPtr stack; | |
58 node::StatePtr state; | |
59 node::StatePtr stateArray; | |
60 node::StatePtr currentState; | |
61 } TransitionGenerator, *TransitionGeneratorPtr; | |
62 | |
63 typedef struct tgValue { | |
64 bool asterisk; | |
65 int stateNum; | |
66 int stateBegin; | |
67 int stateEnd; | |
68 node::StatePtr tgState; | |
69 TransitionGeneratorPtr tg; | |
70 } TGValue, *TGValuePtr; | |
71 | |
72 enum charClassStackState { | |
73 LEFT, | |
74 SELF, | |
75 RIGHT | |
76 }; | |
77 | |
78 typedef struct charClassStack { | |
79 charClassStackState turn; | |
84 CharClassPtr cc; | 80 CharClassPtr cc; |
85 NodePtr node; | 81 struct charClassStack *next; |
86 struct state *next; | 82 } CharClassStack, *CharClassStackPtr; |
87 } State, *StatePtr; | 83 |
84 typedef struct charClassWalker { | |
85 CharClassStackPtr stack; | |
86 CharClassPtr next; | |
87 } CharClassWalker, *CharClassWalkerPtr; | |
88 | |
88 | 89 |
89 typedef struct regexInfo { | 90 typedef struct regexInfo { |
90 unsigned char *ptr; | 91 unsigned char *ptr; |
91 unsigned char tokenType; | 92 unsigned char tokenType; |
92 unsigned char *tokenValue; | 93 unsigned char *tokenValue; |
93 int stateNumber; | 94 int stateNumber; |
94 } RegexInfo, *RegexInfoPtr; | 95 } RegexInfo, *RegexInfoPtr; |
95 | 96 |
97 NodePtr createNode(RegexInfoPtr ri,unsigned char type,CharClassPtr cc, NodePtr left, NodePtr right); | |
96 CharClassPtr createCharClassRange(unsigned long begin, unsigned long end, CharClassPtr left, CharClassPtr right); | 98 CharClassPtr createCharClassRange(unsigned long begin, unsigned long end, CharClassPtr left, CharClassPtr right); |