Esempio n. 1
0
void IfStatement::execute(ProgramState &state) {
	bool evalTrue = false;
	switch (op) {
		case EQ:
			evalTrue = state.getValueOf(variableName) == value;
			break;
		case NEQ:
			evalTrue = state.getValueOf(variableName) != value;
			break;
		case LT:
			evalTrue = state.getValueOf(variableName) < value;
			break;
		case LEQ:
			evalTrue = state.getValueOf(variableName) <= value;
			break;
		case GT:
			evalTrue = state.getValueOf(variableName) > value;
			break;
		case GEQ:
			evalTrue = state.getValueOf(variableName) >= value;
			break;
	}
	if(evalTrue) {
		state.setPC(lineNumber);
	} 
	else {
		state.incrementPC();
	}
}
Esempio n. 2
0
void GotoStatement::execute(ProgramState &state) {
    state.setPC(lineNumber);
}