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