@Override
	public void execute(MacroManager macroManager, SmartRobot robot, DataManager dataManager) {
		String rlhs = resolveVariable(macroManager, lhs, resolveLhs);
		String rrhs = resolveVariable(macroManager, rhs, resolveRhs);
		switch (operator) {
			case Equal:
				runCommand(macroManager, robot, dataManager, rlhs.equals(rrhs));
				break;
			case LessThan:
				runCommand(macroManager, robot, dataManager, rlhs.compareToIgnoreCase(rrhs) < 0);
				break;
			case LessThanEquals:
				runCommand(macroManager, robot, dataManager, rlhs.compareToIgnoreCase(rrhs) <= 0);
				break;
			case GreaterThan:
				runCommand(macroManager, robot, dataManager, rlhs.compareToIgnoreCase(rrhs) > 0);
				break;
			case GreaterThanEquals:
				runCommand(macroManager, robot, dataManager, rlhs.compareToIgnoreCase(rrhs) >= 0);
				break;
			case NotEqual:
				runCommand(macroManager, robot, dataManager, !rlhs.equals(rrhs));
				break;
		}
	}