Esempio n. 1
0
void TimesAssignmentStatementNode::Code(InstructionsClass &machinecode) {
	MSG("    CODING MINUSASSIGNMENTSTATEMENTNODE");
	this->mIdentifierNode->CodeEvaluate(machinecode);
	this->mExpressionNode->CodeEvaluate(machinecode);
	machinecode.PopPopMulPush();
	machinecode.PopAndStore(this->mIdentifierNode->GetIndex());
}
Esempio n. 2
0
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());
}
Esempio n. 3
0
void TimesNode::CodeEvaluate(InstructionsClass & machineCode) {
	lhs->CodeEvaluate(machineCode);
	rhs->CodeEvaluate(machineCode);
	machineCode.PopPopMulPush();
}
Esempio n. 4
0
void TimesNode::CodeEvaluate(InstructionsClass &machinecode) {
	MSG("\tCODING TIMENODE");
	mLeft->CodeEvaluate(machinecode);
	mRight->CodeEvaluate(machinecode);
	machinecode.PopPopMulPush();
}