main : main.o lexer.o ast.o main.o : main.c lexer.h parser.c lexer.o : lexer.c lexer.h parser.h ast.o : ast.h %.c : %.re re2c -o $@ $< %.c %.h : %.y lemon $< clean: $(RM) *.o lexer.c parser.c parser.h parser.out main