# OS type: Linux/Win DJGPP
ifdef OS
   EXE=.exe
else
   EXE=
endif

CFLAGS=-g -Wall
CC=gcc

minibasic$(EXE): lexer.o parser.o ast.o
	$(CC) $(CFLAGS) -o $@ $^ -lfl

lexer.c: lexer.l ast.h
	flex -s -o $@ $<

lexer.o: lexer.c parser.h

ast.o: ast.c ast.h

parser.c parser.h: parser.y ast.h
	bison -v -d -o $@ $<

.PHONY: clean distclean

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

distclean: clean
	$(RM) minibasic$(EXE)
