2010-03-22 63 views

回答

31

2017更新:有一个主要的解析器更新和新的不再支持这些复活节彩蛋词。


貌似在词法分析器中的复活节彩蛋对我说:

https://github.com/golang/go/blob/08e25fc1ba397e02ec776561ed73b7f9a8b94392/src/cmd/compile/internal/gc/lex.go#L2152-L2156

相关的部分是符号表:

"notwithstanding",  LIGNORE, Txxx,  OXXX, 
"thetruthofthematter", LIGNORE, Txxx,  OXXX, 
"despiteallobjections", LIGNORE, Txxx,  OXXX, 
"whereas",    LIGNORE, Txxx,  OXXX, 
"insofaras",   LIGNORE, Txxx,  OXXX, 

我猜他们可能被用来测试处理词法类型LIGNORE,但似乎没有任何“真正”被忽略的令牌。

+2

呃,它们的词法分析器函数有一个名为'l0'(el-zero)的标签用于开始语句。如果你实际使用l0作为代码中的标识符,编译器应该被设计为删除你的代码。 – Jimmy 2010-03-22 03:21:08

+0

如果您在l0具有特定含义的域中工作,该怎么办?毕竟小写pi只是希腊语中的单个字母,但我们仍然接受它作为标识符的名称,因为我们知道它的意思。 – 2011-08-19 10:18:56

+2

@JørgenFogh:我并不是很认真,但它确实对这个问题(从那时起就被删除)做了另一个回答:“这些论文全都指向我现在找不到的”GOTO 10“这完美地说明了这个问题。当然,每条规则都有例外。 – Jimmy 2011-08-19 18:57:54

相关问题