Mercurial > hg > Applications > Grep
annotate c/regexParser/main.cc @ 95:1cdad0468484 impl-bitvector
rename createRegexTree to createRegexParser
author | Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 10 Nov 2015 15:35:49 +0900 |
parents | 912d7bd51f38 |
children | 66c633575b53 |
rev | line source |
---|---|
55 | 1 /* |
56
8901bc071d33
implement string() and literal()
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
55
diff
changeset
|
2 * <literal> ::= [a-z][A-Z][0-9] |
8901bc071d33
implement string() and literal()
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
55
diff
changeset
|
3 * <charClass> ::= '['<literal>'-'<literal>']' |
58
4053c3e0fa7f
implement group()
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
57
diff
changeset
|
4 * <group> ::= '('<regex>')' |
66
f8fb3b463f70
fix when '|' come procces
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
65
diff
changeset
|
5 * <regexAtom> ::= <literal>|<charClass>|<group> |
f8fb3b463f70
fix when '|' come procces
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
65
diff
changeset
|
6 * <regex> ::= <regexAtom>|<regexAtom>'*'|<regexAtom>'|'<regex>|<regexAtom><regex> |
55 | 7 */ |
8 | |
45 | 9 #include <stdio.h> |
56
8901bc071d33
implement string() and literal()
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
55
diff
changeset
|
10 #include <stdlib.h> |
8901bc071d33
implement string() and literal()
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
55
diff
changeset
|
11 #include <string.h> |
77
7f53a587bf97
add regexParser.h
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
76
diff
changeset
|
12 #include "regexParser.h" |
95
1cdad0468484
rename createRegexTree to createRegexParser
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
13 #include "bitVector.h" |
76 | 14 |
82
1d9bbf922bb6
add createRegexTree.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
81
diff
changeset
|
15 extern NodePtr regex(RegexInfoPtr); |
79
52da06c3f050
add printTree.cc & fix Makefile
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
77
diff
changeset
|
16 extern void printTree(NodePtr); |
95
1cdad0468484
rename createRegexTree to createRegexParser
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
17 BitVectorListPtr createBitVectorList(NodePtr); |
64
e0ad6c145f89
remove some errors
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
18 |
66
f8fb3b463f70
fix when '|' come procces
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
65
diff
changeset
|
19 |
62
a49b4a8b8c14
implement isLiteral
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
61
diff
changeset
|
20 int main(int argc, char **argv) |
55 | 21 { |
80
0a452d69f0e2
remove global variable in main.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
79
diff
changeset
|
22 RegexInfoPtr ri = (RegexInfoPtr)malloc(sizeof(RegexInfo)); |
91
912d7bd51f38
remove static variable in createRegexTree.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
82
diff
changeset
|
23 ri->nodeNumber = 1; |
80
0a452d69f0e2
remove global variable in main.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
79
diff
changeset
|
24 |
56
8901bc071d33
implement string() and literal()
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
55
diff
changeset
|
25 for (int i = 1; i < argc; i++) { |
8901bc071d33
implement string() and literal()
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
55
diff
changeset
|
26 if (strcmp(argv[i],"-regex") == 0) { |
80
0a452d69f0e2
remove global variable in main.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
79
diff
changeset
|
27 ri->ptr = (unsigned char*)argv[i+1]; i++; |
56
8901bc071d33
implement string() and literal()
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
55
diff
changeset
|
28 } |
8901bc071d33
implement string() and literal()
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
55
diff
changeset
|
29 } |
55 | 30 |
80
0a452d69f0e2
remove global variable in main.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
79
diff
changeset
|
31 printf("regex : %s\n",ri->ptr); |
0a452d69f0e2
remove global variable in main.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
79
diff
changeset
|
32 NodePtr n = regex(ri); |
66
f8fb3b463f70
fix when '|' come procces
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
65
diff
changeset
|
33 printTree(n); |
95
1cdad0468484
rename createRegexTree to createRegexParser
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
34 createBitVectorList(n); |
45 | 35 return 0; |
36 } |