view c/regexParser/node.cc @ 139:6c258910cacb pairPro

remove some warning and error
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Mon, 07 Dec 2015 02:20:13 +0900
parents e1a262ec75f0
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("-----------------");
}