Sha256: 00e36aa723b53495757944c2bc0b015b7654a4e224466705d9d624a6dab6909b

Contents?: true

Size: 710 Bytes

Versions: 14

Compression:

Stored size: 710 Bytes

Contents

# frozen_string_literal: true

class Code
  class Node
    class Base10 < Node
      def initialize(parsed)
        @whole = parsed.delete(:whole)

        @exponent =
          Node::Statement.new(parsed.delete(:exponent)) if parsed.key?(
          :exponent
        )

        super(parsed)
      end

      def evaluate(**args)
        if @exponent
          exponent = @exponent.evaluate(**args)

          if exponent.is_a?(::Code::Object::Integer)
            ::Code::Object::Integer.new(@whole.to_i, exponent:)
          else
            ::Code::Object::Decimal.new(@whole, exponent:)
          end
        else
          ::Code::Object::Integer.new(@whole.to_i)
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
code-ruby-0.9.3 lib/code/node/base_10.rb
code-ruby-0.9.2 lib/code/node/base_10.rb
code-ruby-0.9.1 lib/code/node/base_10.rb
code-ruby-0.9.0 lib/code/node/base_10.rb
code-ruby-0.8.5 lib/code/node/base_10.rb
code-ruby-0.8.4 lib/code/node/base_10.rb
code-ruby-0.8.3 lib/code/node/base_10.rb
code-ruby-0.8.2 lib/code/node/base_10.rb
code-ruby-0.8.1 lib/code/node/base_10.rb
code-ruby-0.8.0 lib/code/node/base_10.rb
code-ruby-0.7.8 lib/code/node/base_10.rb
code-ruby-0.7.7 lib/code/node/base_10.rb
code-ruby-0.7.6 lib/code/node/base_10.rb
code-ruby-0.7.5 lib/code/node/base_10.rb