PROG = parser
CC = gcc
LEX = flex
YACC = yacc
CFLAGS = -Wall

$(PROG): y.tab.o lex.yy.o
	$(CC) $(CFLAGS) -o $@ $^
y.tab.o: y.tab.c y.tab.h
	$(CC) $(CFLAGS) -c -o $@ $<
y.tab.c y.tab.h : primer.y
	$(YACC) -d $<
lex.yy.o: lex.yy.c y.tab.h
	$(CC) $(CFLAGS) -c -o $@ $<
lex.yy.c: primer.l
	$(LEX) $<

.PHONY: clean

clean:
	-rm *~ lex.yy.c y.tab.c y.tab.h *.o $(PROG)