0

ユーザーが入力したRubyスクリプトを読み取り、それを一時ファイルに保存し、その一時ファイルをに渡してjruby -c temp_file構文検証を行うコードを記述しようとしています。

エラーが見つかった場合は、エラーと、ユーザーが入力した行番号のスクリプトを表示する必要があります。

どうすればいいですか?

4

2 に答える 2

0

構文エラーがある場合は、失敗した行番号が表示されます。

blah.rb:2: syntax error, unexpected '.'

したがって、スクリプトを改行(\n)で分割すると、エラー行になります(もちろん1つのインデックスに基づいています)。

于 2012-09-12T17:13:01.470 に答える
0

あなたが達成しようとしていることを正しく理解している場合は、JRuby でjruby-parser(install gem install jruby-parser) を使用して、エラーが発生した行番号を見つけることができます。

require 'jruby-parser'

# Read script file into a String
script = File.open('hello.rb', 'r').read

begin
  JRubyParser.parse(script)
rescue Exception => e
  # Display line number
  puts e.position.start_line
  # Display error message
  puts e.message
end
于 2012-09-13T20:16:27.643 に答える