class Rsec::JoinEven

keep only tokens

Public Instance Methods

_parse(ctx) click to toggle source
# File lib/rsec/parsers/join.rb, line 33
def _parse ctx
  e = left._parse ctx
  return INVALID if INVALID[e]
  ret = [e]
  loop do
    save_point = ctx.pos
    i = right._parse ctx
    if INVALID[i]
      ctx.pos = save_point
      break
    end

    t = left._parse ctx
    if INVALID[t]
      ctx.pos = save_point
      break
    end

    break if save_point == ctx.pos # stop if no advance, prevent infinite loop
    ret << t
  end # loop
  ret
end
unbox(&p) click to toggle source
# File lib/rsec/helpers.rb, line 378
def unbox &p
  Unbox[self].map p
end