CC       = /usr/local/gcc-3.0.1/bin/gcc
CFLAGS   = -O6 -ansi -pedantic -Wall

CXX      = /usr/local/gcc-3.0.1/bin/g++
CXXFLAGS = -O6 -ansi -pedantic -Wall

YACC     = bison
#YFLAGS   = -d -y
YFLAGS   = -d -t -y

LEX      = flex
LFLAGS   = -p
#LFLAGS   = -d -p

OBJS = y.tab.o lex.yy.o parser.o Node.o ParseTree.o Method.o Attr.o Class.o

LIBS = -L/usr/local/gcc-3.0.1/lib

all: parser

y.tab.c y.tab.h: tu-dump.y
	$(YACC) $(YFLAGS) tu-dump.y

lex.yy.c: y.tab.h tu-dump.l
	$(LEX) $(LFLAGS) tu-dump.l

parser: $(OBJS)
	$(CXX) $(CXXFLAGS) -o parser $(OBJS) $(LIBS)

clean:
	rm -f $(OBJS) y.tab.c y.tab.h lex.yy.c parser parser.exe

### DO NOT DELETE!!!
Attr.o: Attr.cpp Attr.h Node.h
Class.o: Class.cpp Class.h Method.h Node.h Attr.h
Method.o: Method.cpp Method.h Node.h Attr.h
Node.o: Node.cpp Node.h
parser.o: parser.cpp ParseTree.h Node.h Class.h Method.h Attr.h
ParseTree.o: ParseTree.cpp ParseTree.h Node.h Class.h Method.h Attr.h
