0

我正在尝试使用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,但我似乎无法弄清楚,而且文档很少。

4

1 回答 1

1

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

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

或者

RubyParser.new(File.read(file))
于 2015-03-22T20:21:29.143 回答