コード例 #1
0
ファイル: Node.cpp プロジェクト: kevbateman/cs4550
void PlusAssignmentStatementNode::Code(InstructionsClass &machinecode) {
	MSG("    CODING PLUSASSIGNMENTSTATEMENTNODE");
	this->mIdentifierNode->CodeEvaluate(machinecode);
	this->mExpressionNode->CodeEvaluate(machinecode);
	machinecode.PopPopAddPush();
	machinecode.PopAndStore(this->mIdentifierNode->GetIndex());
}
コード例 #2
0
ファイル: Node.cpp プロジェクト: i2c2-caj/Compiler
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());
}
コード例 #3
0
ファイル: Node.cpp プロジェクト: i2c2-caj/Compiler
void PlusNode::CodeEvaluate(InstructionsClass & machineCode) {
	lhs->CodeEvaluate(machineCode);
	rhs->CodeEvaluate(machineCode);
	machineCode.PopPopAddPush();
}
コード例 #4
0
ファイル: Node.cpp プロジェクト: kevbateman/cs4550
void PlusNode::CodeEvaluate(InstructionsClass &machinecode) {
	MSG("\tCODING PLUSNODE");
	mLeft->CodeEvaluate(machinecode);
	mRight->CodeEvaluate(machinecode);
	machinecode.PopPopAddPush();
}