Sha256: f4261c1491a9847522b624249ab6086637128a37798f91447f11f8413f4161e4

Contents?: true

Size: 808 Bytes

Versions: 32

Compression:

Stored size: 808 Bytes

Contents

# frozen_string_literal: true

class Code
  class Node
    class SquareBracket < Node
      def initialize(parsed)
        @left = Node::Statement.new(parsed.delete(:left))
        @statements =
          parsed
            .delete(:statements)
            .map { |statement| Node::Statement.new(statement) }

        super(parsed)
      end

      def evaluate(**args)
        left = @left.evaluate(**args)

        @statements.reduce(left) do |object, statement|
          object.code_fetch(statement.evaluate(**args))
        end
      end

      def resolve(**args)
        left = @left.resolve(**args)

        list = Object::IdentifierList.new([left])

        @statements.each do |statement|
          list.code_append(statement.evaluate(**args))
        end

        list
      end
    end
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
code-ruby-0.10.4 lib/code/node/square_bracket.rb
code-ruby-0.10.3 lib/code/node/square_bracket.rb
code-ruby-0.10.2 lib/code/node/square_bracket.rb
code-ruby-0.10.1 lib/code/node/square_bracket.rb
code-ruby-0.10.0 lib/code/node/square_bracket.rb
code-ruby-0.9.3 lib/code/node/square_bracket.rb
code-ruby-0.9.2 lib/code/node/square_bracket.rb
code-ruby-0.9.1 lib/code/node/square_bracket.rb
code-ruby-0.9.0 lib/code/node/square_bracket.rb
code-ruby-0.8.5 lib/code/node/square_bracket.rb
code-ruby-0.8.4 lib/code/node/square_bracket.rb
code-ruby-0.8.3 lib/code/node/square_bracket.rb
code-ruby-0.8.2 lib/code/node/square_bracket.rb
code-ruby-0.8.1 lib/code/node/square_bracket.rb
code-ruby-0.8.0 lib/code/node/square_bracket.rb
code-ruby-0.7.8 lib/code/node/square_bracket.rb
code-ruby-0.7.7 lib/code/node/square_bracket.rb
code-ruby-0.7.6 lib/code/node/square_bracket.rb
code-ruby-0.7.5 lib/code/node/square_bracket.rb
code-ruby-0.7.4 lib/code/node/square_bracket.rb