class Erubis::Main

def check_syntax(filename, src)

def check_syntax(filename, src)
  require 'open3'
  #command = (ENV['_'] || 'ruby') + ' -wc'   # ENV['_'] stores command name
  bin = ENV['_'] && File.basename(ENV['_']) =~ /^ruby/ ? ENV['_'] : 'ruby'
  command = bin + ' -wc'
  stdin, stdout, stderr = Open3.popen3(command)
  stdin.write(src)
  stdin.close
  result = stdout.read()
  stdout.close()
  errmsg = stderr.read()
  stderr.close()
  return nil unless errmsg && !errmsg.empty?
  errmsg =~ /\A-:(\d+): /
  linenum, message = $1, $'
  return "#{filename}:#{linenum}: #{message}"
end