答案 0 :(得分:3)
这是在解析代码中处理的,该代码用YACC和C编写。查看the source code on GitHub。具体来说,处理此类引用的令牌以tQWORDS_BEG
开头(在parse.y
内搜索)。
对YACC实施的详细讨论会很长,但是如果你想要开始,那就是它存在于代码中的位置。
请注意,以上链接适用于MRI Ruby。我不知道其他Ruby解释器如何处理它,但它们都是在某个解析器中完成的,其中大多数是用C语言编写的,可能使用YACC进行解析。值得注意的例外是用Java编写的JRuby和OCaml中的druby。