Example #1
0
    def _act__prepare(self):
        failure_con = self._act_helper.failure_constructor(phase_step.ACT__PREPARE)

        execute_action_and_catch_internal_error_exception(
            self._act_phase_executor.prepare(failure_con.apply),
            failure_con
        )
Example #2
0
    def _act__validate_pre_sds(self):
        failure_con = self._act_helper.failure_constructor(phase_step.ACT__VALIDATE_PRE_SDS)

        def action():
            res = self._action_to_check.validate_pre_sds(self._instruction_environment_pre_sds)
            if not res.is_success:
                raise PhaseStepFailureException(
                    failure_con.apply(ExecutionFailureStatus(res.status.value),
                                      FailureDetails.new_message(res.failure_message))
                )

        execute_action_and_catch_internal_error_exception(action, failure_con)
Example #3
0
    def _validate_atc(self):
        failure_con = self._mk_atc_failure_con(
            phase_step.ACT__VALIDATE_SYMBOLS)

        def action():
            res = self._validation_executor.apply(self._action_to_check)
            if res is not None:
                raise PhaseStepFailureException(
                    failure_con.apply(
                        ExecutionFailureStatus(res.status.value),
                        FailureDetails.new_message(res.error_message)))

        execute_action_and_catch_internal_error_exception(action, failure_con)
Example #4
0
    def parse(self, actor: Actor) -> ActionToCheck:
        failure_constructor = self.failure_constructor(phase_step.ACT__PARSE)

        def parse_action() -> ActionToCheck:
            try:
                return actor.parse(self.instructions)
            except ParseException as ex:
                raise PhaseStepFailureException(
                    failure_constructor.apply(
                        ExecutionFailureStatus.SYNTAX_ERROR,
                        FailureDetails.new_message(ex.cause)
                    )
                )

        return phase_step_execution.execute_action_and_catch_internal_error_exception(parse_action,
                                                                                      failure_constructor)
Example #5
0
    def _act__execute(self):
        failure_con = self._act_helper.failure_constructor(phase_step.ACT__EXECUTE)

        return execute_action_and_catch_internal_error_exception(
            self._act_phase_executor.execute(failure_con.apply), failure_con)
Example #6
0
    def _act__validate_act_execution_input(self):
        failure_con = self._act_helper.failure_constructor(phase_step.ACT__VALIDATE_EXE_INPUT)

        execute_action_and_catch_internal_error_exception(
            self._act_phase_executor.validate_execution_info(failure_con.apply), failure_con)
Example #7
0
    def _act__validate_post_setup(self):
        failure_con = self._act_helper.failure_constructor(phase_step.ACT__VALIDATE_POST_SETUP)

        execute_action_and_catch_internal_error_exception(
            self._act_phase_executor.validate_post_setup(failure_con.apply), failure_con)