class Opal::RubyParser::AssignNode
def generate(opts, level)
def generate(opts, level) if @lhs.is_a? IvarNode return "#{SelfNode.new.generate(opts, level)}['#{@lhs.value}'] = #{@rhs.generate(opts, LEVEL_EXPR)}" elsif @lhs.is_a? GvarNode return "VM.gs('#{@lhs.value}', #{@rhs.generate(opts, LEVEL_EXPR)})" elsif @lhs.is_a? IdentifierNode opts[:scope].ensure_variable @lhs.value return @lhs.value + " = " + @rhs.generate(opts, LEVEL_EXPR) elsif @lhs.is_a? ArefNode return AsetNode.new(@lhs.recv, @lhs.arefs, @rhs).process(opts, level) elsif @lhs.is_a? ConstantNode return "rb_vm_cs(self, '#{@lhs.value}', #{@rhs.generate(opts, LEVEL_EXPR)})" elsif @lhs.is_a? CallNode return CallNode.new(@lhs.recv, { :value => @lhs.mid + '=', :line => @line }, [[@rhs]]).generate(opts, level); else raise "Bad lhs for assign on #{@line}" end end
def initialize(lhs, rhs, assign = {})
def initialize(lhs, rhs, assign = {}) @line = lhs.line @lhs = lhs @rhs = rhs end