在我的系统上哪里可以找到 Ruby 的 parse.y 文件?

iva*_*van 3 ruby parsing bison

我正在阅读有关如何解析和编译 Ruby 的信息,我想查看正在使用的 parse.y 文件。我还没有设法在我的系统(OS X)上的任何地方找到它。我试过find / -name parse.y没有任何运气。

运行ruby -y myfile.rb显示正在使用的 parse.y 中的行号,这让我认为它确实存在于某处,我只是不知道在哪里。我在线查看了parse.y,但我想查看我的本地副本。

例如,给定:

# myfile.rb
puts 'hi'
Run Code Online (Sandbox Code Playgroud)

当我运行时ruby -y myfile.rb,我看到:

Starting parse
Entering state 0
Reducing stack by rule 1 (line 859):
...
Run Code Online (Sandbox Code Playgroud)

我一直假设行号,如上面的 859,指的是 parse.y 中的行。不是这样吗?

Sim*_*tti 5

parse.y属于Ruby源代码。当您在您的机器上安装 Ruby 时,源代码被编译到 Ruby 解释器中,因此,除非您保留编译工件,否则您无法访问单个parse.y文件。

此外,该parse.y文件与您的特定 Ruby 版本在编译时使用的文件完全没有区别。您可以在官方 Ruby 存储库中搜索您的版本并从那里读取文件。