# HG changeset patch # User Masataka Kohagura # Date 1443519391 -32400 # Node ID 52da06c3f0505886850ec54b2b1662e1c38eae84 # Parent 23a96fefa64342d734d9920a59e56cedbc1344c1 add printTree.cc & fix Makefile diff -r 23a96fefa643 -r 52da06c3f050 c/regexParser/Makefile --- a/c/regexParser/Makefile Mon Sep 28 16:53:06 2015 +0900 +++ b/c/regexParser/Makefile Tue Sep 29 18:36:31 2015 +0900 @@ -1,13 +1,30 @@ TARGET= regexParser -OPTION= -Wall -O0 -g +CFLAGS= -Wall -O0 -g +CC= clang++ + +SRCS_TMP = $(wildcard *.cc) +SRCS_EXCLUDE = # 除外するファイルを書く +SRCS = $(filter-out $(SRCS_EXCLUDE),$(SRCS_TMP)) +OBJS = $(SRCS:.cc=.o) + +.SUFFIXES: .cc .o -$(TARGET):main.cc - clang $(OPTION) -o $(TARGET) main.cc +.cc.o: + $(CC) $(CFLAGS) -c $< -o $@ + +all: $(TARGET) + +$(TARGET):$(OBJS) + $(CC) -o $@ $(OBJS) + +link: + $(CC) -o $(TARGET) $(OBJS) $(TASK_OBJS) $(LIBS) clean: - rm -f $(TARGET) - rm -r $(TARGET).dSYM + rm -f $(TARGET) $(OBJS) rm -f *~ \#* test: $(TARGET) -regex "(ab)c" + $(TARGET) -regex "(a|b)c" + $(TARGET) -regex "(ab)*c" diff -r 23a96fefa643 -r 52da06c3f050 c/regexParser/main.cc --- a/c/regexParser/main.cc Mon Sep 28 16:53:06 2015 +0900 +++ b/c/regexParser/main.cc Tue Sep 29 18:36:31 2015 +0900 @@ -14,7 +14,6 @@ unsigned char *ptr; unsigned char tokenType; int tokenValue; -NodePtr regexHeadNode; NodePtr charClass(); NodePtr group(); @@ -22,6 +21,7 @@ NodePtr createNode(unsigned char,NodePtr,NodePtr); void token(); NodePtr regexAtom(); +extern void printTree(NodePtr); bool isLiteral(char c) { @@ -160,27 +160,6 @@ } return n; } -void descendTree(NodePtr n) { - static int d = 0; - if (n->right != NULL) { - d++; - descendTree(n->right); - d--; - } - printf("%*c%c\n",d*4, ' ',n->Value.character); - if (n->left != NULL) { - d++; - descendTree(n->left); - d--; - } -} - -void printTree(NodePtr n) { - puts("---Print Node----"); - descendTree(n); - puts("-----------------"); -} - int main(int argc, char **argv) { diff -r 23a96fefa643 -r 52da06c3f050 c/regexParser/printTree.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/c/regexParser/printTree.cc Tue Sep 29 18:36:31 2015 +0900 @@ -0,0 +1,23 @@ +#include +#include "regexParser.h" + +void descendTree(NodePtr n) { + static int d = 0; + if (n->right != NULL) { + d++; + descendTree(n->right); + d--; + } + printf("%*c%c\n",d*4, ' ',n->Value.character); + if (n->left != NULL) { + d++; + descendTree(n->left); + d--; + } +} + +void printTree(NodePtr n) { + puts("---Print Node----"); + descendTree(n); + puts("-----------------"); +}