# HG changeset patch # User Masataka Kohagura # Date 1439289993 -32400 # Node ID d27b3af1fe75ec63e44460806255eb69a9a314f7 # Parent 4842ca2cf8eed9178fce30d147ec2f96485865f4 remove string() diff -r 4842ca2cf8ee -r d27b3af1fe75 c/regexParser/main.cc --- a/c/regexParser/main.cc Tue Aug 11 15:25:21 2015 +0900 +++ b/c/regexParser/main.cc Tue Aug 11 19:46:33 2015 +0900 @@ -1,7 +1,6 @@ /* * ::= [a-z][A-Z][0-9] * ::= '[''-'']' - * ::= * * ::= '('')' * ::= || * ::= |'*'|'|'| @@ -27,6 +26,7 @@ unsigned char character; } Value, *ValuePtr; struct node *self; + struct node *parent; struct node *left; struct node *right; } Node, *NodePtr; @@ -37,7 +37,6 @@ NodePtr regexHeadNode; NodePtr charClass(); -NodePtr string(); NodePtr group(); NodePtr orexp(); NodePtr asterisk(); @@ -97,18 +96,6 @@ return n; } -// ::= * -NodePtr string() { - char c = *ptr; - NodePtr n = NULL; - if (isLiteral(c)) { - n = createNode(0,literal(),string()); - } else { - n = createNode(0,0,0); - } - return n; -} - // ::= '('')' NodePtr group() { token(); @@ -193,34 +180,44 @@ n = createNode('+',n,n1); } } return n; -} +} /* * e.g. * * % ./regexParser -regex abc - * - * #-c - * #-+ - * # #-b + * c + * + + * b * + - * #-a + * a * * % ./regexParser -regex (a*|bc)d * - * - * #-d + * d * + - * # #-c - * # #-+ - * # # #-b - * #-| - * # - * #-* - * #-a - * + * c + * + + * b + * | + * * + * a */ + +void descendTree(NodePtr n,int d) { + if (n->right != NULL) { + d++; + descendTree(n->right, d); + } else if (n->left != NULL) { + d++; + descendTree(n->right, d); + } else { + printf("%c\n",n->Value.character); + } +} + void printTree(NodePtr n) { - + int depth = 0; + descendTree(n,depth); }