# File lib/puppet/parser/scope.rb, line 72
72:   def self.number?(value)
73:     return nil unless value.is_a?(Fixnum) or value.is_a?(Bignum) or value.is_a?(Float) or value.is_a?(String)
74: 
75:     if value.is_a?(String)
76:       if value =~ /^-?\d+(:?\.\d+|(:?\.\d+)?e\d+)$/
77:         return value.to_f
78:       elsif value =~ /^0x[0-9a-f]+$/i
79:         return value.to_i(16)
80:       elsif value =~ /^0[0-7]+$/
81:         return value.to_i(8)
82:       elsif value =~ /^-?\d+$/
83:         return value.to_i
84:       else
85:         return nil
86:       end
87:     end
88:     # it is one of Fixnum,Bignum or Float
89:     value
90:   end