Mercurial > hg > Applications > Grep
comparison c/regexParser/createRegexParser.cc @ 104:3eb3cb5d581f bitVec-Kaito
implemented 'or' node translator
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 17 Nov 2015 22:20:42 +0900 |
parents | 1e5b56e8263b |
children | 70069d4647a0 |
comparison
equal
deleted
inserted
replaced
103:4ad2a75dec4a | 104:3eb3cb5d581f |
---|---|
39 } | 39 } |
40 | 40 |
41 // <charClass> ::= '['<literal>'-'<literal>']' | 41 // <charClass> ::= '['<literal>'-'<literal>']' |
42 NodePtr charClass(RegexInfoPtr ri) { | 42 NodePtr charClass(RegexInfoPtr ri) { |
43 NodePtr n = (NodePtr)malloc(sizeof(Node)); | 43 NodePtr n = (NodePtr)malloc(sizeof(Node)); |
44 unsigned char startChar = ri->ptr[0]; | |
45 while (ri->ptr[0] == '-') { | 44 while (ri->ptr[0] == '-') { |
46 ri->ptr++; | 45 ri->ptr++; |
47 } | 46 } |
48 unsigned char endChar = ri->ptr[0]; | |
49 unsigned char *charTable = (unsigned char*)malloc(sizeof(char)*256); | |
50 | |
51 return n; | 47 return n; |
52 } | 48 } |
53 | 49 |
54 // <literal> ::= [a-z][A-Z][0-9] | 50 // <literal> ::= [a-z][A-Z][0-9] |
55 NodePtr literal(RegexInfoPtr ri) { | 51 NodePtr literal(RegexInfoPtr ri) { |
56 unsigned char *top = ri->ptr; | |
57 NodePtr n = createNode(ri,ri->ptr[0],0,0); | 52 NodePtr n = createNode(ri,ri->ptr[0],0,0); |
58 ri->ptr++; | 53 ri->ptr++; |
59 return n; | 54 return n; |
60 } | 55 } |
61 | 56 |