TWS	= ..\..
TWSBIN	= $(TWS)\bin
TWSPARSER	= $(TWS)\parser
INCLUDE	= $(TWS)\parser
CC      = gcc
CCFLAGS	= -c -I$(INCLUDE)

parse:		$(TWSPARSER)/Main.o $(TWSPARSER)/GenericTrees.o \
		y.tab.o lex.yy.o $(TWSPARSER)/Trees.o \
		$(TWSPARSER)/DLists.o
		$(CC) -o parse.exe -g -ansi $(TWSPARSER)/Main.o \
		$(TWSPARSER)/GenericTrees.o y.tab.o lex.yy.o \
		$(TWSPARSER)/Trees.o $(TWSPARSER)/DLists.o -lfl


y.tab.o:	y.tab.c
		$(CC) $(CCFLAGS) y.tab.c

y.tab.h y.tab.c:	code.y $(TWSPARSER)/Tokenizer.h \
			$(TWSPARSER)/Trees.h 
		bison -y -dv code.y

code.y:	parse.tiny
		$(TWSBIN)\pgen < parse.tiny > trash
#	USE THIS LAST COMMAND IF YOU WANT DEBUGGING TRACES


lex.yy.o:	lex.yy.c
		$(CC) $(CCFLAGS) lex.yy.c

lex.yy.c:	lex.tiny y.tab.h $(TWSPARSER)/Tokenizer.h
		flex lex.tiny
		del lex.yy.c
		rename lexyy.c lex.yy.c


clean::
		del y.tab.c 
		del y.tab.h 
		del y.output 
		del lex.yy.o 
		del lex.yy.c 
		del y.tab.o
		del core 
		del _TREE 
		del code.y 
		del parse.exe
