如何使用 ruby_parser 解析多行?

How can I parse multiple lines using ruby_parser?

我正在尝试使用 ruby_parser 来解析文件中的一些多行 Ruby 代码。

假设我要解析以下代码:

def foo
  2 + 2
end

当我执行以下操作时出现错误:

RubyParser.new.parse("def foo")
#=> Racc::ParseError: (string):1 :: parse error on value "$end" ($end)

因为该行不包含 end

我使用 File.readlines(file) 一次一行地传递行。

理想情况下,我会将文件名指定为 RubyParser,但我似乎无法弄清楚,而且文档很少。

不能逐行通过。一次通过整个代码。

RubyParser.new("def foo\n  2 + 2\nend")

RubyParser.new(File.read(file))