BinaryExpression *ProgramParser::parse_binary(Expression *left, const Operator *oper)
{
- RefPtr<BinaryExpression> binary = new BinaryExpression;
+ RefPtr<BinaryExpression> binary = (oper->precedence==16 ? new Assignment : new BinaryExpression);
binary->left = left;
binary->oper = parse_token();
if(binary->oper=="[")
}
else
binary->right = parse_expression(oper->precedence+(oper->assoc==RIGHT_TO_LEFT));
- binary->assignment = (oper->precedence==16);
return binary.release();
}