class Bake::IARLinkerErrorParser

Public Class Methods

new() click to toggle source
# File lib/bake/toolchain/errorparser/iar_linker_error_parser.rb, line 6
def initialize()
  @error_expression = /([A-Za-z]+)\[\w+\]:\s*(.+)/
end

Public Instance Methods

scan_lines(consoleOutput, proj_dir) click to toggle source
# File lib/bake/toolchain/errorparser/iar_linker_error_parser.rb, line 10
def scan_lines(consoleOutput, proj_dir)
  res = []
  lastValidErrorDesc = nil
  consoleOutput[0].each_line do |l|
    l.rstrip!
    d = ErrorDesc.new
    scan_res = l.scan(@error_expression)
    if scan_res.length > 0
      d.file_name = proj_dir
      d.line_number = 0
      d.message = scan_res[0][1]
      d.severity = get_severity(scan_res[0][0])
      error_severity = d.severity
      lastValidErrorDesc = d
    else
      if lastValidErrorDesc
        lastValidErrorDesc.message += l.lstrip
        d.severity = lastValidErrorDesc.severity
      else
        d.severity = SEVERITY_ERROR
      end
    end
    res << d
  end
  [res, consoleOutput[0]]
end