github.com/pingcap/tidb/parser@v0.0.0-20231013125129-93a834a6bf8d/Makefile (about) 1 .PHONY: all parser clean 2 3 all: fmt parser 4 5 test: fmt parser 6 sh test.sh 7 8 parser: parser.go hintparser.go 9 10 %arser.go: prefix = $(@:parser.go=) 11 %arser.go: %arser.y bin/goyacc 12 @echo "bin/goyacc -o $@ -p yy$(prefix) -t $(prefix)Parser $<" 13 @bin/goyacc -o $@ -p yy$(prefix) -t $(prefix)Parser $< || ( rm -f $@ && echo 'Please check y.output for more information' && exit 1 ) 14 @rm -f y.output 15 16 %arser_golden.y: %arser.y 17 @bin/goyacc -fmt -fmtout $@ $< 18 @(git diff --no-index --exit-code $< $@ && rm $@) || (mv $@ $< && >&2 echo "formatted $<" && exit 1) 19 20 bin/goyacc: goyacc/main.go goyacc/format_yacc.go 21 GO111MODULE=on go build -o bin/goyacc goyacc/main.go goyacc/format_yacc.go 22 23 fmt: bin/goyacc parser_golden.y hintparser_golden.y 24 @echo "gofmt (simplify)" 25 @gofmt -s -l -w . 2>&1 | awk '{print} END{if(NR>0) {exit 1}}' 26 27 clean: 28 go clean -i ./... 29 rm -rf *.out 30 rm -f parser.go hintparser.go