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(); } }