class Rsec::Fail

set expect tokens for parsing error in ctx<br/> if left failed, the error would be registered

Public Class Methods

[](left, tokens) click to toggle source
Calls superclass method
# File lib/rsec/parsers/misc.rb, line 15
def Fail.[] left, tokens
  # TODO mutex
  if @mask_bit > 1000
    raise "You've created too many fail parsers, If it is your intention, call Rsec::Fail.reset when previous expect settings can be thrown away."
  end
  parser = super(left, (1<<@mask_bit))
  @token_table[@mask_bit] = tokens
  @mask_bit += 1
  parser
end
get_tokens(mask) click to toggle source
# File lib/rsec/parsers/misc.rb, line 32
def Fail.get_tokens mask
  res = []
  @token_table.each_with_index do |tokens, idx|
    next unless tokens
    if (mask & (1<<idx)) > 0
      res += tokens
    end
  end
  res.uniq!
  res
end
reset() click to toggle source
# File lib/rsec/parsers/misc.rb, line 26
def Fail.reset
  @mask_bit = 0
  @token_table = []
end

Public Instance Methods

_parse(ctx) click to toggle source
# File lib/rsec/parsers/misc.rb, line 44
def _parse ctx
  res = left()._parse ctx
  ctx.on_fail right if INVALID[res]
  res
end