工具/命令/goyacc: goyacc生成的解析器例程$$Tokname不起作用,

6ovsh4lw  于 7个月前  发布在  Go
关注(0)|答案(5)|浏览(64)

你正在使用的Go版本是什么(go version)?

$ go version

1.15

这个问题在最新的版本中是否重现?
是的

你正在使用什么操作系统和处理器架构(go env)?
go env GO111MODULE="" GOARCH="amd64" GOBIN="" GOCACHE="/home/dswartz/.cache/go-build" GOENV="/home/dswartz/.config/go/env" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOINSECURE="" GOMODCACHE="/home/dswartz/go/pkg/mod" GONOPROXY="" GONOSUMDB="" GOOS="linux" GOPATH="/home/dswartz/go" GOPRIVATE="" GOPROXY="direct" GOROOT="/usr/lib/golang" GOSUMDB="off" GOTMPDIR="" GOTOOLDIR="/usr/lib/golang/pkg/tool/linux_amd64" GCCGO="gccgo" AR="ar" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build943484181=/tmp/go-build -gno-record-gcc-switches"

$ go env

你做了什么?
一个简单的yacc语法,包含以下标记:
%token ABLE
%token BAKER
%token CHARLIE
主函数调用fmt.Printf,传入yyTokname的输出结果

你期望看到什么?
ABLE => "ABLE"
BAKER => "BAKER"
CHARLIE => "CHARLIE"

你看到了什么?
ABLE => "tok-57346"
BAKER => "tok-57347"
CHARLIE => "tok-57348"

uplii1fm

uplii1fm1#

这是由于假设tokens从1开始的常规,但实际上并非如此。

fdbelqdn

fdbelqdn2#

打开了错误的目录。

wgmfuz8q

wgmfuz8q4#

所有的Go仓库共享一个Gerrit示例。如果你使用GitHub的拉取请求,它需要针对正确的仓库,然后它将自动拉取到共享的Gerrit中。

gstyhher

gstyhher5#

在2021-02-23 15:44,Ian Lance Taylor写道:所有的Go仓库共享一个Gerrit示例。如果你使用GitHub的pull request,它需要针对正确的仓库,但然后它将自动拉取到共享的Gerrit中。
我想到了这个方法。如果你再看一下这个问题,我会稍微改写一下文本,现在,用光标划过它会显示正确的PR :)

相关问题