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);