完善生成脚本, 避免用户注释被覆盖

2014-12-24 2:10 GMT-05:00 chai2010 <notifications@github.com>:

> In tools/mktests.go
> <https://github.com/golang-zh/gccgo/pull/4#discussion-diff-22247694>:
>
> > +		b. 如果 文件内容为 空, 或为 "TODO", 则 生成新的测试文件
> > +		c. 如果 文件内容以 `//po:MsgId "${MsgId}"` 开头, 则说明不需要更新, 打印信息 `skip existing ../test/xxx.go`
> > +		d. 如果 文件内容以 `//po:MsgId` 开头, 但是 `${MsgId}` 部分不一致, 则说明文件格式被破坏, 需要打印提示信息
> > +		e. 如果 文件内容是其他, 则 增加 `mktest.go` 生成的头部注释
> > +	6. 退出前需要打印的信息
> > +		0. `MsgId` 映射文件名不唯一, 停止处理, 需要重写 `mktest.go` 生成脚本
> > +		a. 跳过的文件, 格式: skip existing ../tests/xxx.go
> > +		b. 更新的文件, 格式: generate ../tests/xxx.go
> > +		c. 无效的文件, 格式: invalid ../tests/xxx.go
> > +		d. 坏掉的文件, 格式: bad ../tests/xxx.go
> > +
> > +生成的测试文件的头部注释样例:
> > +
> > +	//po:MsgId "ambiguous method %s%s%s"
> > +	//po:MsgStr "有歧义的方法%s%s%s"
> > +	//po:MsgStr ""
>
> 原始 的 MsgStr 也可以是多行的.
>
> 当文本太长时, 为了方便编辑, 会切割为多行.
> 运行时的行用 \n 表示.
> 我们编辑时的行是编辑界面看到的, 不是运行时的跨行.
> 这只是一个注释(可能会有很长的文本要翻译时, 可跨行).
>
明白了，谢谢解释。