1module Psych
2  class Error < RuntimeError
3  end
4
5  class SyntaxError < Error
6    attr_reader :file, :line, :column, :offset, :problem, :context
7
8    def initialize file, line, col, offset, problem, context
9      err      = [problem, context].compact.join ' '
10      filename = file || '<unknown>'
11      message  = "(%s): %s at line %d column %d" % [filename, err, line, col]
12
13      @file    = file
14      @line    = line
15      @column  = col
16      @offset  = offset
17      @problem = problem
18      @context = context
19      super(message)
20    end
21  end
22end
23