void PlusAssignmentStatementNode::Code(InstructionsClass &machinecode) { MSG(" CODING PLUSASSIGNMENTSTATEMENTNODE"); this->mIdentifierNode->CodeEvaluate(machinecode); this->mExpressionNode->CodeEvaluate(machinecode); machinecode.PopPopAddPush(); machinecode.PopAndStore(this->mIdentifierNode->GetIndex()); }
void PlusAssignmentStatementNode::Code(InstructionsClass &machineCode) { // push vars value on stack machineCode.PushVariable(in->GetIndex()); // put modifier on stack en->CodeEvaluate(machineCode); // add those values machineCode.PopPopAddPush(); // store result machineCode.PopAndStore(in->GetIndex()); }
void PlusNode::CodeEvaluate(InstructionsClass & machineCode) { lhs->CodeEvaluate(machineCode); rhs->CodeEvaluate(machineCode); machineCode.PopPopAddPush(); }
void PlusNode::CodeEvaluate(InstructionsClass &machinecode) { MSG("\tCODING PLUSNODE"); mLeft->CodeEvaluate(machinecode); mRight->CodeEvaluate(machinecode); machinecode.PopPopAddPush(); }