我尝试使用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
,但我似乎无法弄明白,而且文档很少。
答案 0 :(得分:1)
你无法逐行传递。立即传递整个代码。
RubyParser.new("def foo\n 2 + 2\nend")
或
RubyParser.new(File.read(file))