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