经过大量搜索,我无法弄清楚 Ruby 如何实现General Delimited Inputs。
我只能找到Kernel#`,它由%x{...}
.
任何帮助将不胜感激。谢谢
这是在解析代码中处理的,它是用YACC和 C 编写的。查看GitHub 上的源代码。具体来说,处理此类引用的标记以tQWORDS_BEG
(search within parse.y
) 开头。
YACC 实现的详细讨论会很长,但如果您想开始,那就是它在代码中的位置。
请注意,上面的链接适用于 MRI Ruby。我不知道其他 Ruby 解释器是如何处理它的,但它们都是在某个解析器中完成的,其中大部分都是用 C 编写的,并且可能使用 YACC 来解析。值得注意的例外是用 Java 编写的 JRuby 和用 OCaml 编写的 druby。