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です。

を使用して一度に 1 行ずつ渡してい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 に答える