;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (require 'cl-lib) #@151 Construct a tree 'move'. A move represents the number of steps to be taken along the X or forward-backward axis, and the Y or in-out axis. (fn X Y) (defalias 'symex-make-move #[514 "\300E\207" [move] 5 (#$ . 106)]) #@46 X (horizontal) component of MOVE. (fn MOVE) (defalias 'symex--move-x #[257 "\211A@\207" [] 2 (#$ . 331)]) #@44 Y (vertical) component of MOVE. (fn MOVE) (defalias 'symex--move-y #[257 "\3008\207" [2] 3 (#$ . 444)]) #@42 Check if OBJ specifies a move. (fn OBJ) (defalias 'symex-move-p #[257 "\3001\n\211@\301=0\207\210\302\207" [(error) move nil] 3 (#$ . 556)]) (defconst symex--move-zero (byte-code "\300\301\211\"\207" [symex-make-move 0] 3)) #@57 Check if two moves M1 and M2 are identical. (fn M1 M2) (defalias 'symex--are-moves-equal-p #[514 "\232\207" [] 4 (#$ . 788)]) #@116 Add MOVES together as vectors. This sum indicates height and distance along the branches of the tree. (fn MOVES) (defalias 'symex--add-moves #[257 "\211\203\211@A\301!\302\303!\303!\\\304!\304!\\\"\207\207" [symex--move-zero symex--add-moves symex-make-move symex--move-x symex--move-y] 9 (#$ . 924)]) #@250 Compute the length of the MOVE. This is most naturally meaningful when the move is entirely along one axis, but a result will be returned even if the move is across multiple axes, as standard linear vector magnitude computation is used. (fn MOVE) (defalias 'symex--move-length #[257 "\300!\301!\302U\204\207\207" [symex--move-x symex--move-y 0] 5 (#$ . 1244)]) #@377 A specification to check conditions before/after execution of a TRAVERSAL. PRE-CONDITION is a boolean function executed before the traversal. The traversal is not executed unless this returns true. POST-CONDITION is a boolean function executed after the traversal. The executed traversal is reversed if this returns false. (fn TRAVERSAL &key PRE-CONDITION POST-CONDITION) (defalias 'symex-make-precaution #[385 "\300\301\"A@\300\302\"A@\211\2037\211@\303>\203 \211AA\262\202 \304>A@\203.\305\262\202 \306\307@\"\210\202 \210\206=\310\206B\311\312F\207" [plist-member :pre-condition :post-condition (:pre-condition :post-condition :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:pre-condition :post-condition)" #[0 "\300\207" [t] 1] #[0 "\300\207" [t] 1] precaution] 10 (#$ . 1620)]) #@127 The traversal component of the PRECAUTION. This is the traversal that is to be executed 'with precautions'. (fn PRECAUTION) (defalias 'symex--precaution-traversal #[257 "\211A@\207" [] 2 (#$ . 2468)]) #@47 Pre-condition of PRECAUTION. (fn PRECAUTION) (defalias 'symex--precaution-pre-condition #[257 "\3008\207" [2] 3 (#$ . 2677)]) #@48 Post-condition of PRECAUTION. (fn PRECAUTION) (defalias 'symex--precaution-post-condition #[257 "\3008\207" [3] 3 (#$ . 2811)]) #@48 Check if OBJ specifies a precaution. (fn OBJ) (defalias 'symex-precaution-p #[257 "\3001\n\211@\301=0\207\210\302\207" [(error) precaution nil] 3 (#$ . 2947)]) #@149 A specification to repeat a TRAVERSAL TIMES times. If TIMES is nil, repeat indefinitely until the traversal fails. (fn TRAVERSAL &optional TIMES) (defalias 'symex-make-circuit #[513 "\300E\207" [circuit] 5 (#$ . 3116)]) #@113 Get the traversal component of the CIRCUIT. This is the traversal that is intended to be looped. (fn CIRCUIT) (defalias 'symex--circuit-traversal #[257 "\211A@\207" [] 2 (#$ . 3347)]) #@118 Get the times component of the CIRCUIT. This is the number of times the traversal should be repeated. (fn CIRCUIT) (defalias 'symex--circuit-times #[257 "\3008\207" [2] 3 (#$ . 3540)]) #@45 Check if OBJ specifies a circuit. (fn OBJ) (defalias 'symex-circuit-p #[257 "\3001\n\211@\301=0\207\210\302\207" [(error) circuit nil] 3 (#$ . 3734)]) #@64 Construct a maneuver from the given PHASES. (fn &rest PHASES) (defalias 'symex-make-maneuver #[128 "\300D\207" [maneuver] 3 (#$ . 3893)]) #@82 Get the phases of a MANEUVER. Each phase could be any traversal. (fn MANEUVER) (defalias 'symex--maneuver-phases #[257 "\211A@\207" [] 2 (#$ . 4039)]) #@46 Check if OBJ specifies a maneuver. (fn OBJ) (defalias 'symex-maneuver-p #[257 "\3001\n\211@\301=0\207\210\302\207" [(error) maneuver nil] 3 (#$ . 4198)]) #@516 Construct a detour. A detour consists of two components -- a TRAVERSAL that we wish to execute, and a REORIENTATION which is a transformation we want to apply prior to attempting the traversal. Both the reorientation as well as the traversal could be any type of traversal, for instance a detour or a maneuver. The reorientation is applied repeatedly and the traversal is re-attempted each time, until it succeeds. If the reorientation itself fails, then the detour fails as well. (fn REORIENTATION TRAVERSAL) (defalias 'symex-make-detour #[514 "\300E\207" [detour] 5 (#$ . 4361)]) #@61 Get the reorientation component of the DETOUR. (fn DETOUR) (defalias 'symex--detour-reorientation #[257 "\211A@\207" [] 2 (#$ . 4956)]) #@57 Get the traversal component of the DETOUR. (fn DETOUR) (defalias 'symex--detour-traversal #[257 "\3008\207" [2] 3 (#$ . 5099)]) #@44 Check if OBJ specifies a detour. (fn OBJ) (defalias 'symex-detour-p #[257 "\3001\n\211@\301=0\207\210\302\207" [(error) detour nil] 3 (#$ . 5235)]) #@138 Construct a protocol abstraction for the given OPTIONS. An option could be either a maneuver, or a protocol itself. (fn &rest OPTIONS) (defalias 'symex-make-protocol #[128 "\300D\207" [protocol] 3 (#$ . 5392)]) #@70 Get the set of options that are part of the PROTOCOL. (fn PROTOCOL) (defalias 'symex--protocol-options #[257 "\211A@\207" [] 2 (#$ . 5612)]) #@46 Check if OBJ specifies a protocol. (fn OBJ) (defalias 'symex-protocol-p #[257 "\3001\n\211@\301=0\207\210\302\207" [(error) protocol nil] 3 (#$ . 5760)]) #@266 A specification to choose between two traversals. If CONDITION is true, then the CONSEQUENT traversal is executed, otherwise the ALTERNATIVE traversal is executed. This is analogous to an `if` statement in common languages. (fn CONDITION CONSEQUENT ALTERNATIVE) (defalias 'symex-make-decision #[771 "\300F\207" [decision] 7 (#$ . 5923)]) #@155 Get the condition component of the DECISION. This is the condition upon which the decision to choose one or the other traversal is based. (fn DECISION) (defalias 'symex--decision-condition #[257 "\211A@\207" [] 2 (#$ . 6274)]) #@131 Get the consequent component of the DECISION. This is the traversal that will be chosen if the condition is true. (fn DECISION) (defalias 'symex--decision-consequent #[257 "\3008\207" [2] 3 (#$ . 6510)]) #@133 Get the alternative component of the DECISION. This is the traversal that will be chosen if the condition is false. (fn DECISION) (defalias 'symex--decision-alternative #[257 "\3008\207" [3] 3 (#$ . 6724)]) #@46 Check if OBJ specifies a decision. (fn OBJ) (defalias 'symex-decision-p #[257 "\3001\n\211@\301=0\207\210\302\207" [(error) decision nil] 3 (#$ . 6940)]) #@47 Check if OBJ specifies a traversal. (fn OBJ) (defalias 'symex-traversal-p #[257 "\300!\206'\301!\206'\302!\206'\303!\206'\304!\206'\305!\206'\306!\207" [symex-move-p symex-maneuver-p symex-circuit-p symex-detour-p symex-precaution-p symex-protocol-p symex-decision-p] 3 (#$ . 7102)]) (provide 'symex-data)