Sha256: f2fe0ebbac9b74374d500f759ce9c97cbd1a1825b3128cc390b9ba0182bc7028

Contents?: true

Size: 689 Bytes

Versions: 21

Compression:

Stored size: 689 Bytes

Contents

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

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

        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: exponent)
          else
            ::Code::Object::Decimal.new(@whole, exponent: exponent)
          end
        else
          ::Code::Object::Integer.new(@whole.to_i)
        end
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 3 rubygems

Version Path
template-ruby-0.5.6 lib/code/node/base_10.rb
language-ruby-0.5.6 lib/code/node/base_10.rb
code-ruby-0.5.6 lib/code/node/base_10.rb
template-ruby-0.5.5 lib/code/node/base_10.rb
language-ruby-0.5.5 lib/code/node/base_10.rb
code-ruby-0.5.5 lib/code/node/base_10.rb
template-ruby-0.5.4 lib/code/node/base_10.rb
language-ruby-0.5.4 lib/code/node/base_10.rb
code-ruby-0.5.4 lib/code/node/base_10.rb
template-ruby-0.5.3 lib/code/node/base_10.rb
language-ruby-0.5.3 lib/code/node/base_10.rb
code-ruby-0.5.3 lib/code/node/base_10.rb
template-ruby-0.5.2 lib/code/node/base_10.rb
language-ruby-0.5.2 lib/code/node/base_10.rb
code-ruby-0.5.2 lib/code/node/base_10.rb
language-ruby-0.5.1 lib/code/node/base_10.rb
template-ruby-0.5.1 lib/code/node/base_10.rb
code-ruby-0.5.1 lib/code/node/base_10.rb
template-ruby-0.5.0 lib/code/node/base_10.rb
language-ruby-0.5.0 lib/code/node/base_10.rb