concepts.dm.crow.parsers.cdl_symbolic_execution.SymbolicExecutionMode#

class SymbolicExecutionMode[source]#

Bases: JacEnum

The execution mode of the symbolic execution engine. Different modes have different supported instructions.

  • FUNCTIONAL: the functional mode, which supports only assignments, function calls, and return statements.

  • DERIVED: the derived mode, which supports only function calls and if-else conditions.

  • BEHAVIOR: the behavior mode corresponds to the “body” of a behavior rule, which supports everything except for return statements and feature assignments.

  • EFFECT: the effect mode corresponds to the “effect” of a behavior rule, which supports only variable / feature assignments and function calls.

Methods

from_string(value)

type_name()

Return the type name of the enum.

choice_names()

Returns the list of the name of all possible choices.

choice_objs()

Returns the list of the object of all possible choices.

choice_values()

Returns the list of the value of all possible choices.

is_valid(value)

Check if the value is a valid choice.

assert_valid(value)

Assert if the value is a valid choice.

Attributes

classmethod __getitem__(name)#

Return the member matching name.

classmethod __iter__()#

Return members in definition order.

classmethod __len__()#

Return the number of members (no aliases)

__new__(value)#
classmethod assert_valid(value)#

Assert if the value is a valid choice.

classmethod choice_names()#

Returns the list of the name of all possible choices.

classmethod choice_objs()#

Returns the list of the object of all possible choices.

classmethod choice_values()#

Returns the list of the value of all possible choices.

classmethod from_string(value)#
Parameters:

value (str | JacEnum)

Return type:

JacEnum

classmethod is_valid(value)#

Check if the value is a valid choice.

classmethod type_name()#

Return the type name of the enum.

BEHAVIOR = 'behavior'#
DERIVED = 'derived'#
EFFECT = 'effect'#
FUNCTIONAL = 'functional'#
HEURISTIC = 'heuristic'#
property support_achieve_statements: bool#
property support_assign_statements: bool#
property support_expr_statements: bool#
property support_foreach_statements: bool#
property support_if_statements: bool#
property support_misc_behavior_body_statements#
property support_ordering_statements: bool#
property support_return_statements: bool#
property support_while_statements: bool#