view c/regexParser/main.cc @ 108:70069d4647a0 impl-bitvector

implement malloc error checking
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Thu, 19 Nov 2015 17:48:36 +0900
parents 1cdad0468484
children 66c633575b53
line wrap: on
line source

/*
 * <literal> ::= [a-z][A-Z][0-9]
 * <charClass> ::= '['<literal>'-'<literal>']'
 * <group> ::= '('<regex>')'
 * <regexAtom> ::= <literal>|<charClass>|<group>
 * <regex> ::= <regexAtom>|<regexAtom>'*'|<regexAtom>'|'<regex>|<regexAtom><regex>
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "regexParser.h"
#include "bitVector.h"

extern NodePtr regex(RegexInfoPtr);
extern void printTree(NodePtr);
BitVectorListPtr createBitVectorList(NodePtr);


int main(int argc, char **argv)
{
    RegexInfoPtr ri = (RegexInfoPtr)malloc(sizeof(RegexInfo));
    ri->nodeNumber = 1;

    for (int i = 1; i < argc; i++) {
        if (strcmp(argv[i],"-regex") == 0) {
            ri->ptr = (unsigned char*)argv[i+1]; i++;
        }
    }

    printf("regex : %s\n",ri->ptr);
    NodePtr n = regex(ri);
    printTree(n);
    createBitVectorList(n);
    return 0;
}