コード例 #1
0
ファイル: Node.cpp プロジェクト: kevbateman/cs4550
void MinusAssignmentStatementNode::Code(InstructionsClass &machinecode) {
	MSG("    CODING MINUSASSIGNMENTSTATEMENTNODE");
	this->mIdentifierNode->CodeEvaluate(machinecode);
	this->mExpressionNode->CodeEvaluate(machinecode);
	machinecode.PopPopSubPush();
	machinecode.PopAndStore(this->mIdentifierNode->GetIndex());
}
コード例 #2
0
ファイル: Node.cpp プロジェクト: i2c2-caj/Compiler
void MinusAssignmentStatementNode::Code(InstructionsClass &machineCode) {
	// push vars value on stack
	machineCode.PushVariable(in->GetIndex());
	// put modifier on stack
	en->CodeEvaluate(machineCode);
	// subtract those values
	machineCode.PopPopSubPush();
	// store result
	machineCode.PopAndStore(in->GetIndex());
}
コード例 #3
0
ファイル: Node.cpp プロジェクト: i2c2-caj/Compiler
void MinusNode::CodeEvaluate(InstructionsClass & machineCode) {
	lhs->CodeEvaluate(machineCode);
	rhs->CodeEvaluate(machineCode);
	machineCode.PopPopSubPush();
}
コード例 #4
0
ファイル: Node.cpp プロジェクト: kevbateman/cs4550
void MinusNode::CodeEvaluate(InstructionsClass &machinecode) {
	MSG("\tCODING MINUSNODE");
	mLeft->CodeEvaluate(machinecode);
	mRight->CodeEvaluate(machinecode);
	machinecode.PopPopSubPush();
}