;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\300\302!\207" [require cl-lib symex-data] 2) #@54 Convert an object OBJ to the integer type. (fn OBJ) (defalias 'symex--type-integer #[257 "\211\250\203\207\211;\203\300!\207\211<\203\211G\207\301\302\"\207" [string-to-number error "Unexpected type %s in integer type conversion!"] 4 (#$ . 158)]) #@51 Convert an object OBJ to the list type. (fn OBJ) (defalias 'symex--type-list #[257 "\300!\203 \211C\207\211<\203\207\211C\207" [symex-traversal-p] 3 (#$ . 420)]) #@1358 A computation to be performed as part of a traversal. COMPONENTS - a list of nested computations that will each process the input independently and produce a result. These results will then be filtered and finally considered collectively to produce a decision. PERCEIVE - the function to be applied to the result of each traversal step, which transforms it to the perceived type. SELECT - a predicate function that is applied to perceived values in order to select the subset of perceptions that will be operated on by nested computations. FILTER - a predicate function to be applied to results from nested computations to select those that will factor into the decision. DECIDE - a binary function to be applied in combining results from nested computations (each of the 'perceived' type) to yield the provisional result (also of the perceived type). EXPRESS - a function to transform data of the perceived type (e.g. the type produced by the decision) to the application type (the type that can be used by the application). ACT - a binary function to be applied in combining results from the overall computation (each of the 'expressed' type) to yield the final result (also of the expressed type). (fn &key COMPONENTS (PERCEIVE #\='identity) (SELECT #\='identity) (FILTER #\='identity) (DECIDE #\='identity) (EXPRESS #\='identity) (ACT #\='identity)) (defalias 'symex-make-computation #[128 "\300\301\"A@\300\302\"\206\303A@\300\304\"\206\305A@\300\306\"\206\"\307A@\300\310\"\206,\311A@\300\312\"\2067\313A@\300\314\"\206B\315A@\211\203q\211@\316>\203Y\211AA\262\202F\317 >A@\203h\320\262\202F\321\322@\"\210\202F\210\323\257\207" [plist-member :components :perceive (nil identity) :select (nil identity) :filter (nil identity) :decide (nil identity) :express (nil identity) :act (nil identity) (:components :perceive :select :filter :decide :express :act :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:components :perceive :select :filter :decide :express :act)" computation] 16 (#$ . 595)]) #@54 The components of the COMPUTATION. (fn COMPUTATION) (defalias 'symex--computation-components #[257 "\211A@\207" [] 2 (#$ . 2679)]) #@64 The perception procedure of the COMPUTATION. (fn COMPUTATION) (defalias 'symex--computation-perceive #[257 "\3008\207" [2] 3 (#$ . 2817)]) #@63 The selection procedure of the COMPUTATION. (fn COMPUTATION) (defalias 'symex--computation-select #[257 "\3008\207" [3] 3 (#$ . 2964)]) #@74 The filtration/redaction procedure of the COMPUTATION. (fn COMPUTATION) (defalias 'symex--computation-filter #[257 "\3008\207" [4] 3 (#$ . 3108)]) #@62 The decision procedure of the COMPUTATION. (fn COMPUTATION) (defalias 'symex--computation-decide #[257 "\3008\207" [5] 3 (#$ . 3263)]) #@64 The expression procedure of the COMPUTATION. (fn COMPUTATION) (defalias 'symex--computation-express #[257 "\3008\207" [6] 3 (#$ . 3406)]) #@57 The act procedure of the COMPUTATION. (fn COMPUTATION) (defalias 'symex--computation-act #[257 "\3008\207" [7] 3 (#$ . 3552)]) #@181 Helper to process input in nested computations. COMPUTATION - the computation COMPONENTS - the components of the computation INPUT - the input. (fn COMPUTATION COMPONENTS INPUT) (defalias 'symex--ruminate #[771 "@A\203\300!\301\"\302#\"\207\207" [symex--computation-decide symex-ruminate symex--ruminate] 11 (#$ . 3688)]) #@86 Have the COMPUTATION process the INPUT and produce a result. (fn COMPUTATION INPUT) (defalias 'symex-ruminate #[514 "\300!!\301!\302!\303#!\207" [symex--computation-perceive symex--computation-components symex--computation-express symex--ruminate] 9 (#$ . 4032)]) (defconst symex--computation-default (symex-make-computation :perceive 'symex--type-list :act 'append)) #@106 A null side-effect, i.e. which does nothing. Any arguments ARGS passed in are ignored. (fn &rest ARGS) (defalias 'symex--side-effect-noop #[128 "\300\207" [nil] 3 (#$ . 4415) nil]) #@68 Represents the result OBJ of a traversal as a traversal. (fn OBJ) (defalias 'symex--traversal-account #[257 "\300!\203\207\301\302\"\207" [symex-traversal-p apply symex-make-maneuver] 4 (#$ . 4604)]) #@58 Helper to flatten maneuver PHASES to moves. (fn PHASES) (defalias 'symex--simplify-maneuver-phases #[257 "\211\205%\211@A\300!\203C\202\301!\302!\262\303\304!\"\262\266\202\207" [symex-move-p symex--simplify-maneuver symex--maneuver-phases append symex--simplify-maneuver-phases] 8 (#$ . 4815)]) #@85 Reduce a complex MANEUVER to a flat maneuver whose phases are moves. (fn MANEUVER) (defalias 'symex--simplify-maneuver #[257 "\300!\301!\211G\211\302U\203@\207\211\302V\205\303\304\"\207" [symex--maneuver-phases symex--simplify-maneuver-phases 1 apply symex-make-maneuver] 7 (#$ . 5132)]) #@75 Interpret a TRAVERSAL as a single, flat maneuver or move. (fn TRAVERSAL) (defalias 'symex--interpret-simple-traversal #[257 "\300!\203\n\301!\207\302!\203\207\303\304!\207" [symex-maneuver-p symex--simplify-maneuver symex-move-p error "Syntax error: unrecognized traversal type!"] 3 (#$ . 5436)]) #@203 Streamline traversal to a representation as a maneuver. If MANEUVER-OR-MOVE is a maneuver, leave as is. If it is a move, convert to the equivalent maneuver (via simple casting). (fn MANEUVER-OR-MOVE) (defalias 'symex--streamline-to-maneuver #[257 "\300!\203\n\301!\207\207" [symex-move-p symex-make-maneuver] 3 (#$ . 5747)]) #@34 Sum NUMBERS. (fn &rest NUMBERS) (defalias 'symex--add-numbers #[128 "\300\301\"\207" [apply +] 4 (#$ . 6083)]) (provide 'symex-computations)