class FilterLexer::ParseException

Public Class Methods

new(parser) click to toggle source
# File lib/filter_lexer/exceptions.rb, line 3
def initialize(parser)
        @index = parser.failure_index
        @input = parser.input
end

Public Instance Methods

context() click to toggle source
# File lib/filter_lexer/exceptions.rb, line 12
def context
        size = @input.size
        i1 = [0, @index - 40].max
        i2 = [size, @index + 40].min

        context = @input.slice(i1..i2)
        context = "...#{context}" if i1 > 0
        context = "#{context}..." if i2 < size

        relpos = @index - i1
        relpos += 1 if i1 > 0

        return context + "\r\n" + ' ' * relpos + '^'
end
message() click to toggle source
# File lib/filter_lexer/exceptions.rb, line 8
def message
        return "Parse error at index #{@index}"
end