如何使用ruby_parser解析多行?

时间:2015-03-22 20:06:38

标签: ruby parsing 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,但我似乎无法弄明白,而且文档很少。

1 个答案:

答案 0 :(得分:1)

你无法逐行传递。立即传递整个代码。

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

RubyParser.new(File.read(file))