.PHONY: clean distclean default

CC=g++
CFLAGS=-Wall

default: mbc

lexer.cpp: lexer.l
	flex -s --yylineno -o $@ $^

lexer.o: lexer.cpp lexer.hpp parser.hpp

parser.hpp parser.cpp: parser.y
	bison -dv -o parser.cpp $^

parser.o: parser.cpp lexer.hpp

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

clean:
	$(RM) lexer.cpp parser.cpp parser.hpp parser.output *.o

distclean: clean
	$(RM) mbc
