123456789101112131415161718192021222324252627282930 |
- .PHONY: all parser clean
- all: fmt parser
- test: fmt parser
- sh test.sh
- parser: parser.go hintparser.go
- %arser.go: prefix = $(@:parser.go=)
- %arser.go: %arser.y bin/goyacc
- @echo "bin/goyacc -o $@ -p yy$(prefix) -t $(prefix)Parser $<"
- @bin/goyacc -o $@ -p yy$(prefix) -t $(prefix)Parser $< || ( rm -f $@ && echo 'Please check y.output for more information' && exit 1 )
- @rm -f y.output
- %arser_golden.y: %arser.y
- @bin/goyacc -fmt -fmtout $@ $<
- @(git diff --no-index --exit-code $< $@ && rm $@) || (mv $@ $< && >&2 echo "formatted $<" && exit 1)
- bin/goyacc: goyacc/main.go goyacc/format_yacc.go
- GO111MODULE=on go build -o bin/goyacc goyacc/main.go goyacc/format_yacc.go
- fmt: bin/goyacc parser_golden.y hintparser_golden.y
- @echo "gofmt (simplify)"
- @gofmt -s -l -w . 2>&1 | awk '{print} END{if(NR>0) {exit 1}}'
- clean:
- go clean -i ./...
- rm -rf *.out
- rm -f parser.go hintparser.go
|