Sha256: 0bc58bcec448d07f0fba91f716eddd0e320793ec8fd172a03e77ce10bdfe02a7

Contents?: true

Size: 680 Bytes

Versions: 3

Compression:

Stored size: 680 Bytes

Contents

use :node;

var Node = module.require('../Node').Node;

fn AssignmentExpression(left, operator, right) 
  extends Node {

  this.type = 'AssignmentExpression';
  this.operator = operator;
  
  this.left = left;
  this.left.parent = this;
  
  this.right = right;
  this.right.parent = this;
}

AssignmentExpression.prototype.codegen = () -> {
  if !super.codegen() {
    return;
  }
  
  this.left = this.left.codegen();
  this.right = this.right.codegen();
  
  return this;
};

AssignmentExpression.prototype.hasCallExpression = () -> {
  return this.left?.hasCallExpression() ||
         this.right?.hasCallExpression();
};

exports.AssignmentExpression = AssignmentExpression;

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
spider-src-0.1.7 lib/spider-src/support/spider/src/ast/expressions/AssignmentExpression.spider
spider-src-0.1.6 lib/spider-src/support/spider/src/ast/expressions/AssignmentExpression.spider
spider-src-0.1.5 lib/spider-src/support/spider/src/ast/expressions/AssignmentExpression.spider