0

经过大量搜索,我无法弄清楚 Ruby 如何实现General Delimited Inputs

我只能找到Kernel#`,它由%x{...}.

任何帮助将不胜感激。谢谢

4

1 回答 1

3

这是在解析代码中处理的,它是用YACC和 C 编写的。查看GitHub 上的源代码。具体来说,处理此类引用的标记以tQWORDS_BEG(search within parse.y) 开头。

YACC 实现的详细讨论会很长,但如果您想开始,那就是它在代码中的位置。

请注意,上面的链接适用于 MRI Ruby。我不知道其他 Ruby 解释器是如何处理它的,但它们都是在某个解析器中完成的,其中大部分都是用 C 编写的,并且可能使用 YACC 来解析。值得注意的例外是用 Java 编写的 JRuby 和用 OCaml 编写的 druby。

于 2013-05-25T17:47:50.090 回答