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;