class Rsec::PInt

primitive int parser commons

Public Instance Methods

_parse(ctx) click to toggle source
# File lib/rsec/parsers/prim.rb, line 57
def _parse ctx
  if (d = ctx.scan left)
    d = d.to_i @base
    return d if right.include?(d)
  end
  INVALID
end
int_pattern(sign_strategy, base) click to toggle source
# File lib/rsec/parsers/prim.rb, line 45
def int_pattern sign_strategy, base
  sign = sign_strategy_to_pattern sign_strategy
  if base > 10
    d_hi = 9
    char_range = "a-#{('a'.ord + base - 11).chr}"
  else
    d_hi = base - 1
    char_range = ''
  end
  /#{sign}[0-#{d_hi}#{char_range}]+/i
end