Mercurial > hg > Applications > Grep
comparison c/regexParser/main.cc @ 79:52da06c3f050
add printTree.cc & fix Makefile
author | Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 29 Sep 2015 18:36:31 +0900 |
parents | 7f53a587bf97 |
children | 0a452d69f0e2 |
comparison
equal
deleted
inserted
replaced
78:23a96fefa643 | 79:52da06c3f050 |
---|---|
12 #include "regexParser.h" | 12 #include "regexParser.h" |
13 | 13 |
14 unsigned char *ptr; | 14 unsigned char *ptr; |
15 unsigned char tokenType; | 15 unsigned char tokenType; |
16 int tokenValue; | 16 int tokenValue; |
17 NodePtr regexHeadNode; | |
18 | 17 |
19 NodePtr charClass(); | 18 NodePtr charClass(); |
20 NodePtr group(); | 19 NodePtr group(); |
21 NodePtr regex(); | 20 NodePtr regex(); |
22 NodePtr createNode(unsigned char,NodePtr,NodePtr); | 21 NodePtr createNode(unsigned char,NodePtr,NodePtr); |
23 void token(); | 22 void token(); |
24 NodePtr regexAtom(); | 23 NodePtr regexAtom(); |
24 extern void printTree(NodePtr); | |
25 | 25 |
26 | 26 |
27 bool isLiteral(char c) { | 27 bool isLiteral(char c) { |
28 if (*ptr > 0x7f) return true; | 28 if (*ptr > 0x7f) return true; |
29 else if (*ptr == '(') return false; | 29 else if (*ptr == '(') return false; |
158 n = createNode('+',n,n1); | 158 n = createNode('+',n,n1); |
159 } | 159 } |
160 } return n; | 160 } return n; |
161 } | 161 } |
162 | 162 |
163 void descendTree(NodePtr n) { | |
164 static int d = 0; | |
165 if (n->right != NULL) { | |
166 d++; | |
167 descendTree(n->right); | |
168 d--; | |
169 } | |
170 printf("%*c%c\n",d*4, ' ',n->Value.character); | |
171 if (n->left != NULL) { | |
172 d++; | |
173 descendTree(n->left); | |
174 d--; | |
175 } | |
176 } | |
177 | |
178 void printTree(NodePtr n) { | |
179 puts("---Print Node----"); | |
180 descendTree(n); | |
181 puts("-----------------"); | |
182 } | |
183 | |
184 | 163 |
185 int main(int argc, char **argv) | 164 int main(int argc, char **argv) |
186 { | 165 { |
187 for (int i = 1; i < argc; i++) { | 166 for (int i = 1; i < argc; i++) { |
188 if (strcmp(argv[i],"-regex") == 0) { | 167 if (strcmp(argv[i],"-regex") == 0) { |