home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 21 / CD_ASCQ_21_040595.iso / dos / prg / c / freedos3 / source / emacs16d / _unclass.min < prev    next >
Encoding:
Text File  |  1992-03-26  |  13.8 KB  |  700 lines

  1.  
  2.  
  3.  
  4. Name:F:auto-match-paren
  5. [*]#(k)
  6. #(ds,temp,#(it,100))
  7. #(==,##(temp),Timeout,(
  8.     #(pm,1)
  9.     #(Fvip-match-paren)
  10.     #(sv,fc,##(F-auto-paren-color))
  11.     #(g?,##(lv,rs),##(lv,bl),(
  12.         #(xy,0,##(lv,bl))
  13.         #(sv,fc,#(F-fore-color))
  14.         #(ow,##(rm,^))
  15.         #(sv,fc,##(F-auto-paren-color))
  16.         #(ow,##(rm,>)#(sp,>))
  17.         #(sv,fc,#(F-fore-color))
  18.         #(ow,##(rm,$)(
  19. ))
  20.     ),(
  21.         #(g?,##(lv,tl),##(lv,rs),(
  22.             #(xy,0,#(--,##(lv,tl),1))
  23.             #(sv,fc,#(F-fore-color))
  24.             #(ow,##(rm,^))
  25.             #(sv,fc,##(F-auto-paren-color))
  26.             #(ow,##(rm,>)#(sp,>))
  27.             #(sv,fc,#(F-fore-color))
  28.             #(ow,##(rm,$)(
  29. ))
  30.         ),(
  31.             #(xy,##(--,##(lv,cs),1),##(--,##(lv,rs),1))
  32.             #(ow,##(rm,>))
  33.         ))
  34.     ))
  35.     #(sp,0)
  36.     #(xy,##(--,##(lv,cs),1),##(--,##(lv,rs),1))
  37.     #(sv,fc,#(F-fore-color))
  38.     #(pm)
  39.     #(d,#(g))
  40. ),(
  41.     #(d,##(temp))
  42. ))
  43. #(SELF)
  44. [*]
  45.  
  46.  
  47. Name:F:backward-list
  48. Move backward over matched ()'s
  49. [*]#(==,#(Fbackward-find-paren,[,(##(bc,40,d,a)),(##(bc,41,d,a))),no,(
  50.     #(F:ring-the-bell)
  51. ))[*]
  52.  
  53.  
  54. Name:F:center-line
  55. Center text based on F-fill-column.
  56. [*]#(sp,^)
  57. #(dm,+)
  58. #(sp,$-)
  59. #(pm,1)
  60. #(sm,0)
  61. #(sp,^)
  62. #(is,#(Floop, ,##(//,##(--,##(F-fill-column),##(rc,0)),2)))
  63. #(sp,$)
  64. #(pm)
  65. [*]
  66.  
  67.  
  68. Name:F:count-lines-page
  69. Count the number of lines on this page.
  70. [*]#(pm,3)
  71. #(lp,##(F-page-delimiter),,R)
  72. #(l?,.,[,1,,,(
  73.     #(sm,1,[)
  74. ))
  75. #(l?,.,],2,,,(
  76.     #(sm,2,])
  77. ))
  78. #(Fr,(
  79.     #(Fmessage,(The page has ##(++,ARG1,ARG2) (((ARG1+ARG2))) lines))
  80. ),
  81.     #(--,##(lv,cl),#(sp,1)##(lv,cl)),
  82.     #(--,#(sp,2)##(lv,cl),#(sp,0)##(lv,cl))
  83. )
  84. #(pm)[*]
  85.  
  86.  
  87. Name:F:count-lines-region
  88. Report the number of lines in the region.
  89. [*]#(Fmessage,The region has #(**,#(mb,#(Fmark),1,-1),
  90.     #(--,##(lv,cl),#(F:swap-point-and-mark)##(lv,cl)#(F:swap-point-and-mark))
  91. ) lines)[*]
  92.  
  93.  
  94. Name:F:edit-tab-stops
  95. Create a buffer in other window to edit the tabstop list.
  96. [*]
  97. #(F:split-window-vertically)
  98. #(Ffind-or-make-buffer,*tab-stops*)
  99. #(Flocal-bind-key,K.C-c C-c,Fedit-tab-stops-note-changes)
  100. #(sv,bl,23)
  101. #(sv,tl,20)
  102. #(Fdisp-tab-stop-list)
  103. #(is,(
  104.           1         2         3         4         5         6         7
  105. 01234567890123456789012345678901234567890123456789012345678901234567890123456789
  106. To install changes, type C-c C-c))
  107. #(sp,[)
  108. [*]
  109.  
  110.  
  111. Name:F:execute-extended-command
  112. Read an extended command from the keyboard.
  113. [*]    
  114. #(ds,value,##(old-execute))
  115. #(Fcompleting-readline,#(==,arg1,,,(C-u arg1 ))M-x ,(
  116.     #(ds,old-execute,##(value))
  117.     #(Fresolve-name,##(value),(
  118.         #(==,##(go,#(temp))#(rs,#(temp)),(    ),(
  119.             #(#(temp),arg1)
  120.         ),(
  121.             #(Floop,(#(ds,result,#(#(temp)))),#(==,arg1,,1,arg1))
  122.             ##(result)
  123.         ))
  124.     ))
  125. ),(
  126.     #(Fmultiple,(Fdelete-n-chars,2),#(Flist-all-strings,:##(value)##(2nd-half)),SELF)
  127.     #(Fmultiple,(Fprefix-matches,:##(value)##(2nd-half),4),##(ls,(,),F!),SELF)
  128. ),-)[*]
  129.  
  130.  
  131. Name:F:forward-list
  132. Move forward over matched ()'s
  133. [*]#(==,#(Fforward-find-paren,],(##(bc,40,d,a)),(##(bc,41,d,a))),no,(
  134.     #(F:ring-the-bell)
  135. ))[*]
  136.  
  137.  
  138. Name:F:newline
  139. [wjm 4/12/90] Modified so that it breaks the current line if it is too
  140.     long in fill mode.
  141. [*]
  142. #(Fin-minor-mode,Abbrev,(#(A:expand-abbrev)))
  143. #(Fin-minor-mode,Spell,(#(F:spell-word,1)))
  144. #(Fin-minor-mode,Fill,(#(F:split-line)))
  145. #(Fcrlf)
  146. [*]
  147.  
  148.  
  149. Name:F:newline-and-indent
  150. Insert a newline followed by the same whitespace as on the previous line.
  151. [*]#(Fin-minor-mode,Abbrev,(#(A:expand-abbrev)))
  152. #(Fin-minor-mode,Spell,(
  153.     #(F:spell-word,1)
  154. ))
  155. #(pm,1)
  156. #(sp,^)
  157. #(Fnewline-and-indent-do)
  158. #(ds,temp,##(rm,^))
  159. #(sp,0)
  160. #(Fcrlf)
  161. #(is,##(temp))
  162. #(pm)
  163. [*]
  164.  
  165.  
  166. Name:F:open-line
  167. [*]#(Fcrlf)#(sp,<)[*]
  168.  
  169.  
  170. Name:F:recenter
  171. Reposition the line containing the cursor at the middle of the window.  If
  172. an argument is given, place the cursor at that line.
  173. Changed to make M-0 C-L do the same thing a GNU emacs.
  174. [*]    
  175. #(==,arg1,,(
  176.     #(sv,rs,##(++,##(//,#(--,##(lv,bl),##(lv,tl)),2),##(lv,tl)))
  177. ),(
  178.     #(sv,rs,
  179.         #(g?,#(++,arg1,1),0,(#(++,arg1,1)),(#(++,arg1,##(lv,bl))))
  180.     )
  181. ))[*]
  182.  
  183.  
  184. Name:F:set-comment-column
  185. Set the comment column or delete a comment.
  186. [*]    
  187. #(==,arg1,,(
  188.     #(ds,F-comment-column,##(lv,cs))
  189. ),(
  190.     #(g?,arg1    1,1,(
  191.         #(F:kill-comment)
  192.     ),(
  193.         #(ds,F-comment-column,arg1)
  194.     ))
  195. ))[*]
  196.  
  197.  
  198. Name:F:set-fill-column
  199. Set the fill column to the argument if one is given, or else use the current
  200. cursor position.
  201. [*]    
  202. #(==,arg1,,(
  203.     #(ds,F-fill-column,##(lv,cs))
  204. ),(
  205.     #(ds,F-fill-column,arg1)
  206. ))[*]
  207.  
  208.  
  209. Name:F:set-fill-prefix
  210. Set the fill prefix to everything at the beginning of the line.
  211. [*]#(ds,F-fill-prefix,##(rm,^))
  212. #(Fmessage,Fill prefix #(==,##(rm,^),,(
  213.     cancelled.
  214. ),(
  215.     set to "(##(rm,^))".)
  216. ))[*]
  217.  
  218.  
  219. Name:F:set-mark-command
  220. Modified by Ashok P. Nadkarni
  221. Set a mark at point if argument is null.  If a non-negative argument is
  222. given, pop the mark ring. If negative argument go to next mark.
  223. [*]    
  224. #(==,arg1,,(
  225.     #(Fmessage,Mark set)
  226.     #(Fset-new-mark,.)
  227. ),(
  228.     #(F:pop-mark,arg1)
  229. ))[*]
  230.  
  231.  
  232. Name:F:set-visited-filename
  233. Set the name of the current buffer.
  234. [*]#(Finsist,(arg1),SELF,(
  235.     #(Fbuffer-set-fn,arg1)
  236. ))[*]
  237.  
  238.  
  239. Name:F:shell-command
  240. Execute a shell command and insert its output into a buffer.  If given a
  241. non-null argument, insert the output into the current buffer.
  242. [*]    
  243. #(ds,value,##(old-shell))
  244. #(Freadline,! ,(
  245.     #(==,arg1,,(
  246.         #(Ffind-or-make-buffer,*shell-output*,no)
  247.         #(sp,])
  248.     ))
  249.     #(ds,old-shell,##(value))
  250.     #(ex,#(env.COMSPEC),#(env.SWITCHAR)c ##(value),,\pipe_out,\pipe_out)
  251.     #(pm,2)
  252.     #(is,!)
  253.     #(sm,0,<)
  254.     #(rf,\pipe_out)
  255.     #(==,##(rc,0),1,(
  256.         #(Fmessage,Shell command completed with no output)
  257.         #(Fremember-buffer,1)
  258.         #(Fswitch-to-buffer,#(Frecall-buffer),,bury)
  259.     ),(
  260.         #(sp,0)
  261.         #(dm,>)
  262.         #(Fset-new-mark,.)
  263.         #(sp,1)
  264.     ))
  265.     #(pm)
  266.     #(de,\pipe_out)
  267. ))[*]
  268.  
  269.  
  270. Name:F:shell-command-on-region
  271. Execute a shell command with the region as input.
  272. [*]    
  273. #(ds,value,##(old-filter))
  274. #(Freadline,! ,(
  275.     #(ds,old-filter,##(value))
  276.     #(wf,\pipe_in,#(Fmark))
  277.     #(==,arg1,,(
  278.         #(Ffind-or-make-buffer,*shell-output*,no)
  279.         #(sp,])
  280.     ),(
  281.         #(dm,#(Fmark))
  282.     ))
  283.     #(ex,#(env.COMSPEC),#(env.SWITCHAR)c ##(value),\pipe_in,\pipe_out,\pipe_out)
  284.     #(pm,2)
  285.     #(is,!)
  286.     #(sm,0,<)
  287.     #(rf,\pipe_out)
  288.     #(==,##(rc,0),1,(
  289.         #(==,arg1,,,(
  290.             #(Fy-or-n,Shell command completed with no output -- restore original,(
  291.                 #(rf,\pipe_in)
  292.             ))
  293.         ))
  294.     ))
  295.     #(sp,0)
  296.     #(dm,>)
  297.     #(Fset-new-mark,.)
  298.     #(sp,1)
  299.     #(pm)
  300.     #(de,\pipe_in)
  301.     #(de,\pipe_out)
  302. ))[*]
  303.  
  304.  
  305. Name:F:spell-word
  306. Spell check the word to the left of point.  If an argument is given and
  307. the word is mis-spelled, ring the bell.
  308. [*]    
  309. #(==,##(sc,,2),-1,(
  310.     #(Ferror,Speller not installed)
  311. ),(
  312.     #(ds,temp,##(rm,-))
  313.     #(mp,temp,,(,),(;),.,!,##(bc,41,d,a))
  314.     #(==,##(temp),,(
  315.         #(pm,1)
  316.         #(sm,0)
  317.         #(sp,-)
  318.         #(ds,temp,##(rm,{))
  319.         #(mp,temp,,0,1,2,3,4,5,6,7,8,9)
  320.         #(==,##(temp),,,(
  321.             #(==,arg1,,(
  322.                 #(Fmessage,##(temp) is spelled 
  323.                     #(==,#(sc,##(temp),0),-3,in)
  324.                 correctly)
  325.             ),(
  326.                 #(==,#(sc,##(temp),0),-3,(#(bl)))
  327.             ))
  328.         ))
  329.         #(sp,0)
  330.         #(pm)
  331.     ))
  332. ))[*]
  333.  
  334.  
  335. Name:F:split-space
  336. [wjm 4/12/90] old F:split-space modified to be usable with F:newline
  337. as well.
  338. [*]#(Fin-minor-mode,Abbrev,(#(A:expand-abbrev)))
  339. #(Fin-minor-mode,Spell,(#(F:spell-word,1)))
  340. #(Fin-minor-mode,Fill,(
  341.         #(F:split-line,(
  342.             #(g?,#(rc),#(nc,##(F-fill-prefix)),#(is, ))
  343.         ),(
  344.             #(Fcrlf)
  345.             #(is,##(F-fill-prefix))
  346.         ),(
  347.             #(is, )
  348.         ))
  349. ),(#(is, )))
  350. [*]
  351.  
  352.  
  353. Name:F:suspend-emacs
  354. Execute the program given in EMACS_SHELL if it exists, otherwise command.com.
  355. [*]#(ex,#(env.COMSPEC))[*]
  356.  
  357.  
  358. Name:F:test
  359. [*][*]
  360.  
  361.  
  362. Name:F:toggle-read-only
  363. [*]#(==,##(&&,##(lv,mb),2),2,(
  364.     #(sv,mb,##(&&,##(lv,mb),1))
  365. ),(
  366.     #(sv,mb,#(||,##(&&,##(lv,mb),1),2))
  367. ))[*]
  368.  
  369.  
  370. Name:F:try-it
  371. Bring the current line of text in and execute it.
  372. [*]#(ow,"#(rm,^)#(rm,$)"(
  373. ))
  374. #(Fhit-any-key)
  375. [*]
  376.  
  377.  
  378. Name:F:what-cursor-position
  379. GNU EMACS style point-position and statistics
  380. [*]#(pm,1)
  381. #(Fmessage,Line #(lv,cl)/#(lv,nl)
  382.   Col #(lv,cs)/#(sp,$)##(lv,cs)
  383.   Char= 0x#(bc,#(sp,0)##(rm,>),a,h)
  384.  = 0#(bc,#(sp,0)##(rm,>),a,o)
  385.  = #(bc,#(sp,0)##(rm,>),a,d)
  386.      Total-chars = #(sp,])#(rc,[)
  387. )
  388. #(sp,0)
  389. #(pm)
  390. [*]
  391.  
  392.  
  393. Name:F:what-page
  394. [*]#(pm,2)
  395. #(lp,##(F-page-delimiter),,R)
  396. #(sp,[)
  397. #(ds,what-page,1)
  398. #(Fwhile-yes,(
  399.     #(l?,.,1,,0,(
  400.         #(sp,0)
  401.         #(ds,what-page,##(++,##(what-page),1))
  402.         yes
  403.     ))
  404. ))
  405. #(Fmessage,Page ##(what-page)(((,))) line #(--,1,#(--,##(lv,cl)#(sp,1),##(lv,cl))))
  406. #(es,what-page)
  407. #(pm)[*]
  408.  
  409.  
  410. Name:F:where-is
  411. Called by Fhelp.w.  Given a command name in ##(temp) it finds the
  412. keys bound to it.
  413. [*]
  414. #(ds,value,##(temp))
  415. #(..#(gn,value,2))
  416. #(ds,where-answer)
  417. #(Fmultiple,Fwhere-is-do,##(ls,(,),K.),SELF)
  418. #(==,##(where-answer),,(
  419.     #(an,##(value) is not on any keys)
  420. ),(
  421.     #(an,##(where-answer))))
  422. [*]
  423.  
  424.  
  425. Name:F:word-count
  426. Return a count of words in the buffer.
  427. [*]#(sp,[)
  428. #(Fword-count-do,0)[*]
  429.  
  430.  
  431. Name:Fauto-save
  432. [*]#(bl)[*]
  433.  
  434.  
  435. Name:Fbreak
  436. Check for a user break (C-g).  If there is one, clear the input buffer,
  437. and abort any keyboard macro in progress, and return arg1.  Otherwise,
  438. return arg2.
  439. [*]#(==,##(kbd-in),C-g<>,(
  440.     arg1
  441. ),(
  442.     #(==,##(it,0),Timeout,(
  443.         arg2
  444.     ),(
  445.         #(==,##(it,0),C-g,(
  446.             #(Fkbd-in,##(it,1))
  447.             #(ds,kbd-count)
  448.             #(..,##(gn,kbd-buffer))
  449.             arg1
  450.         ),(
  451.             #(Fkbd-in,##(it,1))
  452.             arg2
  453.         ))
  454.     ))
  455. ))[*]
  456.  
  457.  
  458. Name:Fbuffer-char-count
  459. Get the character length of the buffer.
  460. (signed 16-bit ints, so goes negative if #chars > 32767)
  461.  
  462. [*]#(pm,1)
  463. #(sm,0)
  464. #(sp,[)
  465. #(rc,])
  466. #(sp,0)
  467. #(pm)
  468. [*]
  469.  
  470.  
  471. Name:Fcorners
  472. Call this with point, mark set to the other corner.
  473. [*]#(SELF-sort,
  474.       ##(lv,cl),
  475.       ##(lv,cs),
  476.       #(F:swap-point-and-mark)##(lv,cl),
  477.       ##(lv,cs)#(F:swap-point-and-mark)
  478. )[*]
  479.  
  480.  
  481. Name:Fcorners-sort
  482. Call this with arg1,arg2 = line,column of point, arg3,arg4 = line,column
  483. of mark, return arg1 = top, arg2 = left, arg3 = bot, arg4 = right.
  484. [*]#(g?,arg3,arg1,(
  485.     ##(g?,arg4,arg2,(arg1,arg2,arg3,arg4),(arg1,arg4,arg3,arg2))
  486. ),(
  487.     ##(g?,arg4,arg2,(arg3,arg2,arg1,arg4),(arg3,arg4,arg1,arg2))
  488. ))[*]
  489.  
  490.  
  491. Name:Fdisp-tab-stop-list
  492. [*]#(Fmultiple,SELF-do,##(F-tab-stop-list),SELF)[*]
  493.  
  494.  
  495. Name:Fdisp-tab-stop-list-do
  496. [*]#(is,#(Floop, ,#(--,(arg1),##(lv,cs))))#(is,:)[*]
  497.  
  498.  
  499. Name:Fedit-tab-stops-note-changes
  500. [*]#(Fread-tab-stop-list)
  501. #(F:delete-window)
  502. [*]
  503.  
  504.  
  505. Name:Fkill-emacs
  506. If there are no unsaved buffers, exits to dos.  If there are any unsaved
  507. buffers, and the user really wants to quit, exits to dos.  Otherwise it
  508. returns to the buffer number given in arg1.
  509. [*]#(==,##(unsaved-buffers),,(
  510.     #(an)
  511.     #(hl)
  512. ),(
  513.     #(Fyes-or-no,##(nc,##(unsaved-buffers))
  514.          modified buffer
  515.         #(==,##(unsaved-buffers),n, exists,s exist)
  516.          - do you really want to quit?,(
  517.         #(hl)
  518.     ))
  519.     #(..,##(ba,arg1))
  520. ))[*]
  521.  
  522.  
  523. Name:Flist-all-strings-do
  524. [*]##(ls,(,),arg2arg1)[*]
  525.  
  526.  
  527. Name:Fmaybe-write-abbrevs
  528. Write a file describing all defined abbrevs, but only if they've been changed.
  529. Return arg1 if we weren't C-g'ed.
  530. [*]#(n?,abbrevs-modified,(
  531.     #(Fy-or-n,Abbreviations modified - save them?,(
  532.         #(==,ARG1,y,(
  533.             #(A:write-abbrev-file)
  534.         ),(
  535.             #(ds,unsaved-buffers,##(unsaved-buffers)n)
  536.         ))
  537.         arg1
  538.     ))
  539. ),(arg1))[*]
  540.  
  541.  
  542. Name:Fmodify-syntax
  543. arg1 is the name of the syntax table,
  544. arg2 is the ASCII value of the char to change,
  545. arg3 is the new value of the entry.
  546. Test code:
  547.     #(ds,syntax,##(Fsyntax))
  548.     #(Fmodify-syntax,syntax,48,10)
  549.     #(is,##(syntax))#(Fcrlf)
  550. [*]#(ds,arg1,
  551.     ##(gn,arg1,arg2)
  552.     #(..,##(go,arg1))
  553.     ##(bc,arg3,d,a)
  554.     ##(gn,arg1,256)
  555. )[*]
  556.  
  557.  
  558. Name:Fnewline-and-indent-do
  559. Skip right past spaces and tabs.
  560. [*]#(==,##(rm,>), ,(
  561.     #(sp,>)#(SELF)
  562. ),(
  563.     #(==,##(rm,>),(    ),(
  564.         #(sp,>)#(SELF)
  565.     ))
  566. ))[*]
  567.  
  568.  
  569. Name:Fread-tab-stop-list
  570. [*]#(ds,F-tab-stop-list)
  571. #(sp,[)
  572. #(lp,:)
  573. #(pm,1)
  574. #(SELF-do)
  575. #(pm)
  576. #(sp,[)
  577. [*]
  578.  
  579.  
  580. Name:Fread-tab-stop-list-do
  581. [*]
  582. #(l?,.,$,0,,(
  583.     #(sp,0)
  584.     #(ds,F-t`b-stop-list,##(F-tab-stop-list)##(lv,cs)(,))
  585.     #(sp,>)
  586.     #(SELF)
  587.     ))
  588. [*]
  589.  
  590.  
  591. Name:Fsyntax
  592. This is the default syntax table.  Includes [0-9_A-Za-z].
  593. [*][*]
  594.  
  595.  
  596. Name:Ftab-to-tab-stop-do
  597. [*]
  598. #(==,arg1,,(
  599.         #(is,(    ))
  600.         #(rs,F-tab-stop-list)
  601.     ),(
  602.         #(g?,(arg1),##(lv,cs),(
  603.                 #(==,#(rc,$),0,(
  604.                         #(Fpad-to-column,(arg1))
  605.                     ),(
  606.                         #(sv,cs,(arg1))
  607.                     ))
  608.                 #(rs,F-tab-stop-list)
  609.             ),(
  610.                 #(SELF,##(fm,F-tab-stop-list,(,)))
  611.             ))
  612.     ))
  613. [*]
  614.  
  615.  
  616. Name:Funwind-recurse
  617. [*]#(==,##(Fmode-parens,A),([(A)]),(
  618.     #(ds,k,##(gs,Fredisplay,#(Farglist)))
  619.     #(mp,k,#(Farglist))
  620. ))
  621. #(==,arg1,,(
  622.     #(Ferror,Garbled recursive edit)
  623.     #(ds,Fmode-parens,((ARG1)))
  624. ),(
  625.     #(ds,Fmode-parens,##(Fmode-parens,ARG1))
  626.     #(ds,Fmode-parens,
  627.         ##(fm,Fmode-parens,[)
  628.         ##(fm,Fmode-parens,])
  629.         ##(gn,Fmode-parens,1000)
  630.     )
  631. ))
  632. #(mp,Fmode-parens,SELF,ARG1)
  633. [*]
  634.  
  635.  
  636. Name:Fvip-match-paren
  637. Find the paren that matches the one we're pointing to right now, and
  638. return 'yes' if it matches, and 'no' if it we're not on a paren.
  639. [*]#(Fcase,##(bc,##(rm,>)),
  640.     (40,(
  641.         #(Fforward-find-paren,],(##(bc,40,d,a)),(##(bc,41,d,a)))
  642.         #(sp,<)
  643.         yes
  644.     )),
  645.     (41,(
  646.         #(sp,>)
  647.         #(Fbackward-find-paren,[,(##(bc,40,d,a)),(##(bc,41,d,a)))
  648.         yes
  649.     )),
  650.     (123,(
  651.         #(Fforward-find-paren,],{,})
  652.         #(sp,<)
  653.         yes
  654.     )),
  655.     (125,(
  656.         #(sp,>)
  657.         #(Fbackward-find-paren,[,{,})
  658.         yes
  659.     )),
  660.     (91,(
  661.         #(Fforward-find-paren,],[,])
  662.         #(sp,<)
  663.         yes
  664.     )),
  665.     (93,(
  666.         #(sp,>)
  667.         #(Fbackward-find-paren,[,[,])
  668.         yes
  669.     )),
  670.     (no)
  671. )[*]
  672.  
  673.  
  674. Name:Fwhere
  675. [*]--#(g?,#(lv,nl),#(++,#(--,#(lv,bl),##(lv,tl)),1),(
  676.     #(==,#(lv,cl),1,Top,(
  677.         #(==,#(lv,cl),#(lv,nl),Bot,(#(lv,pb)%))
  678.     ))
  679. ),All)
  680. --[*]
  681.  
  682.  
  683. Name:Fwhere-is-do
  684. [*]
  685. #(ds,temp,##(arg1))
  686. #(..,##(gn,temp,2))
  687. #(==,##(temp),##(value),(
  688.     #(ds,temp,arg1)
  689.     #(..,##(gn,temp,2))
  690.     #(==,##(where-answer),,(#(ds,where-answer,##(value) is on ##(temp))),(
  691.         #(ds,where-answer,##(where-answer) and ##(temp))))
  692.     ))
  693. [*]
  694.  
  695.  
  696. Name:Fword-count-do
  697. [*]#(sp,+})
  698. #(==,##(rm,>),,(
  699.     #(Fmessage,arg1 words)
  700. ),(
  701.     #(SELF,##(++,arg1,1))
  702. ))[*]