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