class Rsec::JoinOdd

keep only inters NOTE if only 1 token matches, return empty array

Public Instance Methods

_parse(ctx) click to toggle source
# File lib/rsec/parsers/join.rb, line 61
def _parse ctx
  e = left._parse ctx
  return INVALID if INVALID[e]
  ret = []
  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 << i
  end # loop
  ret
end
unbox(&p) click to toggle source
# File lib/rsec/helpers.rb, line 385
def unbox &p
  Unbox[self].map p
end