我正在尝试编写代码来读取用户输入的Ruby脚本并将其存储在临时文件中,然后将该临时文件传递给jruby -c temp_file
以进行语法验证。
如果发现任何错误,我必须显示错误,以及用户使用行号输入的脚本。
我该怎么做?
答案 0 :(得分:0)
如果语法错误,您会看到失败的行号:
blah.rb:2: syntax error, unexpected '.'
所以只需将你的脚本拆分为换行符(\n
),这就是你的错误行(当然是1索引)。
答案 1 :(得分:0)
如果我正确理解您要实现的目标,可以使用jruby-parser
(安装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