在我的系统上哪里可以找到 Ruby 的 parse.y 文件?
Where can I find Ruby's parse.y file on my system?
我正在阅读有关如何解析和编译 Ruby 的信息,我想查看正在使用的 parse.y 文件。我没能在我的系统上的任何地方找到它 (OS X)。我试过 find / -name parse.y
没有任何运气。
运行 ruby -y myfile.rb
显示正在使用的 parse.y 内的行号,这让我觉得它确实存在于某个地方,我只是不知道在哪里。我看过 parse.y online,但我想看看我的本地副本。
例如,给定:
# myfile.rb
puts 'hi'
当我运行ruby -y myfile.rb
时,我看到:
Starting parse
Entering state 0
Reducing stack by rule 1 (line 859):
...
我一直假设行号(如上面的 859)指的是 parse.y 内的行。不是这样吗?
您没有说明您正在使用哪种 Ruby 实现。并非所有 Ruby 实现都使用 Bison 来生成解析器。并非所有 Ruby 实现都能够执行 C 代码,这是 Bison 生成的。例如,XRuby 使用 ANTLR。 JRuby 使用从 parse.c
手动翻译成 Java 的解析器,即由 Bison 从 [=] 生成的 generated C 代码11=].
在 使用 Bison 的 Ruby 实现中,none 发布了 parse.y
。它毕竟是源代码,不是二进制文件的一部分。事实上,在编译过程中 parse.y
首先被编译为 C,然后与实现的其余部分一起被编译为二进制文件,那个 二进制文件就是交付的。
如果您想知道哪个 parse.y
文件用于编译您的 Ruby 可执行文件,您将不得不询问编译您的 Ruby 可执行文件的人。如果您使用的 Ruby 实现甚至完全使用 parse.y
。
parse.y
属于Ruby源代码。当你在你的机器上安装 Ruby 时,源代码被编译到 Ruby 解释器中,因此,除非你保留编译工件,否则你无法访问单个 parse.y
文件。
此外,parse.y
文件与您的特定 Ruby 版本在编译时使用的文件没有任何不同。您可以在官方 Ruby 存储库中搜索您的版本并从那里读取文件。
我正在阅读有关如何解析和编译 Ruby 的信息,我想查看正在使用的 parse.y 文件。我没能在我的系统上的任何地方找到它 (OS X)。我试过 find / -name parse.y
没有任何运气。
运行 ruby -y myfile.rb
显示正在使用的 parse.y 内的行号,这让我觉得它确实存在于某个地方,我只是不知道在哪里。我看过 parse.y online,但我想看看我的本地副本。
例如,给定:
# myfile.rb
puts 'hi'
当我运行ruby -y myfile.rb
时,我看到:
Starting parse
Entering state 0
Reducing stack by rule 1 (line 859):
...
我一直假设行号(如上面的 859)指的是 parse.y 内的行。不是这样吗?
您没有说明您正在使用哪种 Ruby 实现。并非所有 Ruby 实现都使用 Bison 来生成解析器。并非所有 Ruby 实现都能够执行 C 代码,这是 Bison 生成的。例如,XRuby 使用 ANTLR。 JRuby 使用从 parse.c
手动翻译成 Java 的解析器,即由 Bison 从 [=] 生成的 generated C 代码11=].
在 使用 Bison 的 Ruby 实现中,none 发布了 parse.y
。它毕竟是源代码,不是二进制文件的一部分。事实上,在编译过程中 parse.y
首先被编译为 C,然后与实现的其余部分一起被编译为二进制文件,那个 二进制文件就是交付的。
如果您想知道哪个 parse.y
文件用于编译您的 Ruby 可执行文件,您将不得不询问编译您的 Ruby 可执行文件的人。如果您使用的 Ruby 实现甚至完全使用 parse.y
。
parse.y
属于Ruby源代码。当你在你的机器上安装 Ruby 时,源代码被编译到 Ruby 解释器中,因此,除非你保留编译工件,否则你无法访问单个 parse.y
文件。
此外,parse.y
文件与您的特定 Ruby 版本在编译时使用的文件没有任何不同。您可以在官方 Ruby 存储库中搜索您的版本并从那里读取文件。