Mercurial > hg > Applications > Grep
view c/regexParser/node.cc @ 143:32977f5a2ed0 pairPro
add charClassMerge
author | masa |
---|---|
date | Fri, 11 Dec 2015 15:04:58 +0900 |
parents | 6c258910cacb |
children | d8a4922eceae |
line wrap: on
line source
#include <stdio.h> #include "node.h" static void printCharacterClass(CharClassPtr cc, long nodeNumber,int d) { if (cc->type == 'r') { printf("%*c",d*4, ' '); for (RangeListPtr range = cc->cond->range; range; range = range->next) { printf("[%c-%c] ",*range->begin,*range->end); } printf("(%lu)\n",nodeNumber); } } static void descendTree(NodePtr n, int d) { if (n->left != NULL) { d++; descendTree(n->left, d); d--; } if (n->tokenType == 'a') { printf("%*c",d*4, ' '); for (int i = 0; i < n->cc->cond->w->length; i++) { putchar(n->cc->cond->w->word[i]); } printf("(%lu)\n",n->nodeNumber); } else if (n->tokenType == 'c') { printCharacterClass(n->cc,n->nodeNumber,d); } else { printf("%*c%c(%lu)\n",d*4, ' ',n->tokenType,n->nodeNumber); } if (n->right != NULL) { d++; descendTree(n->right, d); d--; } } void printTree(NodePtr n) { puts("---Print Node----"); int d = 0; descendTree(n,d); puts("-----------------"); }