# HG changeset patch # User Masataka Kohagura # Date 1438674101 -32400 # Node ID f8fb3b463f70b0a72ca87c382b5a5e3abd7623d3 # Parent 20b7d4e958bb7904b2b6d77cff04d4964e446a2e fix when '|' come procces diff -r 20b7d4e958bb -r f8fb3b463f70 c/regexParser/main.cc --- a/c/regexParser/main.cc Thu Jul 30 23:55:53 2015 +0900 +++ b/c/regexParser/main.cc Tue Aug 04 16:41:41 2015 +0900 @@ -3,9 +3,8 @@ * ::= '[''-'']' * ::= * * ::= '('')' - * ::= '|' - * <*> ::= '*' - * ::= ||||<*> + * ::= || + * ::= |'*'|'|'| */ #include @@ -177,8 +176,9 @@ while (*ptr) { token(); if (tokenType == '*') { - n = createNode('*',n,0); + n = createNode('*',n,0); ptr++; } else if (tokenType == '|') { + ptr++; NodePtr n1 = regex(); n = createNode('|',n,n1); } else { @@ -190,6 +190,36 @@ } +/* + * e.g. + * + * % ./regexParser -regex abc + * + * #-c + * #-+ + * # #-b + * + + * #-a + * + * % ./regexParser -regex (a*|bc)d + * + * + * #-d + * + + * # #-c + * # #-+ + * # # #-b + * #-| + * # + * #-* + * #-a + * + */ +void printTree(NodePtr n) { + +} + + int main(int argc, char **argv) { for (int i = 1; i < argc; i++) { @@ -200,5 +230,6 @@ printf("regex : %s\n",ptr); NodePtr n = regex(); + printTree(n); return 0; }