double precision float parser
# File lib/rsec/parsers/prim.rb, line 28 def initialize sign_strategy, is_hex self.left = float_pattern sign_strategy, is_hex end
# File lib/rsec/parsers/prim.rb, line 32 def _parse ctx if (d = ctx.scan left) d = Float(d) return d if d.finite? end INVALID end
# File lib/rsec/parsers/prim.rb, line 19 def float_pattern sign_strategy, is_hex sign = sign_strategy_to_pattern sign_strategy if is_hex /#{sign}0x[\da-f]+(\.[\da-f]+)?/ else /#{sign}\d+(\.\d+)?(e[\+\-]?\d+)?/ end end