0

我正在尝试编写代码来读取用户输入的 Ruby 脚本并将其存储在临时文件中,然后将该临时文件传递jruby -c temp_file给进行语法验证。

如果发现任何错误,我必须显示错误以及用户输入的带有行号的脚本。

我该怎么做?

4

2 回答 2

0

如果我正确理解您要实现的目标,您可以将jruby-parser(install gem install jruby-parser) 与 JRuby 一起使用来查找发生错误的行号:

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 回答
0

如果存在语法错误,您会看到失败的行号:

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

因此,只需在换行符 ( ) 上拆分您的脚本\n,这就是您的错误行(当然基于 1 个索引)。

于 2012-09-12T17:13:01.470 回答