Ruby如何实现通用分隔输入?

时间:2013-05-25 17:15:03

标签: ruby

经过多次搜索,我无法想象Ruby如何实现General Delimited Inputs

我能找到的是Kernel#`%x{...}使用了它。

任何帮助都会非常感激。感谢

1 个答案:

答案 0 :(得分:3)

这是在解析代码中处理的,该代码用YACC和C编写。查看the source code on GitHub。具体来说,处理此类引用的令牌以tQWORDS_BEG开头(在parse.y内搜索)。

对YACC实施的详细讨论会很长,但是如果你想要开始,那就是它存在于代码中的位置。

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