CC = g++
CCC = g++
CFLAGS = -c -g
CCFLAGS = $(CFLAGS)
LDFLAGS = -g

O = declare.tab.o scanner.o main.o exprs.o
P = parser

$P: $O
	$(CCC) $(LDFLAGS) $O -o $P

scanner.o: scanner.l
	flex -it scanner.l > scanner.cc
	g++ $(CCFLAGS) scanner.cc

declare.tab.o: declare.y
	bison -d declare.y; /bin/mv declare.tab.c declare.tab.cc
	g++ $(CCFLAGS) declare.tab.cc

clean:
	/bin/rm -f $P scanner.cc declare.tab.cc declare.tab.h $O core.*

test: $P
	parser < test_input
	
all.tar:
	tar  -cf all.tar scanner.l declare.y test_input main.cc Makefile exprs.cc exprs.h lists.h test_input
