Как я могу разобрать несколько строк, используя 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 ответ
Решение
Вы не можете передавать построчно. Передайте весь код сразу.
RubyParser.new("def foo\n 2 + 2\nend")
или же
RubyParser.new(File.read(file))