Module: Parsr::Rules::Range
- Defined in:
- lib/parsr/rules/range.rb
Constant Summary collapse
- NUMBER_PATTERN =
Regexp.union(Parsr::Rules::Float::PATTERN, Parsr::Rules::Integer::PATTERN)
- PATTERN =
/(#{NUMBER_PATTERN})(\.{2,3})(#{NUMBER_PATTERN})/
Class Method Summary collapse
Class Method Details
.cast(float_or_integer) ⇒ Object
15 16 17 |
# File 'lib/parsr/rules/range.rb', line 15 def cast(float_or_integer) Integer(float_or_integer) rescue Float(float_or_integer) end |
.match(scanner) ⇒ Object
8 9 10 11 12 13 |
# File 'lib/parsr/rules/range.rb', line 8 def match(scanner) if scanner.scan(PATTERN) scanner.matched =~ PATTERN Parsr::Token.new(Range.new(cast($1), cast($3), $2.length > 2)) end end |