FLEX	= flex
YACC	= yacc

LFLAGS	= -lfl

OFILES	= main.o tree.o error.o memory.o weed.o symbol.o type.o defasn.o \
			resource.o code.o optimize.o emit.o

HFILES	= tree.h error.h memory.h weed.h symbol.h type.h defasn.h \
			resource.h code.h optimize.h emit.h

######################

main: y.tab.o lex.yy.o $(HFILES) $(OFILES)
	$(CC) lex.yy.o y.tab.o $(OFILES) $(LFLAGS) -o joos

y.tab.c y.tab.h: joos.y
	$(YACC) -d joos.y

lex.yy.c: joos.l y.tab.h 
	$(FLEX) joos.l


clean:
	@rm $(OFILES) joos lex.yy.* y.tab.*
