2018-01-17 16:05:42 +01:00
|
|
|
# bison's version is too old on OSX, allow user to pass in custom path
|
2018-01-17 15:43:38 +01:00
|
|
|
BISON?=bison
|
2014-10-16 15:54:51 +02:00
|
|
|
|
2014-10-23 16:29:23 +02:00
|
|
|
all: bison_parser.cpp flex_lexer.cpp
|
2014-10-16 15:54:51 +02:00
|
|
|
|
2014-10-23 16:29:23 +02:00
|
|
|
bison_parser.cpp: bison_parser.y
|
2018-01-17 15:43:38 +01:00
|
|
|
@$(BISON) --version | head -n 1
|
|
|
|
$(BISON) bison_parser.y --output=bison_parser.cpp --defines=bison_parser.h --verbose
|
2014-10-16 15:54:51 +02:00
|
|
|
|
2014-10-23 16:29:23 +02:00
|
|
|
flex_lexer.cpp: flex_lexer.l
|
2017-02-08 11:21:04 +01:00
|
|
|
@flex --version
|
2014-10-16 15:54:51 +02:00
|
|
|
flex flex_lexer.l
|
|
|
|
|
|
|
|
clean:
|
2017-03-08 19:28:25 +01:00
|
|
|
rm -f bison_parser.cpp flex_lexer.cpp bison_parser.h flex_lexer.h *.output
|
|
|
|
|
|
|
|
# Tests if the parser builds correctly and doesn't contain conflicts.
|
|
|
|
test:
|
2018-01-17 15:43:38 +01:00
|
|
|
! $(BISON) bison_parser.y -v --output=conflict_test.cpp 2>&1 | grep "conflict" >&2
|