Sha256: 0f9bb41dd8a7385c91b92301e4e524a669fbb5945d6dbec5facfa4f3e03b55dc

Contents?: true

Size: 1.07 KB

Versions: 11

Compression:

Stored size: 1.07 KB

Contents

class Fancy
  class AST

    class TupleLiteral < Node
      attr_accessor :elements
      def initialize(line, *elements)
        super(line)
        @elements = elements
      end

      def bytecode(g)
        ms = MessageSend.new(@line,
                             Identifier.new(@line, "Rubinius::Tuple"),
                             Identifier.new(@line, "new"),
                             MessageArgs.new(@line,
                                             RubyArgs.new(@line,
                                                          ArrayLiteral.new(@line, Rubinius::AST::FixnumLiteral.new(@line, @elements.size)))))
        ms.bytecode(g)
        @elements.each_with_index do |e, i|
          g.dup
          MessageSend.new(@line,
                          Nothing.new,
                          Identifier.new(@line, "at:put:"),
                          MessageArgs.new(@line,
                                          Rubinius::AST::FixnumLiteral.new(@line, i),
                                          e)).bytecode(g)
          g.pop
        end
      end
    end

  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
fancy-0.10.0 boot/rbx-compiler/compiler/ast/tuple_literal.rb
fancy-0.9.0 boot/rbx-compiler/compiler/ast/tuple_literal.rb
fancy-0.8.0 boot/rbx-compiler/compiler/ast/tuple_literal.rb
fancy-0.7.0 boot/rbx-compiler/compiler/ast/tuple_literal.rb
fancy-0.6.0 boot/rbx-compiler/compiler/ast/tuple_literal.rb
fancy-0.5.0 boot/rbx-compiler/compiler/ast/tuple_literal.rb
fancy-0.4.0 boot/rbx-compiler/compiler/ast/tuple_literal.rb
fancy-0.3.3 boot/rbx-compiler/compiler/ast/tuple_literal.rb
fancy-0.3.2 boot/rbx-compiler/compiler/ast/tuple_literal.rb
fancy-0.3.1 boot/rbx-compiler/compiler/ast/tuple_literal.rb
fancy-0.3.0 boot/rbx-compiler/compiler/ast/tuple_literal.rb