;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (require 'chess-pos) (defconst chess-fen-regexp "^\\([bnrqkpBNRQKP1-8]*/?\\)+ [bw] \\(-\\|[KQkq]+\\) \\(-\\|[1-8]\\)") #@67 Convert a FEN-like notation string to a chess position. (fn FEN) (defalias 'chess-fen-to-pos #[257 "\301G\301\211\302\303\211\203\304\305\306\307\"\310\"\262\202\201\211\311!\205#\211G\312U\262\2040\313\314\315\316E\"\210\304!\211\317\211\311!\205A\211G\312U\262\204N\313\314\315\316E\"\210\211\320H\262!\311!\205_\211G\312U\262\204l\313\314\315\316E\"\210\211<\204y\313\314\321\322E\"\210\320I\266\266\202\323\301\301H\262\204\276\307U\204\276W\203\276\324U\203\253\301\262T\262\202\257\325Y\203\301\326X\203\301\302Z\\\262\202\257\226\327>\203\254\250\203\336\301Y\203\336\330X\204\346\313\314\331\332E\"\210\211\250\203\367\211\301Y\203\367\211\330X\204\377\313\314\333\334E\"\210\335_\\\266\202\311!\205\211G\312U\262\204\313\314\315\316E\"\210\250\2030\301Y\2030\336X\2048\313\314\337\340E\"\210\211\341>\204F\313\314\342\343E\"\210I\210\211\344>\205\243\345W\311!\205a\211G\312U\262\204n\313\314\315\316E\"\210\346>\204|\313\314\347\350E\"\210\211\250\203\215\211\301Y\203\215\211\336X\204\225\313\314\351\340E\"\210\203\236\352\202\237\353I\266\203\266T\262\202\257\303\262T\262H\262\202\211H\307U\203\315T\262H\354>\203  H\355U\311!\205\352\211G\312U\262\204\367\313\314\315\316E\"\210\211\356>\204\313\314\357\350E\"\210\360I\266\361\\\262\202\303\262H\262\2049\211\361W\2039W\2039\362U\204\"\307U\203C\211T\262\202\"\312U\203\251\312\303\311!\205W\211G\312U\262\204d\313\314\315\316E\"\210\363>\204r\313\314\364\365E\"\210\211\366>\204\200\313\314\367\370E\"\210\371\345W\203\226\312U\203\222\301\202\241\372\202\241\373U\203\240\361\202\241\374\\I\266\202\"\375U\203\375\303\311!\205\275\211G\312U\262\204\312\313\314\315\316E\"\210\363>\204\330\313\314\364\365E\"\210\211\366>\204\346\313\314\367\370E\"\210\371\345W\203\374\312U\203\370\301\202\372\202\373U\203\361\202\374\\I\266\202\"\373U\203u\373\303\311!\205#\211G\312U\262\2040\313\314\315\316E\"\210\363>\204>\313\314\364\365E\"\210\211\366>\204L\313\314\367\370E\"\210\371\345W\203b\312U\203^\301\202m\372\202m\373U\203l\361\202m\374\\I\266\202\"\376U\203\333\376\303\311!\205\211\211G\312U\262\204\226\313\314\315\316E\"\210\363>\204\244\313\314\364\365E\"\210\211\366>\204\262\313\314\367\370E\"\210\371\345W\203\310\312U\203\304\301\202\323\372\202\323\373U\203\322\361\202\323\374\\I\266\202\"\345Y\203\377X\203  \211\361\\O\211;\204\313\314\201@\201AE\"\210\211G\361U\204\201B\201C!\210\211\372H\201D!\204'\313\314\201E\201EE\"\210\330\325ZZ\262\301H\201D!\204E\313\314\201E\201EE\"\210\211\345Z\262\250\203[\301Y\203[\330X\204c\313\314\331\332E\"\210\211\250\203t\211\301Y\203t\211\330X\204|\313\314\333\334E\"\210\335_\\\266\203\211\211\250\203\226\211\301Y\203\226\211\336X\204\240\313\314\201F\340E\"\210\211\335\245\262\361U\203\256\372\202\340\211\250\203\300\211\301Y\203\300\211\336X\204\312\313\314\201F\340E\"\210\211\335\245\262\201GU\203\334\201H\202\340\303\262\301\301\250\203\362\301Y\203\362\336X\204\374\313\314\201I\340E\"\210\250\203\201JY\203\330X\204\313\314\201K\201LE\"\210\211\250\203.\211\201JY\203.\211\330X\204:\313\314\201M\201NE\"\210\211\250\203L\211\301Y\203L\211\336X\204V\313\314\201F\340E\"\210\211\335\245\262\\\211\250\203o\211\301Y\203o\211\336X\204y\313\314\201O\340E\"\210\201P\335\"\262\\\301Y\205\326\335W\205\326\211\301Y\205\326\211\335W\205\326\250\203\256\301Y\203\256\330X\204\266\313\314\331\332E\"\210\211\250\203\307\211\301Y\203\307\211\330X\204\317\313\314\333\334E\"\210\335_\\\266\202\266\205\262\311!\205\345\211G\312U\262\204\362\313\314\315\316E\"\210\211\203\211\250\203\211\301Y\203\211\336X\204\313\314\201Q\340E\"\210\306I\266T\262\202\"\303\262T\262W\2054H\262\202?\205?\207" [chess-starting-position 0 48 t vconcat make-vector 64 32 [nil nil nil nil nil nil t nil nil nil nil] vectorp 75 signal wrong-type-argument chess-pos position copy-alist 71 list annotations nil 47 49 57 (75 81 66 78 82 80) 7 (integer 0 7) rank (integer 0 7) file 8 63 (integer 0 63) index #1=(32 75 81 78 66 82 80 107 113 110 98 114 112) (member . #1#) piece (75 107) 97 #2=(nil t) (member . #2#) color (integer 0 63) 72 73 (98 119) 119 #3=(nil t) (member . #3#) 70 2 45 #4=(75 81 107 113) (member . #4#) side #5=(nil t) (member . #5#) value 65 1 107 3 81 113 104 string coord cl--assertion-failed (= (length coord) 2) natnump character (integer 0 63) 5 -1 (integer 0 63) -7 (integer -7 7) rank-move (integer -7 7) file-move (integer 0 63) mod (or null (integer 0 63))] 23 (#$ . 206)]) #@133 Convert a chess POSITION to FEN-like notation. If FULL is non-nil, represent trailing spaces as well. (fn POSITION &optional FULL) (defalias 'chess-pos-to-fen #[513 "\300\301C\302C\303\300\211W\203\360\211\303\300\211W\203\301\211\n\250\203,\300Y\203,\304X\2044\305\306\307\310E\"\210\211\250\203E\211\300Y\203E\211\304X\204M\305\306\311\312E\"\210\303_\\\266\202\313!\205_\211G\314U\262\204l\305\306\315\316E\"\210\211\250\203}\211\300Y\203}\211\317X\204\205\305\306\320\321E\"\210H\266\202\211\322U\203\232 T\262\n\266\202\272 \300V\203\257\211\242\323\f!P\240\210\300\262\n\211\242\324!P\240\266\211T\262\202\266\203\330\300V\203\330\211\242\323!P\240\210\211\304W\203\350\300\262\211\242\325P\240\210\210\211T\262\202\266\211\313!\205\377\211G\314U\262\204\f\305\306\315\316E\"\210\211\326H\262\203\242\327P\202\242\330P\240\210\331\332\333$\334\"\210\211\242\203;\211\242\335P\240\210\202B\211\242\336P\240\210\211\313!\205N\211G\314U\262\204[\305\306\315\316E\"\210\211\337H\262\211\203\311\211\313!\205p\211G\314U\262\204}\305\306\315\316E\"\210\211\326H\262\203\211\340\202\212\341\300\342\250\203\236\300Y\203\236\317X\204\246\305\306\343\321E\"\210\250\203\267\344Y\203\267\304X\204\277\305\306\345\346E\"\210\211\250\203\320\211\344Y\203\320\211\304X\204\330\305\306\347\350E\"\210\211\250\203\352\211\300Y\203\352\211\317X\204\362\305\306\351\321E\"\210\211\303\245\262\\\211\250\203 \211\300Y\203 \211\317X\204\305\306\352\321E\"\210\353\303\"\262\\\300Y\205n\303W\205n\211\300Y\205n\211\303W\205n\250\203F\300Y\203F\304X\204N\305\306\307\310E\"\210\211\250\203_\211\300Y\203_\211\304X\204g\305\306\311\312E\"\210\303_\\\266\202\266\205\203a\354\300\342\250\203\212\300Y\203\212\317X\204\222\305\306\343\321E\"\210\250\203\243\344Y\203\243\304X\204\253\305\306\345\346E\"\210\211\250\203\274\211\344Y\203\274\211\304X\204\304\305\306\347\350E\"\210\211\250\203\326\211\300Y\203\326\211\317X\204\336\305\306\351\321E\"\210\211\303\245\262\\\211\250\203\367\211\300Y\203\367\211\317X\204\377\305\306\352\321E\"\210\353\303\"\262\\\300Y\205Z\303W\205Z\211\300Y\205Z\211\303W\205Z\250\2032\300Y\2032\304X\204:\305\306\307\310E\"\210\211\250\203K\211\300Y\203K\211\304X\204S\305\306\311\312E\"\210\303_\\\266\202\266\205#\2065\300\355\250\203u\300Y\203u\317X\204}\305\306\343\321E\"\210\250\203\216\344Y\203\216\304X\204\226\305\306\345\346E\"\210\211\250\203\247\211\344Y\203\247\211\304X\204\257\305\306\347\350E\"\210\211\250\203\301\211\300Y\203\301\211\317X\204\311\305\306\351\321E\"\210\211\303\245\262\\\211\250\203\342\211\300Y\203\342\211\317X\204\352\305\306\352\321E\"\210\353\303\"\262\\\300Y\205E\303W\205E\211\300Y\205E\211\303W\205E\250\203\300Y\203\304X\204%\305\306\307\310E\"\210\211\250\2036\211\300Y\2036\211\304X\204>\305\306\311\312E\"\210\303_\\\266\202\266\205\2055\354\300\355\250\203a\300Y\203a\317X\204i\305\306\343\321E\"\210\250\203z\344Y\203z\304X\204\202\305\306\345\346E\"\210\211\250\203\223\211\344Y\203\223\211\304X\204\233\305\306\347\350E\"\210\211\250\203\255\211\300Y\203\255\211\317X\204\265\305\306\351\321E\"\210\211\303\245\262\\\211\250\203\316\211\300Y\203\316\211\317X\204\326\305\306\352\321E\"\210\353\303\"\262\\\300Y\2051\303W\2051\211\300Y\2051\211\303W\2051\250\203 \300Y\203 \304X\204\305\306\307\310E\"\210\211\250\203\"\211\300Y\203\"\211\304X\204*\305\306\311\312E\"\210\303_\\\266\202\266\205#\262\203\311\242\211\313!\205I\211G\314U\262\204V\305\306\315\316E\"\210\211\326H\262\203G\342\300\250\203r\300Y\203r\317X\204z\305\306\343\321E\"\210\250\203\213\344Y\203\213\304X\204\223\305\306\345\346E\"\210\211\250\203\244\211\344Y\203\244\211\304X\204\254\305\306\347\350E\"\210\211\250\203\276\211\300Y\203\276\211\317X\204\306\305\306\351\321E\"\210\211\303\245\262\\\211\250\203\337\211\300Y\203\337\211\317X\204\347\305\306\352\321E\"\210\353\303\"\262\\\300Y\205B\303W\205B\211\300Y\205B\211\303W\205B\250\203\300Y\203\304X\204\"\305\306\307\310E\"\210\211\250\2033\211\300Y\2033\211\304X\204;\305\306\311\312E\"\210\303_\\\266\202\266\205\202-\355\300\250\203[\300Y\203[\317X\204c\305\306\343\321E\"\210\250\203t\344Y\203t\304X\204|\305\306\345\346E\"\210\211\250\203\215\211\344Y\203\215\211\304X\204\225\305\306\347\350E\"\210\211\250\203\247\211\300Y\203\247\211\317X\204\257\305\306\351\321E\"\210\211\303\245\262\\\211\250\203\310\211\300Y\203\310\211\317X\204\320\305\306\352\321E\"\210\353\303\"\262\\\300Y\205+\303W\205+\211\300Y\205+\211\303W\205+\250\203\300Y\203\304X\204 \305\306\307\310E\"\210\211\250\203\211\300Y\203\211\304X\204$\305\306\311\312E\"\210\303_\\\266\202\266\205\211\250\203>\211\300Y\203>\211\317X\204F\305\306\356\321E\"\210\357\211\250\203Y\211\300Y\203Y\211\317X\204a\305\306\352\321E\"\210\353\303\"\262\211\250\203x\211\300Y\203x\211\304X\204\200\305\306\360\312E\"\210\211\361\\\262\211\250\203\227\211\300Y\203\227\211\317X\204\237\305\306\351\321E\"\210\211\303\245\262\211\250\203\265\211\300Y\203\265\211\304X\204\275\305\306\362\310E\"\210\304Z\363\\\262\"\262P\207\242\364P\207" [0 "" nil 8 7 signal wrong-type-argument (integer 0 7) rank (integer 0 7) file vectorp 75 chess-pos position 63 #2=(integer 0 63) index 32 int-to-string char-to-string "/" 70 " w " " b " mapc make-closure #[257 "\303\300\"\205\301\211\242\304!P\240\210\302\305\240\207" [V0 V1 V2 chess-pos-can-castle string t] 5 "\n\n(fn CASTLE)"] (75 81 107 113) " " "- " 64 80 112 -1 (integer 0 63) -7 (integer -7 7) rank-move (integer -7 7) file-move (integer 0 63) (integer 0 63) mod #[771 "\300!\205 \211G\301U\262\204\302\303\304\305E\"\210\250\203)\306Y\203)\307X\2041\302\303\310\311E\"\210\211\312>\204?\302\303\313\314E\"\210\300!\205L\211G\301U\262\204Y\302\303\304\305E\"\210\211\250\203j\211\306Y\203j\211\307X\204r\302\303\315\311E\"\210H\266\202\211\316U\203\206\247\205\227\211U\207\317\267\202\224\211\320W\207\211\320V\207\211U\207" [vectorp 75 signal wrong-type-argument chess-pos position 0 63 (integer 0 63) index #1=(t nil 32 75 81 78 66 82 80 107 113 110 98 114 112) (member . #1#) piece-or-color #2# 32 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (t 140 nil 144)) 97] 10 "Return non-nil if at POSITION/INDEX there is the given PIECE-OR-COLOR.\nIf PIECE-OR-COLOR is t for white or nil for black, any piece of that\ncolor will do.\n\n(fn POSITION INDEX PIECE-OR-COLOR)"] 1 (integer 0 63) string (integer 0 7) 97 (integer 0 7) 49 "-"] 21 (#$ . 5091)]) (provide 'chess-fen)