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