Mercurial > hg > Applications > Grep
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); |