;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\207" [require cl-lib symex-data symex-primitives symex-computations] 2) #@580 Execute the specified MOVE at the current point location in the tree. Evaluates to the actual move executed or nil if no move was executed. Optional argument COMPUTATION currently unused. This interface is an 'abstraction barrier' to keep the details of the elementary navigation of symexes as a black box. The implementation of these elementary operations could be changed in the future (e.g. to incorporate an explicit AST representation for greater precision) without requiring changes to higher-level code that uses the present interface. (fn MOVE &optional COMPUTATION) (defalias 'symex--execute-tree-move #[513 "\300!\301!\302V\203\303!\207\302W\203\304\305!!\207\211\302V\203&\306!\207\211\302W\2051\307\305!!\207" [symex--move-x symex--move-y 0 symex--forward symex--backward abs symex--enter symex--exit] 7 (#$ . 221)]) #@249 Execute the MOVE as a traversal. This returns a list of moves (singleton, in this case) rather than the executed move itself. TODO: not sure this is needed anymore. Optional argument COMPUTATION currently unused. (fn MOVE &optional COMPUTATION) (defalias 'symex-execute-move #[513 "\300\"\211\205\n\211C\207" [symex--execute-tree-move] 5 (#$ . 1075)]) #@242 Move forward COUNT symexes. This is an internal utility that avoids any user-level concerns such as symex selection via advice. This should be used in all internal operations that are not primarily user-directed. (fn &optional (COUNT 1)) (defalias 'symex--go-forward #[128 "\211\203 \211A\262\242\202\300\203\301\302\303GTD\"\210\304\305\306\"!\207" [1 signal wrong-number-of-arguments symex--go-forward symex--execute-tree-move symex-make-move 0] 6 (#$ . 1440)]) #@244 Move backwards COUNT symexes. This is an internal utility that avoids any user-level concerns such as symex selection via advice. This should be used in all internal operations that are not primarily user-directed. (fn &optional (COUNT 1)) (defalias 'symex--go-backward #[128 "\211\203 \211A\262\242\202\300\203\301\302\303GTD\"\210\304\305[\306\"!\207" [1 signal wrong-number-of-arguments symex--go-backward symex--execute-tree-move symex-make-move 0] 6 (#$ . 1924)]) #@237 Move up COUNT symexes. This is an internal utility that avoids any user-level concerns such as symex selection via advice. This should be used in all internal operations that are not primarily user-directed. (fn &optional (COUNT 1)) (defalias 'symex--go-up #[128 "\211\203 \211A\262\242\202\300\203\301\302\303GTD\"\210\304\305\306\"!\207" [1 signal wrong-number-of-arguments symex--go-up symex--execute-tree-move symex-make-move 0] 6 (#$ . 2413)]) #@239 Move down COUNT symexes. This is an internal utility that avoids any user-level concerns such as symex selection via advice. This should be used in all internal operations that are not primarily user-directed. (fn &optional (COUNT 1)) (defalias 'symex--go-down #[128 "\211\203 \211A\262\242\202\300\203\301\302\303GTD\"\210\304\305\306[\"!\207" [1 signal wrong-number-of-arguments symex--go-down symex--execute-tree-move symex-make-move 0] 6 (#$ . 2882)]) #@55 Move forward COUNT symexes. (fn &optional (COUNT 1)) (defalias 'symex-go-forward #[128 "\211\203 \211A\262\242\202\300\203\301\302\303GTD\"\210\304\305\306\"!\207" [1 signal wrong-number-of-arguments symex-go-forward symex--execute-tree-move symex-make-move 0] 6 (#$ . 3357) nil]) #@56 Move backward COUNT symexes. (fn &optional (COUNT 1)) (defalias 'symex-go-backward #[128 "\211\203 \211A\262\242\202\300\203\301\302\303GTD\"\210\304\305[\306\"!\207" [1 signal wrong-number-of-arguments symex-go-backward symex--execute-tree-move symex-make-move 0] 6 (#$ . 3655) nil]) #@50 Move up COUNT symexes. (fn &optional (COUNT 1)) (defalias 'symex-go-up #[128 "\211\203 \211A\262\242\202\300\203\301\302\303GTD\"\210\304\305\306\"!\207" [1 signal wrong-number-of-arguments symex-go-up symex--execute-tree-move symex-make-move 0] 6 (#$ . 3957) nil]) #@52 Move down COUNT symexes. (fn &optional (COUNT 1)) (defalias 'symex-go-down #[128 "\211\203 \211A\262\242\202\300\203\301\302\303GTD\"\210\304\305\306[\"!\207" [1 signal wrong-number-of-arguments symex-go-down symex--execute-tree-move symex-make-move 0] 6 (#$ . 4240) nil]) #@169 Combine component computed results A and B into an aggregate result. The aggregate result is constructed according to the specified COMPUTATION. (fn A B COMPUTATION) (defalias 'symex--compute-results #[771 "\300!\"\207" [symex--computation-act] 6 (#$ . 4531)]) #@309 Attempt to execute a given MANEUVER. Attempts the maneuver in the order of its phases, accepting partial completion of phases. If any phase fails entirely, then the maneuver it is part of is terminated at that step. Evaluates to a COMPUTATION on the maneuver actually executed. (fn MANEUVER COMPUTATION) (defalias 'symex-execute-maneuver #[514 "\300!\211\205'\211@A\301\"\211\205#\301\302\303\"\"\304#\262\262\266\202\207" [symex--maneuver-phases symex-execute-traversal apply symex-make-maneuver symex--compute-results] 11 (#$ . 4804)]) #@152 Execute a CIRCUIT. This repeats some traversal as specified. Evaluates to a COMPUTATION on the maneuver actually executed. (fn CIRCUIT COMPUTATION) (defalias 'symex-execute-circuit #[514 "\300!\301!\211\203\211\302V\2056\303\"\211\2054\203!S\202\"\303\304\"\"\305#\262\262\262\207" [symex--circuit-traversal symex--circuit-times 0 symex-execute-traversal symex-make-circuit symex--compute-results] 11 (#$ . 5368)]) #@306 Execute the DETOUR. Apply a reorientation and then attempt the traversal. If the traversal fails, then the reorientation is attempted as many times as necessary until either it succeeds, or the reorientation fails. Evaluates to a COMPUTATION on the maneuver actually executed. (fn DETOUR COMPUTATION) (defalias 'symex-execute-detour #[514 "\300!\301!\302!\211\205%\303\"\302\"\211\205!\304#\262\262\207" [symex--detour-reorientation symex--detour-traversal symex-execute-traversal symex-make-protocol symex--compute-results] 11 (#$ . 5817)]) #@286 Attempt to execute a given PRECAUTION. The traversal is only executed if PRE-CONDITION holds, and is reversed if POST-CONDITION does not hold after the provisional execution of the traversal. Evaluates to a COMPUTATION on the maneuver actually executed. (fn PRECAUTION COMPUTATION) (defalias 'symex-execute-precaution #[514 "\300!\301!\302! \205\303\" \205\211\262\207" [symex--precaution-traversal symex--precaution-pre-condition symex--precaution-post-condition symex-execute-traversal] 8 (#$ . 6387)]) #@227 Attempt to execute a given PROTOCOL. Given a protocol including a set of options, attempt to execute them in order until one succeeds. Evaluates to a COMPUTATION on the maneuver actually executed. (fn PROTOCOL COMPUTATION) (defalias 'symex-execute-protocol #[514 "\300!\211\205#\211@A\301\"\211\203\211\202\301\302\303\"\"\262\266\202\207" [symex--protocol-options symex-execute-traversal apply symex-make-protocol] 10 (#$ . 6914)]) #@265 Attempt to execute a given DECISION. The consequent traversal is executed if the condition holds, and the alternative traversal is executed if the condition does not hold. Evaluates to a COMPUTATION on the traversal actually executed. (fn DECISION COMPUTATION) (defalias 'symex-execute-decision #[514 "\300!\301!\302! \203\303\"\207\303\"\207" [symex--decision-condition symex--decision-consequent symex--decision-alternative symex-execute-traversal] 8 (#$ . 7370)]) #@226 Execute a tree TRAVERSAL. SIDE-EFFECT is the operation to perform as part of the traversal (none by default). Evaluates to a COMPUTATION on the traversal actually executed. (fn TRAVERSAL &optional COMPUTATION SIDE-EFFECT) (defalias 'symex-execute-traversal #[769 "\203\202 \203\202\301`\302!\203\"\303\"\202~\304!\2031\305\"\202~\306!\203@\307\"\202~\310!\203O\311\"\202~\312!\203^\313\"\202~\314!\203m\315\"\202~\316!\203|\317\"\202~ \320!!\211\203\213 \210\207b\210\207" [symex--computation-default symex--side-effect-noop symex-maneuver-p symex-execute-maneuver symex-circuit-p symex-execute-circuit symex-protocol-p symex-execute-protocol symex-precaution-p symex-execute-precaution symex-detour-p symex-execute-detour symex-decision-p symex-execute-decision symex-move-p symex-execute-move symex--computation-perceive] 9 (#$ . 7857)]) (provide 'symex-evaluator)