.PHONY: clean distclean default

CC=gcc
CFLAGS=-Wall

default: minibasic

parser.h parser.c: parser.y
	bison -dv -o parser.c parser.y

lexer.c: lexer.l
	flex -s -o lexer.c lexer.l

lexer.o: lexer.c parser.h

%.o: %.c
	$(CC) $(CFLAGS) -c $<

minibasic: lexer.o parser.o
	$(CC) $(CFLAGS) -o minibasic $^

clean:
	$(RM) lexer.c parser.c parser.h parser.output *.o *~

distclean: clean
	$(RM) minibasic