# File lib/puppet/parser/scope.rb, line 48
48:     def self.number?(value)
49:         unless value.is_a?(Fixnum) or value.is_a?(Bignum) or value.is_a?(Float) or value.is_a?(String)
50:             return nil
51:         end
52: 
53:         if value.is_a?(String)
54:             if value =~ /^-?\d+(:?\.\d+|(:?\.\d+)?e\d+)$/
55:                 return value.to_f
56:             elsif value =~ /^0x[0-9a-f]+$/i
57:                 return value.to_i(16)
58:             elsif value =~ /^0[0-7]+$/
59:                 return value.to_i(8)
60:             elsif value =~ /^-?\d+$/
61:                 return value.to_i
62:             else
63:                 return nil
64:             end
65:         end
66:         # it is one of Fixnum,Bignum or Float
67:         return value
68:     end