class DParse::Failure
Attributes
input[R]
origin[R]
pos[R]
Public Class Methods
new(input, pos, origin: nil)
click to toggle source
# File lib/d-parse/failure.rb, line 7 def initialize(input, pos, origin: nil) @input = input @pos = pos @origin = origin end
Public Instance Methods
full_message()
click to toggle source
# File lib/d-parse/failure.rb, line 21 def full_message "#{message} at line #{@pos.line + 1}, column #{@pos.column + 1}" end
inspect()
click to toggle source
# File lib/d-parse/failure.rb, line 42 def inspect to_s end
map()
click to toggle source
# File lib/d-parse/failure.rb, line 13 def map self end
message()
click to toggle source
# File lib/d-parse/failure.rb, line 17 def message @_message ||= 'expected ' + (@origin ? @origin.expectation_message : '?') end
pretty_message()
click to toggle source
# File lib/d-parse/failure.rb, line 25 def pretty_message line = (input.lines[@pos.line] || '').rstrip fancy_line = line.chars.map.with_index { |c, i| i == @pos.column ? "\e[31m" + c + "\e[0m" : c }.join lines = [full_message, '', fancy_line, "\e[31m" + ' ' * @pos.column + '↑' + "\e[0m"] lines.join("\n") end
success?()
click to toggle source
# File lib/d-parse/failure.rb, line 38 def success? false end
to_s()
click to toggle source
# File lib/d-parse/failure.rb, line 34 def to_s "Failure(#{@pos}; #{message})" end