class Paco::Context

Attributes

callstack[R]
input[R]
last_pos[R]
pos[RW]

Public Class Methods

new(input, pos: 0, with_callstack: false) click to toggle source
# File lib/paco/context.rb, line 11
def initialize(input, pos: 0, with_callstack: false)
  @input = input
  @pos = pos
  @callstack = Callstack.new if with_callstack
end

Public Instance Methods

eof?() click to toggle source
# File lib/paco/context.rb, line 25
def eof?
  pos >= input.length
end
failure_parse(parser) click to toggle source

@param [Paco::Parser] parser

# File lib/paco/context.rb, line 36
def failure_parse(parser)
  @callstack&.failure(pos: pos, parser: parser.desc)
end
index(from = nil) click to toggle source

@param [Integer] from @return [Paco::Index]

# File lib/paco/context.rb, line 31
def index(from = nil)
  Index.calculate(input: input, pos: from || pos)
end
read(n) click to toggle source
# File lib/paco/context.rb, line 17
def read(n)
  input[pos, n]
end
read_all() click to toggle source
# File lib/paco/context.rb, line 21
def read_all
  input[pos..]
end
start_parse(parser) click to toggle source

@param [Paco::Parser] parser

# File lib/paco/context.rb, line 41
def start_parse(parser)
  @callstack&.start(pos: pos, parser: parser.desc)
end
success_parse(result, parser) click to toggle source

@param [Object] result @param [Paco::Parser] parser

# File lib/paco/context.rb, line 47
def success_parse(result, parser)
  @callstack&.success(pos: pos, result: result, parser: parser.desc)
end