void TimesAssignmentStatementNode::Code(InstructionsClass &machinecode) { MSG(" CODING MINUSASSIGNMENTSTATEMENTNODE"); this->mIdentifierNode->CodeEvaluate(machinecode); this->mExpressionNode->CodeEvaluate(machinecode); machinecode.PopPopMulPush(); machinecode.PopAndStore(this->mIdentifierNode->GetIndex()); }
void TimesAssignmentStatementNode::Code(InstructionsClass &machineCode) { // push vars value on stack machineCode.PushVariable(in->GetIndex()); // put modifier on stack en->CodeEvaluate(machineCode); // multiply those values machineCode.PopPopMulPush(); // store result machineCode.PopAndStore(in->GetIndex()); }
void TimesNode::CodeEvaluate(InstructionsClass & machineCode) { lhs->CodeEvaluate(machineCode); rhs->CodeEvaluate(machineCode); machineCode.PopPopMulPush(); }
void TimesNode::CodeEvaluate(InstructionsClass &machinecode) { MSG("\tCODING TIMENODE"); mLeft->CodeEvaluate(machinecode); mRight->CodeEvaluate(machinecode); machinecode.PopPopMulPush(); }