home *** CD-ROM | disk | FTP | other *** search
Emacs Compiled Lisp | 1991-01-10 | 25.0 KB |
view JSON data
|
view as text
|
open on a Mac
|
open on a PC
This file was processed as: Emacs Compiled Lisp
(other/emacsCompiledLisp).
This format is not currently supported by dexvert.
Confidence | Program | Detection | Match Type | Support
|
---|
1%
| dexvert
| Emacs Compiled Lisp (other/emacsCompiledLisp)
| magic
| Unsupported |
100%
| file
| Emacs v18 byte-compiled Lisp data
| default
| |
99%
| file
| data
| default
| |
100%
| gt2
| Kopftext: '(require (quote scheme))
| default (weak)
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0a 28 72 65 71 75 69 72 | 65 20 28 71 75 6f 74 65 |.(requir|e (quote|
|00000010| 20 73 63 68 65 6d 65 29 | 29 0a 0a 28 64 65 66 76 | scheme)|)..(defv|
|00000020| 61 72 20 73 63 68 65 6d | 65 2d 70 72 6f 67 72 61 |ar schem|e-progra|
|00000030| 6d 2d 6e 61 6d 65 20 22 | 73 63 68 65 6d 65 22 20 |m-name "|scheme" |
|00000040| 22 5c 0a 2a 50 72 6f 67 | 72 61 6d 20 69 6e 76 6f |"\.*Prog|ram invo|
|00000050| 6b 65 64 20 62 79 20 74 | 68 65 20 60 72 75 6e 2d |ked by t|he `run-|
|00000060| 73 63 68 65 6d 65 27 20 | 63 6f 6d 6d 61 6e 64 2e |scheme' |command.|
|00000070| 22 29 0a 0a 28 64 65 66 | 76 61 72 20 73 63 68 65 |")..(def|var sche|
|00000080| 6d 65 2d 62 61 6e 64 2d | 6e 61 6d 65 20 6e 69 6c |me-band-|name nil|
|00000090| 20 22 5c 0a 2a 42 61 6e | 64 20 6c 6f 61 64 65 64 | "\.*Ban|d loaded|
|000000a0| 20 62 79 20 74 68 65 20 | 60 72 75 6e 2d 73 63 68 | by the |`run-sch|
|000000b0| 65 6d 65 27 20 63 6f 6d | 6d 61 6e 64 2e 22 29 0a |eme' com|mand.").|
|000000c0| 0a 28 64 65 66 76 61 72 | 20 73 63 68 65 6d 65 2d |.(defvar| scheme-|
|000000d0| 70 72 6f 67 72 61 6d 2d | 61 72 67 75 6d 65 6e 74 |program-|argument|
|000000e0| 73 20 6e 69 6c 20 22 5c | 0a 2a 41 72 67 75 6d 65 |s nil "\|.*Argume|
|000000f0| 6e 74 73 20 70 61 73 73 | 65 64 20 74 6f 20 74 68 |nts pass|ed to th|
|00000100| 65 20 53 63 68 65 6d 65 | 20 70 72 6f 67 72 61 6d |e Scheme| program|
|00000110| 20 62 79 20 74 68 65 20 | 60 72 75 6e 2d 73 63 68 | by the |`run-sch|
|00000120| 65 6d 65 27 20 63 6f 6d | 6d 61 6e 64 2e 22 29 0a |eme' com|mand.").|
|00000130| 0a 28 64 65 66 76 61 72 | 20 78 73 63 68 65 6d 65 |.(defvar| xscheme|
|00000140| 2d 61 6c 6c 6f 77 2d 70 | 69 70 65 6c 69 6e 65 64 |-allow-p|ipelined|
|00000150| 2d 65 76 61 6c 75 61 74 | 69 6f 6e 20 74 20 22 5c |-evaluat|ion t "\|
|00000160| 0a 49 66 20 6e 6f 6e 2d | 6e 69 6c 2c 20 61 6e 20 |.If non-|nil, an |
|00000170| 65 78 70 72 65 73 73 69 | 6f 6e 20 6d 61 79 20 62 |expressi|on may b|
|00000180| 65 20 74 72 61 6e 73 6d | 69 74 74 65 64 20 77 68 |e transm|itted wh|
|00000190| 69 6c 65 20 61 6e 6f 74 | 68 65 72 20 69 73 20 65 |ile anot|her is e|
|000001a0| 76 61 6c 75 61 74 69 6e | 67 2e 0a 4f 74 68 65 72 |valuatin|g..Other|
|000001b0| 77 69 73 65 2c 20 61 74 | 74 65 6d 70 74 69 6e 67 |wise, at|tempting|
|000001c0| 20 74 6f 20 65 76 61 6c | 75 61 74 65 20 61 6e 20 | to eval|uate an |
|000001d0| 65 78 70 72 65 73 73 69 | 6f 6e 20 62 65 66 6f 72 |expressi|on befor|
|000001e0| 65 20 74 68 65 20 70 72 | 65 76 69 6f 75 73 20 65 |e the pr|evious e|
|000001f0| 78 70 72 65 73 73 69 6f | 6e 0a 68 61 73 20 66 69 |xpressio|n.has fi|
|00000200| 6e 69 73 68 65 64 20 65 | 76 61 6c 75 61 74 69 6e |nished e|valuatin|
|00000210| 67 20 77 69 6c 6c 20 73 | 69 67 6e 61 6c 20 61 6e |g will s|ignal an|
|00000220| 20 65 72 72 6f 72 2e 22 | 29 0a 0a 28 64 65 66 76 | error."|)..(defv|
|00000230| 61 72 20 78 73 63 68 65 | 6d 65 2d 73 74 61 72 74 |ar xsche|me-start|
|00000240| 75 70 2d 6d 65 73 73 61 | 67 65 20 22 54 68 69 73 |up-messa|ge "This|
|00000250| 20 69 73 20 74 68 65 20 | 53 63 68 65 6d 65 20 70 | is the |Scheme p|
|00000260| 72 6f 63 65 73 73 20 62 | 75 66 66 65 72 2e 0a 54 |rocess b|uffer..T|
|00000270| 79 70 65 20 5c 5c 5b 61 | 64 76 65 72 74 69 73 65 |ype \\[a|dvertise|
|00000280| 64 2d 78 73 63 68 65 6d | 65 2d 73 65 6e 64 2d 70 |d-xschem|e-send-p|
|00000290| 72 65 76 69 6f 75 73 2d | 65 78 70 72 65 73 73 69 |revious-|expressi|
|000002a0| 6f 6e 5d 20 74 6f 20 65 | 76 61 6c 75 61 74 65 20 |on] to e|valuate |
|000002b0| 74 68 65 20 65 78 70 72 | 65 73 73 69 6f 6e 20 62 |the expr|ession b|
|000002c0| 65 66 6f 72 65 20 70 6f | 69 6e 74 2e 0a 54 79 70 |efore po|int..Typ|
|000002d0| 65 20 5c 5c 5b 78 73 63 | 68 65 6d 65 2d 73 65 6e |e \\[xsc|heme-sen|
|000002e0| 64 2d 63 6f 6e 74 72 6f | 6c 2d 67 2d 69 6e 74 65 |d-contro|l-g-inte|
|000002f0| 72 72 75 70 74 5d 20 74 | 6f 20 61 62 6f 72 74 20 |rrupt] t|o abort |
|00000300| 65 76 61 6c 75 61 74 69 | 6f 6e 2e 0a 54 79 70 65 |evaluati|on..Type|
|00000310| 20 5c 5c 5b 64 65 73 63 | 72 69 62 65 2d 6d 6f 64 | \\[desc|ribe-mod|
|00000320| 65 5d 20 66 6f 72 20 6d | 6f 72 65 20 69 6e 66 6f |e] for m|ore info|
|00000330| 72 6d 61 74 69 6f 6e 2e | 0a 0a 22 20 22 53 74 72 |rmation.|.." "Str|
|00000340| 69 6e 67 20 74 6f 20 69 | 6e 73 65 72 74 20 69 6e |ing to i|nsert in|
|00000350| 74 6f 20 53 63 68 65 6d | 65 20 70 72 6f 63 65 73 |to Schem|e proces|
|00000360| 73 20 62 75 66 66 65 72 | 20 66 69 72 73 74 20 74 |s buffer| first t|
|00000370| 69 6d 65 20 69 74 20 69 | 73 20 73 74 61 72 74 65 |ime it i|s starte|
|00000380| 64 2e 0a 49 73 20 70 72 | 6f 63 65 73 73 65 64 20 |d..Is pr|ocessed |
|00000390| 77 69 74 68 20 60 73 75 | 62 73 74 69 74 75 74 65 |with `su|bstitute|
|000003a0| 2d 63 6f 6d 6d 61 6e 64 | 2d 6b 65 79 73 27 20 66 |-command|-keys' f|
|000003b0| 69 72 73 74 2e 22 29 0a | 0a 28 64 65 66 76 61 72 |irst.").|.(defvar|
|000003c0| 20 78 73 63 68 65 6d 65 | 2d 73 69 67 6e 61 6c 2d | xscheme|-signal-|
|000003d0| 64 65 61 74 68 2d 6d 65 | 73 73 61 67 65 20 6e 69 |death-me|ssage ni|
|000003e0| 6c 20 22 5c 0a 49 66 20 | 6e 6f 6e 2d 6e 69 6c 2c |l "\.If |non-nil,|
|000003f0| 20 63 61 75 73 65 73 20 | 61 20 6d 65 73 73 61 67 | causes |a messag|
|00000400| 65 20 74 6f 20 62 65 20 | 67 65 6e 65 72 61 74 65 |e to be |generate|
|00000410| 64 20 77 68 65 6e 20 74 | 68 65 20 53 63 68 65 6d |d when t|he Schem|
|00000420| 65 20 70 72 6f 63 65 73 | 73 20 64 69 65 73 2e 22 |e proces|s dies."|
|00000430| 29 0a 0a 28 64 65 66 75 | 6e 20 78 73 63 68 65 6d |)..(defu|n xschem|
|00000440| 65 2d 65 76 61 6c 75 61 | 74 69 6f 6e 2d 63 6f 6d |e-evalua|tion-com|
|00000450| 6d 61 6e 64 73 20 28 6b | 65 79 6d 61 70 29 20 28 |mands (k|eymap) (|
|00000460| 62 79 74 65 2d 63 6f 64 | 65 20 22 c1 08 c2 c3 23 |byte-cod|e "....#|
|00000470| 88 c1 08 c4 c5 23 88 c1 | 08 c6 c7 23 88 c1 08 c8 |.....#..|...#....|
|00000480| c3 23 88 c1 08 c9 ca 23 | 88 c1 08 cb cc 23 87 22 |.#.....#|.....#."|
|00000490| 20 5b 6b 65 79 6d 61 70 | 20 64 65 66 69 6e 65 2d | [keymap| define-|
|000004a0| 6b 65 79 20 22 1b 18 22 | 20 78 73 63 68 65 6d 65 |key ".."| xscheme|
|000004b0| 2d 73 65 6e 64 2d 64 65 | 66 69 6e 69 74 69 6f 6e |-send-de|finition|
|000004c0| 20 22 18 05 22 20 61 64 | 76 65 72 74 69 73 65 64 | ".." ad|vertised|
|000004d0| 2d 78 73 63 68 65 6d 65 | 2d 73 65 6e 64 2d 70 72 |-xscheme|-send-pr|
|000004e0| 65 76 69 6f 75 73 2d 65 | 78 70 72 65 73 73 69 6f |evious-e|xpressio|
|000004f0| 6e 20 22 1b 6f 22 20 78 | 73 63 68 65 6d 65 2d 73 |n ".o" x|scheme-s|
|00000500| 65 6e 64 2d 62 75 66 66 | 65 72 20 22 1b 7a 22 20 |end-buff|er ".z" |
|00000510| 22 1b 0d 22 20 78 73 63 | 68 65 6d 65 2d 73 65 6e |".." xsc|heme-sen|
|00000520| 64 2d 70 72 65 76 69 6f | 75 73 2d 65 78 70 72 65 |d-previo|us-expre|
|00000530| 73 73 69 6f 6e 20 22 1b | 1a 22 20 78 73 63 68 65 |ssion ".|." xsche|
|00000540| 6d 65 2d 73 65 6e 64 2d | 72 65 67 69 6f 6e 5d 20 |me-send-|region] |
|00000550| 39 29 29 0a 0a 28 64 65 | 66 75 6e 20 78 73 63 68 |9))..(de|fun xsch|
|00000560| 65 6d 65 2d 69 6e 74 65 | 72 72 75 70 74 2d 63 6f |eme-inte|rrupt-co|
|00000570| 6d 6d 61 6e 64 73 20 28 | 6b 65 79 6d 61 70 29 20 |mmands (|keymap) |
|00000580| 28 62 79 74 65 2d 63 6f | 64 65 20 22 c1 08 c2 c3 |(byte-co|de "....|
|00000590| 23 88 c1 08 c4 c5 23 88 | c1 08 c6 c7 23 88 c1 08 |#.....#.|....#...|
|000005a0| c8 c9 23 88 c1 08 ca cb | 23 87 22 20 5b 6b 65 79 |..#.....|#." [key|
|000005b0| 6d 61 70 20 64 65 66 69 | 6e 65 2d 6b 65 79 20 22 |map defi|ne-key "|
|000005c0| 03 13 22 20 78 73 63 68 | 65 6d 65 2d 73 65 6c 65 |.." xsch|eme-sele|
|000005d0| 63 74 2d 70 72 6f 63 65 | 73 73 2d 62 75 66 66 65 |ct-proce|ss-buffe|
|000005e0| 72 20 22 03 02 22 20 78 | 73 63 68 65 6d 65 2d 73 |r ".." x|scheme-s|
|000005f0| 65 6e 64 2d 62 72 65 61 | 6b 70 6f 69 6e 74 2d 69 |end-brea|kpoint-i|
|00000600| 6e 74 65 72 72 75 70 74 | 20 22 03 03 22 20 78 73 |nterrupt| ".." xs|
|00000610| 63 68 65 6d 65 2d 73 65 | 6e 64 2d 63 6f 6e 74 72 |cheme-se|nd-contr|
|00000620| 6f 6c 2d 67 2d 69 6e 74 | 65 72 72 75 70 74 20 22 |ol-g-int|errupt "|
|00000630| 03 15 22 20 78 73 63 68 | 65 6d 65 2d 73 65 6e 64 |.." xsch|eme-send|
|00000640| 2d 63 6f 6e 74 72 6f 6c | 2d 75 2d 69 6e 74 65 72 |-control|-u-inter|
|00000650| 72 75 70 74 20 22 03 18 | 22 20 78 73 63 68 65 6d |rupt "..|" xschem|
|00000660| 65 2d 73 65 6e 64 2d 63 | 6f 6e 74 72 6f 6c 2d 78 |e-send-c|ontrol-x|
|00000670| 2d 69 6e 74 65 72 72 75 | 70 74 5d 20 38 29 29 0a |-interru|pt] 8)).|
|00000680| 0a 28 78 73 63 68 65 6d | 65 2d 65 76 61 6c 75 61 |.(xschem|e-evalua|
|00000690| 74 69 6f 6e 2d 63 6f 6d | 6d 61 6e 64 73 20 73 63 |tion-com|mands sc|
|000006a0| 68 65 6d 65 2d 6d 6f 64 | 65 2d 6d 61 70 29 0a 0a |heme-mod|e-map)..|
|000006b0| 28 78 73 63 68 65 6d 65 | 2d 69 6e 74 65 72 72 75 |(xscheme|-interru|
|000006c0| 70 74 2d 63 6f 6d 6d 61 | 6e 64 73 20 73 63 68 65 |pt-comma|nds sche|
|000006d0| 6d 65 2d 6d 6f 64 65 2d | 6d 61 70 29 0a 0a 28 64 |me-mode-|map)..(d|
|000006e0| 65 66 75 6e 20 72 75 6e | 2d 73 63 68 65 6d 65 20 |efun run|-scheme |
|000006f0| 28 63 6f 6d 6d 61 6e 64 | 2d 6c 69 6e 65 29 20 22 |(command|-line) "|
|00000700| 5c 0a 52 75 6e 20 61 6e | 20 69 6e 66 65 72 69 6f |\.Run an| inferio|
|00000710| 72 20 53 63 68 65 6d 65 | 20 70 72 6f 63 65 73 73 |r Scheme| process|
|00000720| 2e 0a 4f 75 74 70 75 74 | 20 67 6f 65 73 20 74 6f |..Output| goes to|
|00000730| 20 74 68 65 20 62 75 66 | 66 65 72 20 60 2a 73 63 | the buf|fer `*sc|
|00000740| 68 65 6d 65 2a 27 2e 0a | 57 69 74 68 20 61 72 67 |heme*'..|With arg|
|00000750| 75 6d 65 6e 74 2c 20 61 | 73 6b 73 20 66 6f 72 20 |ument, a|sks for |
|00000760| 61 20 63 6f 6d 6d 61 6e | 64 20 6c 69 6e 65 2e 22 |a comman|d line."|
|00000770| 20 28 69 6e 74 65 72 61 | 63 74 69 76 65 20 28 62 | (intera|ctive (b|
|00000780| 79 74 65 2d 63 6f 64 65 | 20 22 09 86 06 00 c3 20 |yte-code| "..... |
|00000790| 18 0a 83 12 00 c4 c5 08 | 5c 22 82 13 00 08 29 43 |........|\"....)C|
|000007a0| 87 22 20 5b 64 65 66 61 | 75 6c 74 20 78 73 63 68 |." [defa|ult xsch|
|000007b0| 65 6d 65 2d 70 72 6f 63 | 65 73 73 2d 63 6f 6d 6d |eme-proc|ess-comm|
|000007c0| 61 6e 64 2d 6c 69 6e 65 | 20 63 75 72 72 65 6e 74 |and-line| current|
|000007d0| 2d 70 72 65 66 69 78 2d | 61 72 67 20 78 73 63 68 |-prefix-|arg xsch|
|000007e0| 65 6d 65 2d 64 65 66 61 | 75 6c 74 2d 63 6f 6d 6d |eme-defa|ult-comm|
|000007f0| 61 6e 64 2d 6c 69 6e 65 | 20 72 65 61 64 2d 73 74 |and-line| read-st|
|00000800| 72 69 6e 67 20 22 52 75 | 6e 20 53 63 68 65 6d 65 |ring "Ru|n Scheme|
|00000810| 3a 20 22 5d 20 34 29 29 | 20 28 62 79 74 65 2d 63 |: "] 4))| (byte-c|
|00000820| 6f 64 65 20 22 c4 88 0b | 89 11 88 c5 c6 0b 21 21 |ode "...|......!!|
|00000830| 87 22 20 5b 64 65 66 61 | 75 6c 74 20 78 73 63 68 |." [defa|ult xsch|
|00000840| 65 6d 65 2d 70 72 6f 63 | 65 73 73 2d 63 6f 6d 6d |eme-proc|ess-comm|
|00000850| 61 6e 64 2d 6c 69 6e 65 | 20 63 75 72 72 65 6e 74 |and-line| current|
|00000860| 2d 70 72 65 66 69 78 2d | 61 72 67 20 63 6f 6d 6d |-prefix-|arg comm|
|00000870| 61 6e 64 2d 6c 69 6e 65 | 20 6e 69 6c 20 73 77 69 |and-line| nil swi|
|00000880| 74 63 68 2d 74 6f 2d 62 | 75 66 66 65 72 20 78 73 |tch-to-b|uffer xs|
|00000890| 63 68 65 6d 65 2d 73 74 | 61 72 74 2d 70 72 6f 63 |cheme-st|art-proc|
|000008a0| 65 73 73 5d 20 33 29 29 | 0a 0a 28 64 65 66 75 6e |ess] 3))|..(defun|
|000008b0| 20 72 65 73 65 74 2d 73 | 63 68 65 6d 65 20 6e 69 | reset-s|cheme ni|
|000008c0| 6c 20 22 5c 0a 52 65 73 | 65 74 20 74 68 65 20 53 |l "\.Res|et the S|
|000008d0| 63 68 65 6d 65 20 70 72 | 6f 63 65 73 73 2e 22 20 |cheme pr|ocess." |
|000008e0| 28 69 6e 74 65 72 61 63 | 74 69 76 65 29 20 28 62 |(interac|tive) (b|
|000008f0| 79 74 65 2d 63 6f 64 65 | 20 22 c3 88 c4 c5 21 18 |yte-code| "....!.|
|00000900| 08 3f 86 17 00 c6 08 21 | c7 3d 3f 86 17 00 c8 c9 |.?.....!|.=?.....|
|00000910| 21 85 2e 00 ca cb 21 88 | 08 85 26 00 cc 08 c1 5c |!.....!.|..&....\|
|00000920| 22 88 cd 0a 21 88 ca ce | 21 29 87 22 20 5b 70 72 |"...!...|!)." [pr|
|00000930| 6f 63 65 73 73 20 74 20 | 78 73 63 68 65 6d 65 2d |ocess t |xscheme-|
|00000940| 70 72 6f 63 65 73 73 2d | 63 6f 6d 6d 61 6e 64 2d |process-|command-|
|00000950| 6c 69 6e 65 20 6e 69 6c | 20 67 65 74 2d 70 72 6f |line nil| get-pro|
|00000960| 63 65 73 73 20 22 73 63 | 68 65 6d 65 22 20 70 72 |cess "sc|heme" pr|
|00000970| 6f 63 65 73 73 2d 73 74 | 61 74 75 73 20 72 75 6e |ocess-st|atus run|
|00000980| 20 79 65 73 2d 6f 72 2d | 6e 6f 2d 70 20 22 54 68 | yes-or-|no-p "Th|
|00000990| 65 20 53 63 68 65 6d 65 | 20 70 72 6f 63 65 73 73 |e Scheme| process|
|000009a0| 20 69 73 20 72 75 6e 6e | 69 6e 67 2c 20 61 72 65 | is runn|ing, are|
|000009b0| 20 79 6f 75 20 53 55 52 | 45 20 79 6f 75 20 77 61 | you SUR|E you wa|
|000009c0| 6e 74 20 74 6f 20 72 65 | 73 65 74 20 69 74 3f 20 |nt to re|set it? |
|000009d0| 22 20 6d 65 73 73 61 67 | 65 20 22 52 65 73 65 74 |" messag|e "Reset|
|000009e0| 74 69 6e 67 20 53 63 68 | 65 6d 65 20 70 72 6f 63 |ting Sch|eme proc|
|000009f0| 65 73 73 2e 2e 2e 22 20 | 6b 69 6c 6c 2d 70 72 6f |ess..." |kill-pro|
|00000a00| 63 65 73 73 20 78 73 63 | 68 65 6d 65 2d 73 74 61 |cess xsc|heme-sta|
|00000a10| 72 74 2d 70 72 6f 63 65 | 73 73 20 22 52 65 73 65 |rt-proce|ss "Rese|
|00000a20| 74 74 69 6e 67 20 53 63 | 68 65 6d 65 20 70 72 6f |tting Sc|heme pro|
|00000a30| 63 65 73 73 2e 2e 2e 64 | 6f 6e 65 22 5d 20 38 29 |cess...d|one"] 8)|
|00000a40| 29 0a 0a 28 64 65 66 75 | 6e 20 78 73 63 68 65 6d |)..(defu|n xschem|
|00000a50| 65 2d 64 65 66 61 75 6c | 74 2d 63 6f 6d 6d 61 6e |e-defaul|t-comman|
|00000a60| 64 2d 6c 69 6e 65 20 6e | 69 6c 20 28 62 79 74 65 |d-line n|il (byte|
|00000a70| 2d 63 6f 64 65 20 22 08 | c3 09 83 0c 00 c4 09 50 |-code ".|.......P|
|00000a80| 82 0d 00 c5 0a 83 17 00 | c6 0a 50 82 18 00 c5 52 |........|..P....R|
|00000a90| 87 22 20 5b 73 63 68 65 | 6d 65 2d 70 72 6f 67 72 |." [sche|me-progr|
|00000aa0| 61 6d 2d 6e 61 6d 65 20 | 73 63 68 65 6d 65 2d 70 |am-name |scheme-p|
|00000ab0| 72 6f 67 72 61 6d 2d 61 | 72 67 75 6d 65 6e 74 73 |rogram-a|rguments|
|00000ac0| 20 73 63 68 65 6d 65 2d | 62 61 6e 64 2d 6e 61 6d | scheme-|band-nam|
|00000ad0| 65 20 22 20 2d 65 6d 61 | 63 73 22 20 22 20 22 20 |e " -ema|cs" " " |
|00000ae0| 22 22 20 22 20 2d 62 61 | 6e 64 20 22 5d 20 35 29 |"" " -ba|nd "] 5)|
|00000af0| 29 0a 0a 28 64 65 66 75 | 6e 20 73 63 68 65 6d 65 |)..(defu|n scheme|
|00000b00| 2d 69 6e 74 65 72 61 63 | 74 69 6f 6e 2d 6d 6f 64 |-interac|tion-mod|
|00000b10| 65 20 6e 69 6c 20 22 5c | 0a 4d 61 6a 6f 72 20 6d |e nil "\|.Major m|
|00000b20| 6f 64 65 20 66 6f 72 20 | 69 6e 74 65 72 61 63 74 |ode for |interact|
|00000b30| 69 6e 67 20 77 69 74 68 | 20 74 68 65 20 69 6e 66 |ing with| the inf|
|00000b40| 65 72 69 6f 72 20 53 63 | 68 65 6d 65 20 70 72 6f |erior Sc|heme pro|
|00000b50| 63 65 73 73 2e 0a 4c 69 | 6b 65 20 20 73 63 68 65 |cess..Li|ke sche|
|00000b60| 6d 65 2d 6d 6f 64 65 20 | 20 65 78 63 65 70 74 20 |me-mode | except |
|00000b70| 74 68 61 74 3a 0a 0a 5c | 5c 5b 61 64 76 65 72 74 |that:..\|\[advert|
|00000b80| 69 73 65 64 2d 78 73 63 | 68 65 6d 65 2d 73 65 6e |ised-xsc|heme-sen|
|00000b90| 64 2d 70 72 65 76 69 6f | 75 73 2d 65 78 70 72 65 |d-previo|us-expre|
|00000ba0| 73 73 69 6f 6e 5d 20 73 | 65 6e 64 73 20 74 68 65 |ssion] s|ends the|
|00000bb0| 20 65 78 70 72 65 73 73 | 69 6f 6e 20 62 65 66 6f | express|ion befo|
|00000bc0| 72 65 20 70 6f 69 6e 74 | 20 74 6f 20 74 68 65 20 |re point| to the |
|00000bd0| 53 63 68 65 6d 65 20 70 | 72 6f 63 65 73 73 20 61 |Scheme p|rocess a|
|00000be0| 73 20 69 6e 70 75 74 0a | 5c 5c 5b 78 73 63 68 65 |s input.|\\[xsche|
|00000bf0| 6d 65 2d 79 61 6e 6b 2d | 70 72 65 76 69 6f 75 73 |me-yank-|previous|
|00000c00| 2d 73 65 6e 64 5d 20 79 | 61 6e 6b 73 20 74 68 65 |-send] y|anks the|
|00000c10| 20 65 78 70 72 65 73 73 | 69 6f 6e 20 6d 6f 73 74 | express|ion most|
|00000c20| 20 72 65 63 65 6e 74 6c | 79 20 73 65 6e 74 20 74 | recentl|y sent t|
|00000c30| 6f 20 53 63 68 65 6d 65 | 0a 0a 41 6c 6c 20 6f 75 |o Scheme|..All ou|
|00000c40| 74 70 75 74 20 66 72 6f | 6d 20 74 68 65 20 53 63 |tput fro|m the Sc|
|00000c50| 68 65 6d 65 20 70 72 6f | 63 65 73 73 20 69 73 20 |heme pro|cess is |
|00000c60| 77 72 69 74 74 65 6e 20 | 69 6e 20 74 68 65 20 53 |written |in the S|
|00000c70| 63 68 65 6d 65 20 70 72 | 6f 63 65 73 73 0a 62 75 |cheme pr|ocess.bu|
|00000c80| 66 66 65 72 2c 20 77 68 | 69 63 68 20 69 73 20 69 |ffer, wh|ich is i|
|00000c90| 6e 69 74 69 61 6c 6c 79 | 20 6e 61 6d 65 64 20 5c |nitially| named \|
|00000ca0| 22 2a 73 63 68 65 6d 65 | 2a 5c 22 2e 20 20 54 68 |"*scheme|*\". Th|
|00000cb0| 65 20 72 65 73 75 6c 74 | 20 6f 66 0a 65 76 61 6c |e result| of.eval|
|00000cc0| 75 61 74 69 6e 67 20 61 | 20 53 63 68 65 6d 65 20 |uating a| Scheme |
|00000cd0| 65 78 70 72 65 73 73 69 | 6f 6e 20 69 73 20 61 6c |expressi|on is al|
|00000ce0| 73 6f 20 70 72 69 6e 74 | 65 64 20 69 6e 20 74 68 |so print|ed in th|
|00000cf0| 65 20 70 72 6f 63 65 73 | 73 20 62 75 66 66 65 72 |e proces|s buffer|
|00000d00| 2c 0a 70 72 65 63 65 64 | 65 64 20 62 79 20 74 68 |,.preced|ed by th|
|00000d10| 65 20 73 74 72 69 6e 67 | 20 5c 22 3b 56 61 6c 75 |e string| \";Valu|
|00000d20| 65 3a 20 5c 22 20 74 6f | 20 68 69 67 68 6c 69 67 |e: \" to| highlig|
|00000d30| 68 74 20 69 74 2e 20 20 | 49 66 20 74 68 65 20 70 |ht it. |If the p|
|00000d40| 72 6f 63 65 73 73 0a 62 | 75 66 66 65 72 20 69 73 |rocess.b|uffer is|
|00000d50| 20 6e 6f 74 20 76 69 73 | 69 62 6c 65 20 61 74 20 | not vis|ible at |
|00000d60| 74 68 61 74 20 74 69 6d | 65 2c 20 74 68 65 20 76 |that tim|e, the v|
|00000d70| 61 6c 75 65 20 77 69 6c | 6c 20 61 6c 73 6f 20 62 |alue wil|l also b|
|00000d80| 65 20 64 69 73 70 6c 61 | 79 65 64 0a 69 6e 20 74 |e displa|yed.in t|
|00000d90| 68 65 20 6d 69 6e 69 62 | 75 66 66 65 72 2e 20 20 |he minib|uffer. |
|00000da0| 49 66 20 61 6e 20 65 72 | 72 6f 72 20 6f 63 63 75 |If an er|ror occu|
|00000db0| 72 73 2c 20 74 68 65 20 | 70 72 6f 63 65 73 73 20 |rs, the |process |
|00000dc0| 62 75 66 66 65 72 20 77 | 69 6c 6c 0a 61 75 74 6f |buffer w|ill.auto|
|00000dd0| 6d 61 74 69 63 61 6c 6c | 79 20 70 6f 70 20 75 70 |maticall|y pop up|
|00000de0| 20 74 6f 20 73 68 6f 77 | 20 79 6f 75 20 74 68 65 | to show| you the|
|00000df0| 20 65 72 72 6f 72 20 6d | 65 73 73 61 67 65 2e 0a | error m|essage..|
|00000e00| 0a 57 68 69 6c 65 20 74 | 68 65 20 53 63 68 65 6d |.While t|he Schem|
|00000e10| 65 20 70 72 6f 63 65 73 | 73 20 69 73 20 72 75 6e |e proces|s is run|
|00000e20| 6e 69 6e 67 2c 20 74 68 | 65 20 6d 6f 64 65 6c 69 |ning, th|e modeli|
|00000e30| 6e 65 73 20 6f 66 20 61 | 6c 6c 20 62 75 66 66 65 |nes of a|ll buffe|
|00000e40| 72 73 20 69 6e 0a 73 63 | 68 65 6d 65 2d 6d 6f 64 |rs in.sc|heme-mod|
|00000e50| 65 20 61 72 65 20 6d 6f | 64 69 66 69 65 64 20 74 |e are mo|dified t|
|00000e60| 6f 20 73 68 6f 77 20 74 | 68 65 20 73 74 61 74 65 |o show t|he state|
|00000e70| 20 6f 66 20 74 68 65 20 | 70 72 6f 63 65 73 73 2e | of the |process.|
|00000e80| 20 20 54 68 65 0a 70 6f | 73 73 69 62 6c 65 20 73 | The.po|ssible s|
|00000e90| 74 61 74 65 73 20 61 6e | 64 20 74 68 65 69 72 20 |tates an|d their |
|00000ea0| 6d 65 61 6e 69 6e 67 73 | 20 61 72 65 3a 0a 0a 69 |meanings| are:..i|
|00000eb0| 6e 70 75 74 09 09 77 61 | 69 74 69 6e 67 20 66 6f |nput..wa|iting fo|
|00000ec0| 72 20 69 6e 70 75 74 0a | 72 75 6e 09 09 65 76 61 |r input.|run..eva|
|00000ed0| 6c 75 61 74 69 6e 67 0a | 67 63 09 09 67 61 72 62 |luating.|gc..garb|
|00000ee0| 61 67 65 20 63 6f 6c 6c | 65 63 74 69 6e 67 0a 0a |age coll|ecting..|
|00000ef0| 54 68 65 20 70 72 6f 63 | 65 73 73 20 62 75 66 66 |The proc|ess buff|
|00000f00| 65 72 27 73 20 6d 6f 64 | 65 6c 69 6e 65 20 63 6f |er's mod|eline co|
|00000f10| 6e 74 61 69 6e 73 20 61 | 64 64 69 74 69 6f 6e 61 |ntains a|dditiona|
|00000f20| 6c 20 69 6e 66 6f 72 6d | 61 74 69 6f 6e 20 77 68 |l inform|ation wh|
|00000f30| 65 72 65 0a 74 68 65 20 | 62 75 66 66 65 72 27 73 |ere.the |buffer's|
|00000f40| 20 6e 61 6d 65 20 69 73 | 20 6e 6f 72 6d 61 6c 6c | name is| normall|
|00000f50| 79 20 64 69 73 70 6c 61 | 79 65 64 3a 20 74 68 65 |y displa|yed: the|
|00000f60| 20 63 6f 6d 6d 61 6e 64 | 20 69 6e 74 65 72 70 72 | command| interpr|
|00000f70| 65 74 65 72 20 6c 65 76 | 65 6c 0a 61 6e 64 20 74 |eter lev|el.and t|
|00000f80| 79 70 65 2e 0a 0a 53 63 | 68 65 6d 65 20 6d 61 69 |ype...Sc|heme mai|
|00000f90| 6e 74 61 69 6e 73 20 61 | 20 73 74 61 63 6b 20 6f |ntains a| stack o|
|00000fa0| 66 20 63 6f 6d 6d 61 6e | 64 20 69 6e 74 65 72 70 |f comman|d interp|
|00000fb0| 72 65 74 65 72 73 2e 20 | 20 45 76 65 72 79 20 74 |reters. | Every t|
|00000fc0| 69 6d 65 20 61 6e 20 65 | 72 72 6f 72 0a 6f 72 20 |ime an e|rror.or |
|00000fd0| 62 72 65 61 6b 70 6f 69 | 6e 74 20 6f 63 63 75 72 |breakpoi|nt occur|
|00000fe0| 73 2c 20 74 68 65 20 63 | 75 72 72 65 6e 74 20 63 |s, the c|urrent c|
|00000ff0| 6f 6d 6d 61 6e 64 20 69 | 6e 74 65 72 70 72 65 74 |ommand i|nterpret|
|00001000| 65 72 20 69 73 20 70 75 | 73 68 65 64 20 6f 6e 20 |er is pu|shed on |
|00001010| 74 68 65 0a 63 6f 6d 6d | 61 6e 64 20 69 6e 74 65 |the.comm|and inte|
|00001020| 72 70 72 65 74 65 72 20 | 73 74 61 63 6b 2c 20 61 |rpreter |stack, a|
|00001030| 6e 64 20 61 20 6e 65 77 | 20 63 6f 6d 6d 61 6e 64 |nd a new| command|
|00001040| 20 69 6e 74 65 72 70 72 | 65 74 65 72 20 69 73 20 | interpr|eter is |
|00001050| 73 74 61 72 74 65 64 2e | 0a 4f 6e 65 20 65 78 61 |started.|.One exa|
|00001060| 6d 70 6c 65 20 6f 66 20 | 77 68 79 20 74 68 69 73 |mple of |why this|
|00001070| 20 69 73 20 64 6f 6e 65 | 20 69 73 20 73 6f 20 74 | is done| is so t|
|00001080| 68 61 74 20 61 6e 20 65 | 72 72 6f 72 20 74 68 61 |hat an e|rror tha|
|00001090| 74 20 6f 63 63 75 72 73 | 20 77 68 69 6c 65 0a 79 |t occurs| while.y|
|000010a0| 6f 75 20 61 72 65 20 64 | 65 62 75 67 67 69 6e 67 |ou are d|ebugging|
|000010b0| 20 61 6e 6f 74 68 65 72 | 20 65 72 72 6f 72 20 77 | another| error w|
|000010c0| 69 6c 6c 20 6e 6f 74 20 | 64 65 73 74 72 6f 79 20 |ill not |destroy |
|000010d0| 74 68 65 20 73 74 61 74 | 65 20 6f 66 20 74 68 65 |the stat|e of the|
|000010e0| 0a 69 6e 69 74 69 61 6c | 20 65 72 72 6f 72 2c 20 |.initial| error, |
|000010f0| 61 6c 6c 6f 77 69 6e 67 | 20 79 6f 75 20 74 6f 20 |allowing| you to |
|00001100| 72 65 74 75 72 6e 20 74 | 6f 20 69 74 20 61 66 74 |return t|o it aft|
|00001110| 65 72 20 74 68 65 20 73 | 65 63 6f 6e 64 20 65 72 |er the s|econd er|
|00001120| 72 6f 72 20 68 61 73 0a | 62 65 65 6e 20 66 69 78 |ror has.|been fix|
|00001130| 65 64 2e 0a 0a 54 68 65 | 20 63 6f 6d 6d 61 6e 64 |ed...The| command|
|00001140| 20 69 6e 74 65 72 70 72 | 65 74 65 72 20 6c 65 76 | interpr|eter lev|
|00001150| 65 6c 20 69 6e 64 69 63 | 61 74 65 73 20 68 6f 77 |el indic|ates how|
|00001160| 20 6d 61 6e 79 20 69 6e | 74 65 72 70 72 65 74 65 | many in|terprete|
|00001170| 72 73 20 61 72 65 20 69 | 6e 0a 74 68 65 20 63 6f |rs are i|n.the co|
|00001180| 6d 6d 61 6e 64 20 69 6e | 74 65 72 70 72 65 74 65 |mmand in|terprete|
|00001190| 72 20 73 74 61 63 6b 2e | 20 20 49 74 20 69 73 20 |r stack.| It is |
|000011a0| 69 6e 69 74 69 61 6c 6c | 79 20 73 65 74 20 74 6f |initiall|y set to|
|000011b0| 20 6f 6e 65 2c 20 61 6e | 64 20 69 74 20 69 73 0a | one, an|d it is.|
|000011c0| 69 6e 63 72 65 6d 65 6e | 74 65 64 20 65 76 65 72 |incremen|ted ever|
|000011d0| 79 20 74 69 6d 65 20 74 | 68 61 74 20 73 74 61 63 |y time t|hat stac|
|000011e0| 6b 20 69 73 20 70 75 73 | 68 65 64 2c 20 61 6e 64 |k is pus|hed, and|
|000011f0| 20 64 65 63 72 65 6d 65 | 6e 74 65 64 20 65 76 65 | decreme|nted eve|
|00001200| 72 79 0a 74 69 6d 65 20 | 69 74 20 69 73 20 70 6f |ry.time |it is po|
|00001210| 70 70 65 64 2e 20 20 54 | 68 65 20 66 6f 6c 6c 6f |pped. T|he follo|
|00001220| 77 69 6e 67 20 63 6f 6d | 6d 61 6e 64 73 20 61 72 |wing com|mands ar|
|00001230| 65 20 75 73 65 66 75 6c | 20 66 6f 72 20 6d 61 6e |e useful| for man|
|00001240| 69 70 75 6c 61 74 69 6e | 67 0a 74 68 65 20 63 6f |ipulatin|g.the co|
|00001250| 6d 6d 61 6e 64 20 69 6e | 74 65 72 70 72 65 74 65 |mmand in|terprete|
|00001260| 72 20 73 74 61 63 6b 3a | 0a 0a 5c 5c 5b 78 73 63 |r stack:|..\\[xsc|
|00001270| 68 65 6d 65 2d 73 65 6e | 64 2d 62 72 65 61 6b 70 |heme-sen|d-breakp|
|00001280| 6f 69 6e 74 2d 69 6e 74 | 65 72 72 75 70 74 5d 09 |oint-int|errupt].|
|00001290| 70 75 73 68 65 73 20 74 | 68 65 20 73 74 61 63 6b |pushes t|he stack|
|000012a0| 20 6f 6e 63 65 0a 5c 5c | 5b 78 73 63 68 65 6d 65 | once.\\|[xscheme|
|000012b0| 2d 73 65 6e 64 2d 63 6f | 6e 74 72 6f 6c 2d 75 2d |-send-co|ntrol-u-|
|000012c0| 69 6e 74 65 72 72 75 70 | 74 5d 09 70 6f 70 73 20 |interrup|t].pops |
|000012d0| 74 68 65 20 73 74 61 63 | 6b 20 6f 6e 63 65 0a 5c |the stac|k once.\|
|000012e0| 5c 5b 78 73 63 68 65 6d | 65 2d 73 65 6e 64 2d 63 |\[xschem|e-send-c|
|000012f0| 6f 6e 74 72 6f 6c 2d 67 | 2d 69 6e 74 65 72 72 75 |ontrol-g|-interru|
|00001300| 70 74 5d 09 70 6f 70 73 | 20 65 76 65 72 79 74 68 |pt].pops| everyth|
|00001310| 69 6e 67 20 6f 66 66 0a | 5c 5c 5b 78 73 63 68 65 |ing off.|\\[xsche|
|00001320| 6d 65 2d 73 65 6e 64 2d | 63 6f 6e 74 72 6f 6c 2d |me-send-|control-|
|00001330| 78 2d 69 6e 74 65 72 72 | 75 70 74 5d 09 61 62 6f |x-interr|upt].abo|
|00001340| 72 74 73 20 65 76 61 6c | 75 61 74 69 6f 6e 2c 20 |rts eval|uation, |
|00001350| 64 6f 65 73 6e 27 74 20 | 61 66 66 65 63 74 20 73 |doesn't |affect s|
|00001360| 74 61 63 6b 0a 0a 53 6f | 6d 65 20 70 6f 73 73 69 |tack..So|me possi|
|00001370| 62 6c 65 20 63 6f 6d 6d | 61 6e 64 20 69 6e 74 65 |ble comm|and inte|
|00001380| 72 70 72 65 74 65 72 20 | 74 79 70 65 73 20 61 6e |rpreter |types an|
|00001390| 64 20 74 68 65 69 72 20 | 6d 65 61 6e 69 6e 67 73 |d their |meanings|
|000013a0| 20 61 72 65 3a 0a 0a 5b | 45 76 61 6c 75 61 74 6f | are:..[|Evaluato|
|000013b0| 72 5d 09 72 65 61 64 2d | 65 76 61 6c 2d 70 72 69 |r].read-|eval-pri|
|000013c0| 6e 74 20 6c 6f 6f 70 20 | 66 6f 72 20 65 76 61 6c |nt loop |for eval|
|000013d0| 75 61 74 69 6e 67 20 65 | 78 70 72 65 73 73 69 6f |uating e|xpressio|
|000013e0| 6e 73 0a 5b 44 65 62 75 | 67 67 65 72 5d 09 73 69 |ns.[Debu|gger].si|
|000013f0| 6e 67 6c 65 20 63 68 61 | 72 61 63 74 65 72 20 63 |ngle cha|racter c|
|00001400| 6f 6d 6d 61 6e 64 73 20 | 66 6f 72 20 64 65 62 75 |ommands |for debu|
|00001410| 67 67 69 6e 67 20 65 72 | 72 6f 72 73 0a 5b 57 68 |gging er|rors.[Wh|
|00001420| 65 72 65 5d 09 09 73 69 | 6e 67 6c 65 20 63 68 61 |ere]..si|ngle cha|
|00001430| 72 61 63 74 65 72 20 63 | 6f 6d 6d 61 6e 64 73 20 |racter c|ommands |
|00001440| 66 6f 72 20 65 78 61 6d | 69 6e 69 6e 67 20 65 6e |for exam|ining en|
|00001450| 76 69 72 6f 6e 6d 65 6e | 74 73 0a 0a 53 74 61 72 |vironmen|ts..Star|
|00001460| 74 69 6e 67 20 77 69 74 | 68 20 72 65 6c 65 61 73 |ting wit|h releas|
|00001470| 65 20 36 2e 32 20 6f 66 | 20 53 63 68 65 6d 65 2c |e 6.2 of| Scheme,|
|00001480| 20 74 68 65 20 6c 61 74 | 74 65 72 20 74 77 6f 20 | the lat|ter two |
|00001490| 74 79 70 65 73 20 6f 66 | 20 63 6f 6d 6d 61 6e 64 |types of| command|
|000014a0| 0a 69 6e 74 65 72 70 72 | 65 74 65 72 73 20 77 69 |.interpr|eters wi|
|000014b0| 6c 6c 20 63 68 61 6e 67 | 65 20 74 68 65 20 6d 61 |ll chang|e the ma|
|000014c0| 6a 6f 72 20 6d 6f 64 65 | 20 6f 66 20 74 68 65 20 |jor mode| of the |
|000014d0| 53 63 68 65 6d 65 20 70 | 72 6f 63 65 73 73 20 62 |Scheme p|rocess b|
|000014e0| 75 66 66 65 72 0a 74 6f | 20 73 63 68 65 6d 65 2d |uffer.to| scheme-|
|000014f0| 64 65 62 75 67 67 65 72 | 2d 6d 6f 64 65 20 2c 20 |debugger|-mode , |
|00001500| 69 6e 20 77 68 69 63 68 | 20 74 68 65 20 65 76 61 |in which| the eva|
|00001510| 6c 75 61 74 69 6f 6e 20 | 63 6f 6d 6d 61 6e 64 73 |luation |commands|
|00001520| 20 61 72 65 0a 64 69 73 | 61 62 6c 65 64 2c 20 61 | are.dis|abled, a|
|00001530| 6e 64 20 74 68 65 20 6b | 65 79 73 20 77 68 69 63 |nd the k|eys whic|
|00001540| 68 20 6e 6f 72 6d 61 6c | 6c 79 20 73 65 6c 66 20 |h normal|ly self |
|00001550| 69 6e 73 65 72 74 20 69 | 6e 73 74 65 61 64 20 73 |insert i|nstead s|
|00001560| 65 6e 64 0a 74 68 65 6d | 73 65 6c 76 65 73 20 74 |end.them|selves t|
|00001570| 6f 20 74 68 65 20 53 63 | 68 65 6d 65 20 70 72 6f |o the Sc|heme pro|
|00001580| 63 65 73 73 2e 20 20 54 | 68 65 20 63 6f 6d 6d 61 |cess. T|he comma|
|00001590| 6e 64 20 63 68 61 72 61 | 63 74 65 72 20 3f 20 77 |nd chara|cter ? w|
|000015a0| 69 6c 6c 20 6c 69 73 74 | 0a 74 68 65 20 61 76 61 |ill list|.the ava|
|000015b0| 69 6c 61 62 6c 65 20 63 | 6f 6d 6d 61 6e 64 73 2e |ilable c|ommands.|
|000015c0| 0a 0a 46 6f 72 20 6f 6c | 64 65 72 20 72 65 6c 65 |..For ol|der rele|
|000015d0| 61 73 65 73 20 6f 66 20 | 53 63 68 65 6d 65 2c 20 |ases of |Scheme, |
|000015e0| 74 68 65 20 6d 61 6a 6f | 72 20 6d 6f 64 65 20 77 |the majo|r mode w|
|000015f0| 69 6c 6c 20 62 65 20 62 | 65 0a 73 63 68 65 6d 65 |ill be b|e.scheme|
|00001600| 2d 69 6e 74 65 72 61 63 | 74 69 6f 6e 2d 6d 6f 64 |-interac|tion-mod|
|00001610| 65 20 2c 20 61 6e 64 20 | 74 68 65 20 63 6f 6d 6d |e , and |the comm|
|00001620| 61 6e 64 20 63 68 61 72 | 61 63 74 65 72 73 20 6d |and char|acters m|
|00001630| 75 73 74 20 62 65 20 73 | 65 6e 74 20 61 73 0a 69 |ust be s|ent as.i|
|00001640| 66 20 74 68 65 79 20 77 | 65 72 65 20 65 78 70 72 |f they w|ere expr|
|00001650| 65 73 73 69 6f 6e 73 2e | 0a 0a 43 6f 6d 6d 61 6e |essions.|..Comman|
|00001660| 64 73 3a 0a 44 65 6c 65 | 74 65 20 63 6f 6e 76 65 |ds:.Dele|te conve|
|00001670| 72 74 73 20 74 61 62 73 | 20 74 6f 20 73 70 61 63 |rts tabs| to spac|
|00001680| 65 73 20 61 73 20 69 74 | 20 6d 6f 76 65 73 20 62 |es as it| moves b|
|00001690| 61 63 6b 2e 0a 42 6c 61 | 6e 6b 20 6c 69 6e 65 73 |ack..Bla|nk lines|
|000016a0| 20 73 65 70 61 72 61 74 | 65 20 70 61 72 61 67 72 | separat|e paragr|
|000016b0| 61 70 68 73 2e 20 20 53 | 65 6d 69 63 6f 6c 6f 6e |aphs. S|emicolon|
|000016c0| 73 20 73 74 61 72 74 20 | 63 6f 6d 6d 65 6e 74 73 |s start |comments|
|000016d0| 2e 0a 5c 5c 7b 73 63 68 | 65 6d 65 2d 69 6e 74 65 |..\\{sch|eme-inte|
|000016e0| 72 61 63 74 69 6f 6e 2d | 6d 6f 64 65 2d 6d 61 70 |raction-|mode-map|
|000016f0| 7d 0a 0a 45 6e 74 72 79 | 20 74 6f 20 74 68 69 73 |}..Entry| to this|
|00001700| 20 6d 6f 64 65 20 63 61 | 6c 6c 73 20 74 68 65 20 | mode ca|lls the |
|00001710| 76 61 6c 75 65 20 6f 66 | 20 73 63 68 65 6d 65 2d |value of| scheme-|
|00001720| 69 6e 74 65 72 61 63 74 | 69 6f 6e 2d 6d 6f 64 65 |interact|ion-mode|
|00001730| 2d 68 6f 6f 6b 0a 77 69 | 74 68 20 6e 6f 20 61 72 |-hook.wi|th no ar|
|00001740| 67 73 2c 20 69 66 20 74 | 68 61 74 20 76 61 6c 75 |gs, if t|hat valu|
|00001750| 65 20 69 73 20 6e 6f 6e | 2d 6e 69 6c 2e 22 20 28 |e is non|-nil." (|
|00001760| 69 6e 74 65 72 61 63 74 | 69 76 65 29 20 28 62 79 |interact|ive) (by|
|00001770| 74 65 2d 63 6f 64 65 20 | 22 c0 88 c1 20 88 c2 20 |te-code |"... .. |
|00001780| 88 c3 20 88 c4 c5 21 88 | c6 c7 21 87 22 20 5b 6e |.. ...!.|..!." [n|
|00001790| 69 6c 20 6b 69 6c 6c 2d | 61 6c 6c 2d 6c 6f 63 61 |il kill-|all-loca|
|000017a0| 6c 2d 76 61 72 69 61 62 | 6c 65 73 20 73 63 68 65 |l-variab|les sche|
|000017b0| 6d 65 2d 69 6e 74 65 72 | 61 63 74 69 6f 6e 2d 6d |me-inter|action-m|
|000017c0| 6f 64 65 2d 69 6e 69 74 | 69 61 6c 69 7a 65 20 73 |ode-init|ialize s|
|000017d0| 63 68 65 6d 65 2d 6d 6f | 64 65 2d 76 61 72 69 61 |cheme-mo|de-varia|
|000017e0| 62 6c 65 73 20 6d 61 6b | 65 2d 6c 6f 63 61 6c 2d |bles mak|e-local-|
|000017f0| 76 61 72 69 61 62 6c 65 | 20 78 73 63 68 65 6d 65 |variable| xscheme|
|00001800| 2d 70 72 65 76 69 6f 75 | 73 2d 73 65 6e 64 20 72 |-previou|s-send r|
|00001810| 75 6e 2d 68 6f 6f 6b 73 | 20 73 63 68 65 6d 65 2d |un-hooks| scheme-|
|00001820| 69 6e 74 65 72 61 63 74 | 69 6f 6e 2d 6d 6f 64 65 |interact|ion-mode|
|00001830| 2d 68 6f 6f 6b 5d 20 36 | 29 29 0a 0a 28 64 65 66 |-hook] 6|))..(def|
|00001840| 75 6e 20 73 63 68 65 6d | 65 2d 69 6e 74 65 72 61 |un schem|e-intera|
|00001850| 63 74 69 6f 6e 2d 6d 6f | 64 65 2d 69 6e 69 74 69 |ction-mo|de-initi|
|00001860| 61 6c 69 7a 65 20 6e 69 | 6c 20 28 62 79 74 65 2d |alize ni|l (byte-|
|00001870| 63 6f 64 65 20 22 c3 08 | 21 88 c4 89 11 88 c5 89 |code "..|!.......|
|00001880| 12 87 22 20 5b 73 63 68 | 65 6d 65 2d 69 6e 74 65 |.." [sch|eme-inte|
|00001890| 72 61 63 74 69 6f 6e 2d | 6d 6f 64 65 2d 6d 61 70 |raction-|mode-map|
|000018a0| 20 6d 61 6a 6f 72 2d 6d | 6f 64 65 20 6d 6f 64 65 | major-m|ode mode|
|000018b0| 2d 6e 61 6d 65 20 75 73 | 65 2d 6c 6f 63 61 6c 2d |-name us|e-local-|
|000018c0| 6d 61 70 20 73 63 68 65 | 6d 65 2d 69 6e 74 65 72 |map sche|me-inter|
|000018d0| 61 63 74 69 6f 6e 2d 6d | 6f 64 65 20 22 53 63 68 |action-m|ode "Sch|
|000018e0| 65 6d 65 20 49 6e 74 65 | 72 61 63 74 69 6f 6e 22 |eme Inte|raction"|
|000018f0| 5d 20 33 29 29 0a 0a 28 | 64 65 66 75 6e 20 73 63 |] 3))..(|defun sc|
|00001900| 68 65 6d 65 2d 69 6e 74 | 65 72 61 63 74 69 6f 6e |heme-int|eraction|
|00001910| 2d 6d 6f 64 65 2d 63 6f | 6d 6d 61 6e 64 73 20 28 |-mode-co|mmands (|
|00001920| 6b 65 79 6d 61 70 29 20 | 28 62 79 74 65 2d 63 6f |keymap) |(byte-co|
|00001930| 64 65 20 22 c1 08 c2 c3 | 23 88 c1 08 c4 c5 23 88 |de "....|#.....#.|
|00001940| c1 08 c6 c7 23 87 22 20 | 5b 6b 65 79 6d 61 70 20 |....#." |[keymap |
|00001950| 64 65 66 69 6e 65 2d 6b | 65 79 20 22 03 0d 22 20 |define-k|ey ".." |
|00001960| 78 73 63 68 65 6d 65 2d | 73 65 6e 64 2d 63 75 72 |xscheme-|send-cur|
|00001970| 72 65 6e 74 2d 6c 69 6e | 65 20 22 03 10 22 20 78 |rent-lin|e ".." x|
|00001980| 73 63 68 65 6d 65 2d 73 | 65 6e 64 2d 70 72 6f 63 |scheme-s|end-proc|
|00001990| 65 65 64 20 22 03 19 22 | 20 78 73 63 68 65 6d 65 |eed ".."| xscheme|
|000019a0| 2d 79 61 6e 6b 2d 70 72 | 65 76 69 6f 75 73 2d 73 |-yank-pr|evious-s|
|000019b0| 65 6e 64 5d 20 36 29 29 | 0a 0a 28 64 65 66 76 61 |end] 6))|..(defva|
|000019c0| 72 20 73 63 68 65 6d 65 | 2d 69 6e 74 65 72 61 63 |r scheme|-interac|
|000019d0| 74 69 6f 6e 2d 6d 6f 64 | 65 2d 6d 61 70 20 6e 69 |tion-mod|e-map ni|
|000019e0| 6c 29 0a 0a 28 69 66 20 | 28 6e 6f 74 20 73 63 68 |l)..(if |(not sch|
|000019f0| 65 6d 65 2d 69 6e 74 65 | 72 61 63 74 69 6f 6e 2d |eme-inte|raction-|
|00001a00| 6d 6f 64 65 2d 6d 61 70 | 29 20 28 70 72 6f 67 6e |mode-map|) (progn|
|00001a10| 20 28 73 65 74 71 20 73 | 63 68 65 6d 65 2d 69 6e | (setq s|cheme-in|
|00001a20| 74 65 72 61 63 74 69 6f | 6e 2d 6d 6f 64 65 2d 6d |teractio|n-mode-m|
|00001a30| 61 70 20 28 6d 61 6b 65 | 2d 6b 65 79 6d 61 70 29 |ap (make|-keymap)|
|00001a40| 29 20 28 73 63 68 65 6d | 65 2d 6d 6f 64 65 2d 63 |) (schem|e-mode-c|
|00001a50| 6f 6d 6d 61 6e 64 73 20 | 73 63 68 65 6d 65 2d 69 |ommands |scheme-i|
|00001a60| 6e 74 65 72 61 63 74 69 | 6f 6e 2d 6d 6f 64 65 2d |nteracti|on-mode-|
|00001a70| 6d 61 70 29 20 28 78 73 | 63 68 65 6d 65 2d 69 6e |map) (xs|cheme-in|
|00001a80| 74 65 72 72 75 70 74 2d | 63 6f 6d 6d 61 6e 64 73 |terrupt-|commands|
|00001a90| 20 73 63 68 65 6d 65 2d | 69 6e 74 65 72 61 63 74 | scheme-|interact|
|00001aa0| 69 6f 6e 2d 6d 6f 64 65 | 2d 6d 61 70 29 20 28 78 |ion-mode|-map) (x|
|00001ab0| 73 63 68 65 6d 65 2d 65 | 76 61 6c 75 61 74 69 6f |scheme-e|valuatio|
|00001ac0| 6e 2d 63 6f 6d 6d 61 6e | 64 73 20 73 63 68 65 6d |n-comman|ds schem|
|00001ad0| 65 2d 69 6e 74 65 72 61 | 63 74 69 6f 6e 2d 6d 6f |e-intera|ction-mo|
|00001ae0| 64 65 2d 6d 61 70 29 20 | 28 73 63 68 65 6d 65 2d |de-map) |(scheme-|
|00001af0| 69 6e 74 65 72 61 63 74 | 69 6f 6e 2d 6d 6f 64 65 |interact|ion-mode|
|00001b00| 2d 63 6f 6d 6d 61 6e 64 | 73 20 73 63 68 65 6d 65 |-command|s scheme|
|00001b10| 2d 69 6e 74 65 72 61 63 | 74 69 6f 6e 2d 6d 6f 64 |-interac|tion-mod|
|00001b20| 65 2d 6d 61 70 29 29 29 | 0a 0a 28 64 65 66 75 6e |e-map)))|..(defun|
|00001b30| 20 78 73 63 68 65 6d 65 | 2d 65 6e 74 65 72 2d 69 | xscheme|-enter-i|
|00001b40| 6e 74 65 72 61 63 74 69 | 6f 6e 2d 6d 6f 64 65 20 |nteracti|on-mode |
|00001b50| 6e 69 6c 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |nil (byt|e-code "|
|00001b60| 8a c1 20 71 88 08 c2 3d | 3f 85 19 00 08 c3 3d 83 |.. q...=|?.....=.|
|00001b70| 17 00 c4 20 82 19 00 c2 | 20 29 87 22 20 5b 6d 61 |... ....| )." [ma|
|00001b80| 6a 6f 72 2d 6d 6f 64 65 | 20 78 73 63 68 65 6d 65 |jor-mode| xscheme|
|00001b90| 2d 70 72 6f 63 65 73 73 | 2d 62 75 66 66 65 72 20 |-process|-buffer |
|00001ba0| 73 63 68 65 6d 65 2d 69 | 6e 74 65 72 61 63 74 69 |scheme-i|nteracti|
|00001bb0| 6f 6e 2d 6d 6f 64 65 20 | 73 63 68 65 6d 65 2d 64 |on-mode |scheme-d|
|00001bc0| 65 62 75 67 67 65 72 2d | 6d 6f 64 65 20 73 63 68 |ebugger-|mode sch|
|00001bd0| 65 6d 65 2d 69 6e 74 65 | 72 61 63 74 69 6f 6e 2d |eme-inte|raction-|
|00001be0| 6d 6f 64 65 2d 69 6e 69 | 74 69 61 6c 69 7a 65 5d |mode-ini|tialize]|
|00001bf0| 20 34 29 29 0a 0a 28 66 | 73 65 74 20 28 71 75 6f | 4))..(f|set (quo|
|00001c00| 74 65 20 61 64 76 65 72 | 74 69 73 65 64 2d 78 73 |te adver|tised-xs|
|00001c10| 63 68 65 6d 65 2d 73 65 | 6e 64 2d 70 72 65 76 69 |cheme-se|nd-previ|
|00001c20| 6f 75 73 2d 65 78 70 72 | 65 73 73 69 6f 6e 29 20 |ous-expr|ession) |
|00001c30| 28 71 75 6f 74 65 20 78 | 73 63 68 65 6d 65 2d 73 |(quote x|scheme-s|
|00001c40| 65 6e 64 2d 70 72 65 76 | 69 6f 75 73 2d 65 78 70 |end-prev|ious-exp|
|00001c50| 72 65 73 73 69 6f 6e 29 | 29 0a 0a 28 64 65 66 75 |ression)|)..(defu|
|00001c60| 6e 20 73 63 68 65 6d 65 | 2d 64 65 62 75 67 67 65 |n scheme|-debugge|
|00001c70| 72 2d 6d 6f 64 65 20 6e | 69 6c 20 22 5c 0a 4d 61 |r-mode n|il "\.Ma|
|00001c80| 6a 6f 72 20 6d 6f 64 65 | 20 66 6f 72 20 65 78 65 |jor mode| for exe|
|00001c90| 63 75 74 69 6e 67 20 74 | 68 65 20 53 63 68 65 6d |cuting t|he Schem|
|00001ca0| 65 20 64 65 62 75 67 67 | 65 72 2e 0a 4c 69 6b 65 |e debugg|er..Like|
|00001cb0| 20 20 73 63 68 65 6d 65 | 2d 6d 6f 64 65 20 20 65 | scheme|-mode e|
|00001cc0| 78 63 65 70 74 20 74 68 | 61 74 20 74 68 65 20 65 |xcept th|at the e|
|00001cd0| 76 61 6c 75 61 74 69 6f | 6e 20 63 6f 6d 6d 61 6e |valuatio|n comman|
|00001ce0| 64 73 0a 61 72 65 20 64 | 69 73 61 62 6c 65 64 2c |ds.are d|isabled,|
|00001cf0| 20 61 6e 64 20 63 68 61 | 72 61 63 74 65 72 73 20 | and cha|racters |
|00001d00| 74 68 61 74 20 77 6f 75 | 6c 64 20 6e 6f 72 6d 61 |that wou|ld norma|
|00001d10| 6c 6c 79 20 62 65 20 73 | 65 6c 66 20 69 6e 73 65 |lly be s|elf inse|
|00001d20| 72 74 69 6e 67 20 61 72 | 65 0a 73 65 6e 74 20 74 |rting ar|e.sent t|
|00001d30| 6f 20 74 68 65 20 53 63 | 68 65 6d 65 20 70 72 6f |o the Sc|heme pro|
|00001d40| 63 65 73 73 20 69 6e 73 | 74 65 61 64 2e 20 20 54 |cess ins|tead. T|
|00001d50| 79 70 69 6e 67 20 3f 20 | 20 77 69 6c 6c 20 73 68 |yping ? | will sh|
|00001d60| 6f 77 20 79 6f 75 20 77 | 68 69 63 68 0a 63 68 61 |ow you w|hich.cha|
|00001d70| 72 61 63 74 65 72 73 20 | 70 65 72 66 6f 72 6d 20 |racters |perform |
|00001d80| 75 73 65 66 75 6c 20 66 | 75 6e 63 74 69 6f 6e 73 |useful f|unctions|
|00001d90| 2e 0a 0a 43 6f 6d 6d 61 | 6e 64 73 3a 0a 5c 5c 7b |...Comma|nds:.\\{|
|00001da0| 73 63 68 65 6d 65 2d 64 | 65 62 75 67 67 65 72 2d |scheme-d|ebugger-|
|00001db0| 6d 6f 64 65 2d 6d 61 70 | 7d 22 20 28 62 79 74 65 |mode-map|}" (byte|
|00001dc0| 2d 63 6f 64 65 20 22 c0 | c1 21 87 22 20 5b 65 72 |-code ".|.!." [er|
|00001dd0| 72 6f 72 20 22 49 6c 6c | 65 67 61 6c 20 65 6e 74 |ror "Ill|egal ent|
|00001de0| 72 79 20 74 6f 20 73 63 | 68 65 6d 65 2d 64 65 62 |ry to sc|heme-deb|
|00001df0| 75 67 67 65 72 2d 6d 6f | 64 65 22 5d 20 32 29 29 |ugger-mo|de"] 2))|
|00001e00| 0a 0a 28 64 65 66 75 6e | 20 73 63 68 65 6d 65 2d |..(defun| scheme-|
|00001e10| 64 65 62 75 67 67 65 72 | 2d 6d 6f 64 65 2d 69 6e |debugger|-mode-in|
|00001e20| 69 74 69 61 6c 69 7a 65 | 20 6e 69 6c 20 28 62 79 |itialize| nil (by|
|00001e30| 74 65 2d 63 6f 64 65 20 | 22 c3 08 21 88 c4 89 11 |te-code |"..!....|
|00001e40| 88 c5 89 12 87 22 20 5b | 73 63 68 65 6d 65 2d 64 |....." [|scheme-d|
|00001e50| 65 62 75 67 67 65 72 2d | 6d 6f 64 65 2d 6d 61 70 |ebugger-|mode-map|
|00001e60| 20 6d 61 6a 6f 72 2d 6d | 6f 64 65 20 6d 6f 64 65 | major-m|ode mode|
|00001e70| 2d 6e 61 6d 65 20 75 73 | 65 2d 6c 6f 63 61 6c 2d |-name us|e-local-|
|00001e80| 6d 61 70 20 73 63 68 65 | 6d 65 2d 64 65 62 75 67 |map sche|me-debug|
|00001e90| 67 65 72 2d 6d 6f 64 65 | 20 22 53 63 68 65 6d 65 |ger-mode| "Scheme|
|00001ea0| 20 44 65 62 75 67 67 65 | 72 22 5d 20 33 29 29 0a | Debugge|r"] 3)).|
|00001eb0| 0a 28 64 65 66 75 6e 20 | 73 63 68 65 6d 65 2d 64 |.(defun |scheme-d|
|00001ec0| 65 62 75 67 67 65 72 2d | 6d 6f 64 65 2d 63 6f 6d |ebugger-|mode-com|
|00001ed0| 6d 61 6e 64 73 20 28 6b | 65 79 6d 61 70 29 20 28 |mands (k|eymap) (|
|00001ee0| 62 79 74 65 2d 63 6f 64 | 65 20 22 c2 18 08 c3 57 |byte-cod|e "....W|
|00001ef0| 85 18 00 c4 09 c5 08 21 | c6 23 88 08 54 89 10 88 |.......!|.#..T...|
|00001f00| 82 02 00 29 87 22 20 5b | 63 68 61 72 20 6b 65 79 |...)." [|char key|
|00001f10| 6d 61 70 20 33 32 20 31 | 32 37 20 64 65 66 69 6e |map 32 1|27 defin|
|00001f20| 65 2d 6b 65 79 20 63 68 | 61 72 2d 74 6f 2d 73 74 |e-key ch|ar-to-st|
|00001f30| 72 69 6e 67 20 73 63 68 | 65 6d 65 2d 64 65 62 75 |ring sch|eme-debu|
|00001f40| 67 67 65 72 2d 73 65 6c | 66 2d 69 6e 73 65 72 74 |gger-sel|f-insert|
|00001f50| 5d 20 36 29 29 0a 0a 28 | 64 65 66 76 61 72 20 73 |] 6))..(|defvar s|
|00001f60| 63 68 65 6d 65 2d 64 65 | 62 75 67 67 65 72 2d 6d |cheme-de|bugger-m|
|00001f70| 6f 64 65 2d 6d 61 70 20 | 6e 69 6c 29 0a 0a 28 69 |ode-map |nil)..(i|
|00001f80| 66 20 28 6e 6f 74 20 73 | 63 68 65 6d 65 2d 64 65 |f (not s|cheme-de|
|00001f90| 62 75 67 67 65 72 2d 6d | 6f 64 65 2d 6d 61 70 29 |bugger-m|ode-map)|
|00001fa0| 20 28 70 72 6f 67 6e 20 | 28 73 65 74 71 20 73 63 | (progn |(setq sc|
|00001fb0| 68 65 6d 65 2d 64 65 62 | 75 67 67 65 72 2d 6d 6f |heme-deb|ugger-mo|
|00001fc0| 64 65 2d 6d 61 70 20 28 | 6d 61 6b 65 2d 6b 65 79 |de-map (|make-key|
|00001fd0| 6d 61 70 29 29 20 28 73 | 63 68 65 6d 65 2d 6d 6f |map)) (s|cheme-mo|
|00001fe0| 64 65 2d 63 6f 6d 6d 61 | 6e 64 73 20 73 63 68 65 |de-comma|nds sche|
|00001ff0| 6d 65 2d 64 65 62 75 67 | 67 65 72 2d 6d 6f 64 65 |me-debug|ger-mode|
|00002000| 2d 6d 61 70 29 20 28 78 | 73 63 68 65 6d 65 2d 69 |-map) (x|scheme-i|
|00002010| 6e 74 65 72 72 75 70 74 | 2d 63 6f 6d 6d 61 6e 64 |nterrupt|-command|
|00002020| 73 20 73 63 68 65 6d 65 | 2d 64 65 62 75 67 67 65 |s scheme|-debugge|
|00002030| 72 2d 6d 6f 64 65 2d 6d | 61 70 29 20 28 73 63 68 |r-mode-m|ap) (sch|
|00002040| 65 6d 65 2d 64 65 62 75 | 67 67 65 72 2d 6d 6f 64 |eme-debu|gger-mod|
|00002050| 65 2d 63 6f 6d 6d 61 6e | 64 73 20 73 63 68 65 6d |e-comman|ds schem|
|00002060| 65 2d 64 65 62 75 67 67 | 65 72 2d 6d 6f 64 65 2d |e-debugg|er-mode-|
|00002070| 6d 61 70 29 29 29 0a 0a | 28 64 65 66 75 6e 20 73 |map)))..|(defun s|
|00002080| 63 68 65 6d 65 2d 64 65 | 62 75 67 67 65 72 2d 73 |cheme-de|bugger-s|
|00002090| 65 6c 66 2d 69 6e 73 65 | 72 74 20 6e 69 6c 20 22 |elf-inse|rt nil "|
|000020a0| 5c 0a 54 72 61 6e 73 6d | 69 74 20 74 68 69 73 20 |\.Transm|it this |
|000020b0| 63 68 61 72 61 63 74 65 | 72 20 74 6f 20 74 68 65 |characte|r to the|
|000020c0| 20 53 63 68 65 6d 65 20 | 70 72 6f 63 65 73 73 2e | Scheme |process.|
|000020d0| 22 20 28 69 6e 74 65 72 | 61 63 74 69 76 65 29 20 |" (inter|active) |
|000020e0| 28 62 79 74 65 2d 63 6f | 64 65 20 22 c1 88 c2 08 |(byte-co|de "....|
|000020f0| 21 87 22 20 5b 6c 61 73 | 74 2d 63 6f 6d 6d 61 6e |!." [las|t-comman|
|00002100| 64 2d 63 68 61 72 20 6e | 69 6c 20 78 73 63 68 65 |d-char n|il xsche|
|00002110| 6d 65 2d 73 65 6e 64 2d | 63 68 61 72 5d 20 32 29 |me-send-|char] 2)|
|00002120| 29 0a 0a 28 64 65 66 75 | 6e 20 78 73 63 68 65 6d |)..(defu|n xschem|
|00002130| 65 2d 65 6e 74 65 72 2d | 64 65 62 75 67 67 65 72 |e-enter-|debugger|
|00002140| 2d 6d 6f 64 65 20 28 70 | 72 6f 6d 70 74 2d 73 74 |-mode (p|rompt-st|
|00002150| 72 69 6e 67 29 20 28 62 | 79 74 65 2d 63 6f 64 65 |ring) (b|yte-code|
|00002160| 20 22 8a c1 20 71 88 08 | c2 3d 3f 85 18 00 08 c3 | ".. q..|.=?.....|
|00002170| 3d 3f 85 15 00 c3 20 88 | c4 20 29 87 22 20 5b 6d |=?.... .|. )." [m|
|00002180| 61 6a 6f 72 2d 6d 6f 64 | 65 20 78 73 63 68 65 6d |ajor-mod|e xschem|
|00002190| 65 2d 70 72 6f 63 65 73 | 73 2d 62 75 66 66 65 72 |e-proces|s-buffer|
|000021a0| 20 73 63 68 65 6d 65 2d | 64 65 62 75 67 67 65 72 | scheme-|debugger|
|000021b0| 2d 6d 6f 64 65 20 73 63 | 68 65 6d 65 2d 69 6e 74 |-mode sc|heme-int|
|000021c0| 65 72 61 63 74 69 6f 6e | 2d 6d 6f 64 65 20 73 63 |eraction|-mode sc|
|000021d0| 68 65 6d 65 2d 64 65 62 | 75 67 67 65 72 2d 6d 6f |heme-deb|ugger-mo|
|000021e0| 64 65 2d 69 6e 69 74 69 | 61 6c 69 7a 65 5d 20 34 |de-initi|alize] 4|
|000021f0| 29 29 0a 0a 28 64 65 66 | 75 6e 20 78 73 63 68 65 |))..(def|un xsche|
|00002200| 6d 65 2d 64 65 62 75 67 | 67 65 72 2d 6d 6f 64 65 |me-debug|ger-mode|
|00002210| 2d 70 20 6e 69 6c 20 28 | 62 79 74 65 2d 63 6f 64 |-p nil (|byte-cod|
|00002220| 65 20 22 c2 20 18 08 85 | 0f 00 8a 08 71 88 09 c3 |e ". ...|....q...|
|00002230| 3d 29 29 87 22 20 5b 62 | 75 66 66 65 72 20 6d 61 |=))." [b|uffer ma|
|00002240| 6a 6f 72 2d 6d 6f 64 65 | 20 78 73 63 68 65 6d 65 |jor-mode| xscheme|
|00002250| 2d 70 72 6f 63 65 73 73 | 2d 62 75 66 66 65 72 20 |-process|-buffer |
|00002260| 73 63 68 65 6d 65 2d 64 | 65 62 75 67 67 65 72 2d |scheme-d|ebugger-|
|00002270| 6d 6f 64 65 5d 20 33 29 | 29 0a 0a 28 64 65 66 75 |mode] 3)|)..(defu|
|00002280| 6e 20 78 73 63 68 65 6d | 65 2d 73 65 6e 64 2d 73 |n xschem|e-send-s|
|00002290| 74 72 69 6e 67 20 28 26 | 72 65 73 74 20 73 74 72 |tring (&|rest str|
|000022a0| 69 6e 67 73 29 20 22 5c | 0a 53 65 6e 64 20 74 68 |ings) "\|.Send th|
|000022b0| 65 20 73 74 72 69 6e 67 | 20 61 72 67 75 6d 65 6e |e string| argumen|
|000022c0| 74 73 20 74 6f 20 74 68 | 65 20 53 63 68 65 6d 65 |ts to th|e Scheme|
|000022d0| 20 70 72 6f 63 65 73 73 | 2e 0a 54 68 65 20 73 74 | process|..The st|
|000022e0| 72 69 6e 67 73 20 61 72 | 65 20 63 6f 6e 63 61 74 |rings ar|e concat|
|000022f0| 65 6e 61 74 65 64 20 61 | 6e 64 20 74 65 72 6d 69 |enated a|nd termi|
|00002300| 6e 61 74 65 64 20 62 79 | 20 61 20 6e 65 77 6c 69 |nated by| a newli|
|00002310| 6e 65 2e 22 20 28 62 79 | 74 65 2d 63 6f 64 65 20 |ne." (by|te-code |
|00002320| 22 c4 20 3f 83 20 00 c5 | c6 21 85 1d 00 c7 20 88 |". ?. ..|.!.... .|
|00002330| c8 20 88 64 62 88 c9 ca | 08 5c 22 88 cb 08 21 82 |. .db...|.\"...!.|
|00002340| 3d 00 cc 20 83 2b 00 cd | ce 21 82 3d 00 09 3f 85 |=.. .+..|.!.=..?.|
|00002350| 31 00 0a 83 3a 00 cd cf | 21 82 3d 00 cb 08 21 87 |1...:...|!.=...!.|
|00002360| 22 20 5b 73 74 72 69 6e | 67 73 20 78 73 63 68 65 |" [strin|gs xsche|
|00002370| 6d 65 2d 61 6c 6c 6f 77 | 2d 70 69 70 65 6c 69 6e |me-allow|-pipelin|
|00002380| 65 64 2d 65 76 61 6c 75 | 61 74 69 6f 6e 20 78 73 |ed-evalu|ation xs|
|00002390| 63 68 65 6d 65 2d 72 75 | 6e 6e 69 6e 67 2d 70 20 |cheme-ru|nning-p |
|000023a0| 74 20 78 73 63 68 65 6d | 65 2d 70 72 6f 63 65 73 |t xschem|e-proces|
|000023b0| 73 2d 72 75 6e 6e 69 6e | 67 2d 70 20 79 65 73 2d |s-runnin|g-p yes-|
|000023c0| 6f 72 2d 6e 6f 2d 70 20 | 22 54 68 65 20 53 63 68 |or-no-p |"The Sch|
|000023d0| 65 6d 65 20 70 72 6f 63 | 65 73 73 20 68 61 73 20 |eme proc|ess has |
|000023e0| 64 69 65 64 2e 20 20 52 | 65 73 65 74 20 69 74 3f |died. R|eset it?|
|000023f0| 20 22 20 72 65 73 65 74 | 2d 73 63 68 65 6d 65 20 | " reset|-scheme |
|00002400| 78 73 63 68 65 6d 65 2d | 77 61 69 74 2d 66 6f 72 |xscheme-|wait-for|
|00002410| 2d 70 72 6f 63 65 73 73 | 20 61 70 70 6c 79 20 69 |-process| apply i|
|00002420| 6e 73 65 72 74 2d 62 65 | 66 6f 72 65 2d 6d 61 72 |nsert-be|fore-mar|
|00002430| 6b 65 72 73 20 78 73 63 | 68 65 6d 65 2d 73 65 6e |kers xsc|heme-sen|
|00002440| 64 2d 73 74 72 69 6e 67 | 2d 31 20 78 73 63 68 65 |d-string|-1 xsche|
|00002450| 6d 65 2d 64 65 62 75 67 | 67 65 72 2d 6d 6f 64 65 |me-debug|ger-mode|
|00002460| 2d 70 20 65 72 72 6f 72 | 20 22 4e 6f 20 73 65 6e |-p error| "No sen|
|00002470| 64 73 20 61 6c 6c 6f 77 | 65 64 20 69 6e 20 64 65 |ds allow|ed in de|
|00002480| 62 75 67 67 65 72 20 6d | 6f 64 65 22 20 22 4e 6f |bugger m|ode" "No|
|00002490| 20 73 65 6e 64 73 20 61 | 6c 6c 6f 77 65 64 20 77 | sends a|llowed w|
|000024a0| 68 69 6c 65 20 53 63 68 | 65 6d 65 20 72 75 6e 6e |hile Sch|eme runn|
|000024b0| 69 6e 67 22 5d 20 31 31 | 29 29 0a 0a 28 64 65 66 |ing"] 11|))..(def|
|000024c0| 75 6e 20 78 73 63 68 65 | 6d 65 2d 73 65 6e 64 2d |un xsche|me-send-|
|000024d0| 73 74 72 69 6e 67 2d 31 | 20 28 73 74 72 69 6e 67 |string-1| (string|
|000024e0| 73 29 20 28 62 79 74 65 | 2d 63 6f 64 65 20 22 c4 |s) (byte|-code ".|
|000024f0| c5 09 5c 22 18 c6 08 21 | 88 0a c7 3d 85 12 00 08 |..\"...!|...=....|
|00002500| 89 13 29 87 22 20 5b 73 | 74 72 69 6e 67 20 73 74 |..)." [s|tring st|
|00002510| 72 69 6e 67 73 20 6d 61 | 6a 6f 72 2d 6d 6f 64 65 |rings ma|jor-mode|
|00002520| 20 78 73 63 68 65 6d 65 | 2d 70 72 65 76 69 6f 75 | xscheme|-previou|
|00002530| 73 2d 73 65 6e 64 20 61 | 70 70 6c 79 20 63 6f 6e |s-send a|pply con|
|00002540| 63 61 74 20 78 73 63 68 | 65 6d 65 2d 73 65 6e 64 |cat xsch|eme-send|
|00002550| 2d 73 74 72 69 6e 67 2d | 32 20 73 63 68 65 6d 65 |-string-|2 scheme|
|00002560| 2d 69 6e 74 65 72 61 63 | 74 69 6f 6e 2d 6d 6f 64 |-interac|tion-mod|
|00002570| 65 5d 20 34 29 29 0a 0a | 28 64 65 66 75 6e 20 78 |e] 4))..|(defun x|
|00002580| 73 63 68 65 6d 65 2d 73 | 65 6e 64 2d 73 74 72 69 |scheme-s|end-stri|
|00002590| 6e 67 2d 32 20 28 73 74 | 72 69 6e 67 29 20 28 62 |ng-2 (st|ring) (b|
|000025a0| 79 74 65 2d 63 6f 64 65 | 20 22 c2 c3 21 18 c4 08 |yte-code| "..!...|
|000025b0| 09 c5 50 5c 22 88 c6 20 | 85 16 00 c7 c8 08 21 60 |..P\".. |......!`|
|000025c0| 5c 22 29 87 22 20 5b 70 | 72 6f 63 65 73 73 20 73 |\")." [p|rocess s|
|000025d0| 74 72 69 6e 67 20 67 65 | 74 2d 70 72 6f 63 65 73 |tring ge|t-proces|
|000025e0| 73 20 22 73 63 68 65 6d | 65 22 20 73 65 6e 64 2d |s "schem|e" send-|
|000025f0| 73 74 72 69 6e 67 20 22 | 0a 22 20 78 73 63 68 65 |string "|." xsche|
|00002600| 6d 65 2d 70 72 6f 63 65 | 73 73 2d 62 75 66 66 65 |me-proce|ss-buffe|
|00002610| 72 2d 63 75 72 72 65 6e | 74 2d 70 20 73 65 74 2d |r-curren|t-p set-|
|00002620| 6d 61 72 6b 65 72 20 70 | 72 6f 63 65 73 73 2d 6d |marker p|rocess-m|
|00002630| 61 72 6b 5d 20 37 29 29 | 0a 0a 28 64 65 66 75 6e |ark] 7))|..(defun|
|00002640| 20 78 73 63 68 65 6d 65 | 2d 79 61 6e 6b 2d 70 72 | xscheme|-yank-pr|
|00002650| 65 76 69 6f 75 73 2d 73 | 65 6e 64 20 6e 69 6c 20 |evious-s|end nil |
|00002660| 22 5c 0a 49 6e 73 65 72 | 74 20 74 68 65 20 6d 6f |"\.Inser|t the mo|
|00002670| 73 74 20 72 65 63 65 6e | 74 20 65 78 70 72 65 73 |st recen|t expres|
|00002680| 73 69 6f 6e 20 61 74 20 | 70 6f 69 6e 74 2e 22 20 |sion at |point." |
|00002690| 28 69 6e 74 65 72 61 63 | 74 69 76 65 29 20 28 62 |(interac|tive) (b|
|000026a0| 79 74 65 2d 63 6f 64 65 | 20 22 c1 88 c2 20 88 08 |yte-code| "... ..|
|000026b0| 63 87 22 20 5b 78 73 63 | 68 65 6d 65 2d 70 72 65 |c." [xsc|heme-pre|
|000026c0| 76 69 6f 75 73 2d 73 65 | 6e 64 20 6e 69 6c 20 70 |vious-se|nd nil p|
|000026d0| 75 73 68 2d 6d 61 72 6b | 5d 20 32 29 29 0a 0a 28 |ush-mark|] 2))..(|
|000026e0| 64 65 66 75 6e 20 78 73 | 63 68 65 6d 65 2d 73 65 |defun xs|cheme-se|
|000026f0| 6c 65 63 74 2d 70 72 6f | 63 65 73 73 2d 62 75 66 |lect-pro|cess-buf|
|00002700| 66 65 72 20 6e 69 6c 20 | 22 5c 0a 53 65 6c 65 63 |fer nil |"\.Selec|
|00002710| 74 20 74 68 65 20 53 63 | 68 65 6d 65 20 70 72 6f |t the Sc|heme pro|
|00002720| 63 65 73 73 20 62 75 66 | 66 65 72 20 61 6e 64 20 |cess buf|fer and |
|00002730| 6d 6f 76 65 20 74 6f 20 | 69 74 73 20 6f 75 74 70 |move to |its outp|
|00002740| 75 74 20 70 6f 69 6e 74 | 2e 22 20 28 69 6e 74 65 |ut point|." (inte|
|00002750| 72 61 63 74 69 76 65 29 | 20 28 62 79 74 65 2d 63 |ractive)| (byte-c|
|00002760| 6f 64 65 20 22 c3 88 c4 | c5 21 86 0b 00 c6 c7 21 |ode "...|.!.....!|
|00002770| 18 c8 08 21 86 15 00 c6 | c9 21 19 ca 09 21 1a 0a |...!....|.!...!..|
|00002780| 83 24 00 cb 0a 21 82 27 | 00 cc 09 21 88 cd 08 21 |.$...!.'|...!...!|
|00002790| 62 29 29 29 87 22 20 5b | 70 72 6f 63 65 73 73 20 |b)))." [|process |
|000027a0| 62 75 66 66 65 72 20 77 | 69 6e 64 6f 77 20 6e 69 |buffer w|indow ni|
|000027b0| 6c 20 67 65 74 2d 70 72 | 6f 63 65 73 73 20 22 73 |l get-pr|ocess "s|
|000027c0| 63 68 65 6d 65 22 20 65 | 72 72 6f 72 20 22 4e 6f |cheme" e|rror "No|
|000027d0| 20 73 63 68 65 6d 65 20 | 70 72 6f 63 65 73 73 22 | scheme |process"|
|000027e0| 20 70 72 6f 63 65 73 73 | 2d 62 75 66 66 65 72 20 | process|-buffer |
|000027f0| 22 4e 6f 20 70 72 6f 63 | 65 73 73 20 62 75 66 66 |"No proc|ess buff|
|00002800| 65 72 22 20 67 65 74 2d | 62 75 66 66 65 72 2d 77 |er" get-|buffer-w|
|00002810| 69 6e 64 6f 77 20 73 65 | 6c 65 63 74 2d 77 69 6e |indow se|lect-win|
|00002820| 64 6f 77 20 73 77 69 74 | 63 68 2d 74 6f 2d 62 75 |dow swit|ch-to-bu|
|00002830| 66 66 65 72 20 70 72 6f | 63 65 73 73 2d 6d 61 72 |ffer pro|cess-mar|
|00002840| 6b 5d 20 39 29 29 0a 0a | 28 64 65 66 75 6e 20 78 |k] 9))..|(defun x|
|00002850| 73 63 68 65 6d 65 2d 73 | 65 6e 64 2d 72 65 67 69 |scheme-s|end-regi|
|00002860| 6f 6e 20 28 73 74 61 72 | 74 20 65 6e 64 29 20 22 |on (star|t end) "|
|00002870| 5c 0a 53 65 6e 64 20 74 | 68 65 20 63 75 72 72 65 |\.Send t|he curre|
|00002880| 6e 74 20 72 65 67 69 6f | 6e 20 74 6f 20 74 68 65 |nt regio|n to the|
|00002890| 20 53 63 68 65 6d 65 20 | 70 72 6f 63 65 73 73 2e | Scheme |process.|
|000028a0| 0a 54 68 65 20 72 65 67 | 69 6f 6e 20 69 73 20 73 |.The reg|ion is s|
|000028b0| 65 6e 74 20 74 65 72 6d | 69 6e 61 74 65 64 20 62 |ent term|inated b|
|000028c0| 79 20 61 20 6e 65 77 6c | 69 6e 65 2e 22 20 28 69 |y a newl|ine." (i|
|000028d0| 6e 74 65 72 61 63 74 69 | 76 65 20 22 72 22 29 20 |nteracti|ve "r") |
|000028e0| 28 62 79 74 65 2d 63 6f | 64 65 20 22 c2 88 c3 20 |(byte-co|de "... |
|000028f0| 85 12 00 08 62 88 c4 c5 | c6 c7 21 21 08 5c 22 88 |....b...|..!!.\".|
|00002900| c8 c9 09 08 5c 22 21 87 | 22 20 5b 65 6e 64 20 73 |....\"!.|" [end s|
|00002910| 74 61 72 74 20 6e 69 6c | 20 78 73 63 68 65 6d 65 |tart nil| xscheme|
|00002920| 2d 70 72 6f 63 65 73 73 | 2d 62 75 66 66 65 72 2d |-process|-buffer-|
|00002930| 63 75 72 72 65 6e 74 2d | 70 20 73 65 74 2d 6d 61 |current-|p set-ma|
|00002940| 72 6b 65 72 20 70 72 6f | 63 65 73 73 2d 6d 61 72 |rker pro|cess-mar|
|00002950| 6b 20 67 65 74 2d 70 72 | 6f 63 65 73 73 20 22 73 |k get-pr|ocess "s|
|00002960| 63 68 65 6d 65 22 20 78 | 73 63 68 65 6d 65 2d 73 |cheme" x|scheme-s|
|00002970| 65 6e 64 2d 73 74 72 69 | 6e 67 20 62 75 66 66 65 |end-stri|ng buffe|
|00002980| 72 2d 73 75 62 73 74 72 | 69 6e 67 5d 20 38 29 29 |r-substr|ing] 8))|
|00002990| 0a 0a 28 64 65 66 75 6e | 20 78 73 63 68 65 6d 65 |..(defun| xscheme|
|000029a0| 2d 73 65 6e 64 2d 64 65 | 66 69 6e 69 74 69 6f 6e |-send-de|finition|
|000029b0| 20 6e 69 6c 20 22 5c 0a | 53 65 6e 64 20 74 68 65 | nil "\.|Send the|
|000029c0| 20 63 75 72 72 65 6e 74 | 20 64 65 66 69 6e 69 74 | current| definit|
|000029d0| 69 6f 6e 20 74 6f 20 74 | 68 65 20 53 63 68 65 6d |ion to t|he Schem|
|000029e0| 65 20 70 72 6f 63 65 73 | 73 2e 0a 49 66 20 74 68 |e proces|s..If th|
|000029f0| 65 20 63 75 72 72 65 6e | 74 20 6c 69 6e 65 20 62 |e curren|t line b|
|00002a00| 65 67 69 6e 73 20 77 69 | 74 68 20 61 20 6e 6f 6e |egins wi|th a non|
|00002a10| 2d 77 68 69 74 65 73 70 | 61 63 65 20 63 68 61 72 |-whitesp|ace char|
|00002a20| 61 63 74 65 72 2c 0a 70 | 61 72 73 65 20 61 6e 20 |acter,.p|arse an |
|00002a30| 65 78 70 72 65 73 73 69 | 6f 6e 20 66 72 6f 6d 20 |expressi|on from |
|00002a40| 74 68 65 20 62 65 67 69 | 6e 6e 69 6e 67 20 6f 66 |the begi|nning of|
|00002a50| 20 74 68 65 20 6c 69 6e | 65 20 61 6e 64 20 73 65 | the lin|e and se|
|00002a60| 6e 64 20 74 68 61 74 20 | 69 6e 73 74 65 61 64 2e |nd that |instead.|
|00002a70| 22 20 28 69 6e 74 65 72 | 61 63 74 69 76 65 29 20 |" (inter|active) |
|00002a80| 28 62 79 74 65 2d 63 6f | 64 65 20 22 c1 88 c1 c1 |(byte-co|de "....|
|00002a90| 1a 18 8a c4 20 88 60 89 | 12 88 c5 c6 c1 c3 23 83 |.... .`.|......#.|
|00002aa0| 1c 00 60 89 10 82 1f 00 | c7 c8 21 29 88 c9 08 0a |..`.....|..!)....|
|00002ab0| 5c 22 2a 87 22 20 5b 73 | 74 61 72 74 20 6e 69 6c |\"*." [s|tart nil|
|00002ac0| 20 65 6e 64 20 74 20 65 | 6e 64 2d 6f 66 2d 64 65 | end t e|nd-of-de|
|00002ad0| 66 75 6e 20 72 65 2d 73 | 65 61 72 63 68 2d 62 61 |fun re-s|earch-ba|
|00002ae0| 63 6b 77 61 72 64 20 22 | 5e 5c 5c 73 28 22 20 65 |ckward "|^\\s(" e|
|00002af0| 72 72 6f 72 20 22 43 61 | 6e 27 74 20 66 69 6e 64 |rror "Ca|n't find|
|00002b00| 20 64 65 66 69 6e 69 74 | 69 6f 6e 22 20 78 73 63 | definit|ion" xsc|
|00002b10| 68 65 6d 65 2d 73 65 6e | 64 2d 72 65 67 69 6f 6e |heme-sen|d-region|
|00002b20| 5d 20 36 29 29 0a 0a 28 | 64 65 66 75 6e 20 78 73 |] 6))..(|defun xs|
|00002b30| 63 68 65 6d 65 2d 73 65 | 6e 64 2d 6e 65 78 74 2d |cheme-se|nd-next-|
|00002b40| 65 78 70 72 65 73 73 69 | 6f 6e 20 6e 69 6c 20 22 |expressi|on nil "|
|00002b50| 5c 0a 53 65 6e 64 20 74 | 68 65 20 65 78 70 72 65 |\.Send t|he expre|
|00002b60| 73 73 69 6f 6e 20 74 6f | 20 74 68 65 20 72 69 67 |ssion to| the rig|
|00002b70| 68 74 20 6f 66 20 60 70 | 6f 69 6e 74 27 20 74 6f |ht of `p|oint' to|
|00002b80| 20 74 68 65 20 53 63 68 | 65 6d 65 20 70 72 6f 63 | the Sch|eme proc|
|00002b90| 65 73 73 2e 22 20 28 69 | 6e 74 65 72 61 63 74 69 |ess." (i|nteracti|
|00002ba0| 76 65 29 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |ve) (byt|e-code "|
|00002bb0| c1 88 60 18 c2 08 8a c3 | 20 88 60 29 5c 22 29 87 |..`.....| .`)\").|
|00002bc0| 22 20 5b 73 74 61 72 74 | 20 6e 69 6c 20 78 73 63 |" [start| nil xsc|
|00002bd0| 68 65 6d 65 2d 73 65 6e | 64 2d 72 65 67 69 6f 6e |heme-sen|d-region|
|00002be0| 20 66 6f 72 77 61 72 64 | 2d 73 65 78 70 5d 20 34 | forward|-sexp] 4|
|00002bf0| 29 29 0a 0a 28 64 65 66 | 75 6e 20 78 73 63 68 65 |))..(def|un xsche|
|00002c00| 6d 65 2d 73 65 6e 64 2d | 70 72 65 76 69 6f 75 73 |me-send-|previous|
|00002c10| 2d 65 78 70 72 65 73 73 | 69 6f 6e 20 6e 69 6c 20 |-express|ion nil |
|00002c20| 22 5c 0a 53 65 6e 64 20 | 74 68 65 20 65 78 70 72 |"\.Send |the expr|
|00002c30| 65 73 73 69 6f 6e 20 74 | 6f 20 74 68 65 20 6c 65 |ession t|o the le|
|00002c40| 66 74 20 6f 66 20 60 70 | 6f 69 6e 74 27 20 74 6f |ft of `p|oint' to|
|00002c50| 20 74 68 65 20 53 63 68 | 65 6d 65 20 70 72 6f 63 | the Sch|eme proc|
|00002c60| 65 73 73 2e 22 20 28 69 | 6e 74 65 72 61 63 74 69 |ess." (i|nteracti|
|00002c70| 76 65 29 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |ve) (byt|e-code "|
|00002c80| c1 88 60 18 c2 8a c3 20 | 88 60 29 08 5c 22 29 87 |..`.... |.`).\").|
|00002c90| 22 20 5b 65 6e 64 20 6e | 69 6c 20 78 73 63 68 65 |" [end n|il xsche|
|00002ca0| 6d 65 2d 73 65 6e 64 2d | 72 65 67 69 6f 6e 20 62 |me-send-|region b|
|00002cb0| 61 63 6b 77 61 72 64 2d | 73 65 78 70 5d 20 34 29 |ackward-|sexp] 4)|
|00002cc0| 29 0a 0a 28 64 65 66 75 | 6e 20 78 73 63 68 65 6d |)..(defu|n xschem|
|00002cd0| 65 2d 73 65 6e 64 2d 63 | 75 72 72 65 6e 74 2d 6c |e-send-c|urrent-l|
|00002ce0| 69 6e 65 20 6e 69 6c 20 | 22 5c 0a 53 65 6e 64 20 |ine nil |"\.Send |
|00002cf0| 74 68 65 20 63 75 72 72 | 65 6e 74 20 6c 69 6e 65 |the curr|ent line|
|00002d00| 20 74 6f 20 74 68 65 20 | 53 63 68 65 6d 65 20 70 | to the |Scheme p|
|00002d10| 72 6f 63 65 73 73 2e 0a | 55 73 65 66 75 6c 20 66 |rocess..|Useful f|
|00002d20| 6f 72 20 77 6f 72 6b 69 | 6e 67 20 77 69 74 68 20 |or worki|ng with |
|00002d30| 64 65 62 75 67 67 69 6e | 67 20 53 63 68 65 6d 65 |debuggin|g Scheme|
|00002d40| 20 75 6e 64 65 72 20 61 | 64 62 2e 22 20 28 69 6e | under a|db." (in|
|00002d50| 74 65 72 61 63 74 69 76 | 65 29 20 28 62 79 74 65 |teractiv|e) (byte|
|00002d60| 2d 63 6f 64 65 20 22 c2 | 88 8a c3 20 88 60 19 c4 |-code ".|... .`..|
|00002d70| 20 88 c5 09 60 5c 22 29 | 29 18 c4 20 88 c6 63 88 | ...`\")|).. ..c.|
|00002d80| c7 08 21 29 87 22 20 5b | 6c 69 6e 65 20 73 74 61 |..!)." [|line sta|
|00002d90| 72 74 20 6e 69 6c 20 62 | 65 67 69 6e 6e 69 6e 67 |rt nil b|eginning|
|00002da0| 2d 6f 66 2d 6c 69 6e 65 | 20 65 6e 64 2d 6f 66 2d |-of-line| end-of-|
|00002db0| 6c 69 6e 65 20 62 75 66 | 66 65 72 2d 73 75 62 73 |line buf|fer-subs|
|00002dc0| 74 72 69 6e 67 20 31 30 | 20 78 73 63 68 65 6d 65 |tring 10| xscheme|
|00002dd0| 2d 73 65 6e 64 2d 73 74 | 72 69 6e 67 2d 32 5d 20 |-send-st|ring-2] |
|00002de0| 36 29 29 0a 0a 28 64 65 | 66 75 6e 20 78 73 63 68 |6))..(de|fun xsch|
|00002df0| 65 6d 65 2d 73 65 6e 64 | 2d 62 75 66 66 65 72 20 |eme-send|-buffer |
|00002e00| 6e 69 6c 20 22 5c 0a 53 | 65 6e 64 20 74 68 65 20 |nil "\.S|end the |
|00002e10| 63 75 72 72 65 6e 74 20 | 62 75 66 66 65 72 20 74 |current |buffer t|
|00002e20| 6f 20 74 68 65 20 53 63 | 68 65 6d 65 20 70 72 6f |o the Sc|heme pro|
|00002e30| 63 65 73 73 2e 22 20 28 | 69 6e 74 65 72 61 63 74 |cess." (|interact|
|00002e40| 69 76 65 29 20 28 62 79 | 74 65 2d 63 6f 64 65 20 |ive) (by|te-code |
|00002e50| 22 c0 88 c1 20 85 0a 00 | c2 c3 21 88 c4 65 64 5c |"... ...|..!..ed\|
|00002e60| 22 87 22 20 5b 6e 69 6c | 20 78 73 63 68 65 6d 65 |"." [nil| xscheme|
|00002e70| 2d 70 72 6f 63 65 73 73 | 2d 62 75 66 66 65 72 2d |-process|-buffer-|
|00002e80| 63 75 72 72 65 6e 74 2d | 70 20 65 72 72 6f 72 20 |current-|p error |
|00002e90| 22 4e 6f 74 20 61 6c 6c | 6f 77 65 64 20 74 6f 20 |"Not all|owed to |
|00002ea0| 73 65 6e 64 20 74 68 69 | 73 20 62 75 66 66 65 72 |send thi|s buffer|
|00002eb0| 27 73 20 63 6f 6e 74 65 | 6e 74 73 20 74 6f 20 53 |'s conte|nts to S|
|00002ec0| 63 68 65 6d 65 22 20 78 | 73 63 68 65 6d 65 2d 73 |cheme" x|scheme-s|
|00002ed0| 65 6e 64 2d 72 65 67 69 | 6f 6e 5d 20 35 29 29 0a |end-regi|on] 5)).|
|00002ee0| 0a 28 64 65 66 75 6e 20 | 78 73 63 68 65 6d 65 2d |.(defun |xscheme-|
|00002ef0| 73 65 6e 64 2d 63 68 61 | 72 20 28 63 68 61 72 29 |send-cha|r (char)|
|00002f00| 20 22 5c 0a 50 72 6f 6d | 70 74 20 66 6f 72 20 61 | "\.Prom|pt for a|
|00002f10| 20 63 68 61 72 61 63 74 | 65 72 20 61 6e 64 20 73 | charact|er and s|
|00002f20| 65 6e 64 20 69 74 20 74 | 6f 20 74 68 65 20 53 63 |end it t|o the Sc|
|00002f30| 68 65 6d 65 20 70 72 6f | 63 65 73 73 2e 22 20 28 |heme pro|cess." (|
|00002f40| 69 6e 74 65 72 61 63 74 | 69 76 65 20 22 63 43 68 |interact|ive "cCh|
|00002f50| 61 72 61 63 74 65 72 20 | 74 6f 20 73 65 6e 64 3a |aracter |to send:|
|00002f60| 20 22 29 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 | ") (byt|e-code "|
|00002f70| c1 88 c2 c3 c4 08 21 5c | 22 87 22 20 5b 63 68 61 |......!\|"." [cha|
|00002f80| 72 20 6e 69 6c 20 73 65 | 6e 64 2d 73 74 72 69 6e |r nil se|nd-strin|
|00002f90| 67 20 22 73 63 68 65 6d | 65 22 20 63 68 61 72 2d |g "schem|e" char-|
|00002fa0| 74 6f 2d 73 74 72 69 6e | 67 5d 20 34 29 29 0a 0a |to-strin|g] 4))..|
|00002fb0| 28 64 65 66 75 6e 20 78 | 73 63 68 65 6d 65 2d 73 |(defun x|scheme-s|
|00002fc0| 65 6e 64 2d 62 72 65 61 | 6b 70 6f 69 6e 74 2d 69 |end-brea|kpoint-i|
|00002fd0| 6e 74 65 72 72 75 70 74 | 20 6e 69 6c 20 22 5c 0a |nterrupt| nil "\.|
|00002fe0| 43 61 75 73 65 20 74 68 | 65 20 53 63 68 65 6d 65 |Cause th|e Scheme|
|00002ff0| 20 70 72 6f 63 65 73 73 | 20 74 6f 20 65 6e 74 65 | process| to ente|
|00003000| 72 20 61 20 62 72 65 61 | 6b 70 6f 69 6e 74 2e 22 |r a brea|kpoint."|
|00003010| 20 28 69 6e 74 65 72 61 | 63 74 69 76 65 29 20 28 | (intera|ctive) (|
|00003020| 62 79 74 65 2d 63 6f 64 | 65 20 22 c0 88 c1 c2 c0 |byte-cod|e ".....|
|00003030| 5c 22 87 22 20 5b 6e 69 | 6c 20 78 73 63 68 65 6d |\"." [ni|l xschem|
|00003040| 65 2d 73 65 6e 64 2d 69 | 6e 74 65 72 72 75 70 74 |e-send-i|nterrupt|
|00003050| 20 39 38 5d 20 33 29 29 | 0a 0a 28 64 65 66 75 6e | 98] 3))|..(defun|
|00003060| 20 78 73 63 68 65 6d 65 | 2d 73 65 6e 64 2d 70 72 | xscheme|-send-pr|
|00003070| 6f 63 65 65 64 20 6e 69 | 6c 20 22 5c 0a 43 61 75 |oceed ni|l "\.Cau|
|00003080| 73 65 20 74 68 65 20 53 | 63 68 65 6d 65 20 70 72 |se the S|cheme pr|
|00003090| 6f 63 65 73 73 20 74 6f | 20 70 72 6f 63 65 65 64 |ocess to| proceed|
|000030a0| 20 66 72 6f 6d 20 61 20 | 62 72 65 61 6b 70 6f 69 | from a |breakpoi|
|000030b0| 6e 74 2e 22 20 28 69 6e | 74 65 72 61 63 74 69 76 |nt." (in|teractiv|
|000030c0| 65 29 20 28 62 79 74 65 | 2d 63 6f 64 65 20 22 c0 |e) (byte|-code ".|
|000030d0| 88 c1 c2 c3 5c 22 87 22 | 20 5b 6e 69 6c 20 73 65 |....\"."| [nil se|
|000030e0| 6e 64 2d 73 74 72 69 6e | 67 20 22 73 63 68 65 6d |nd-strin|g "schem|
|000030f0| 65 22 20 22 28 70 72 6f | 63 65 65 64 29 0a 22 5d |e" "(pro|ceed)."]|
|00003100| 20 33 29 29 0a 0a 28 64 | 65 66 75 6e 20 78 73 63 | 3))..(d|efun xsc|
|00003110| 68 65 6d 65 2d 73 65 6e | 64 2d 63 6f 6e 74 72 6f |heme-sen|d-contro|
|00003120| 6c 2d 67 2d 69 6e 74 65 | 72 72 75 70 74 20 6e 69 |l-g-inte|rrupt ni|
|00003130| 6c 20 22 5c 0a 43 61 75 | 73 65 20 74 68 65 20 53 |l "\.Cau|se the S|
|00003140| 63 68 65 6d 65 20 70 72 | 6f 63 65 73 73 6f 72 20 |cheme pr|ocessor |
|00003150| 74 6f 20 68 61 6c 74 20 | 61 6e 64 20 66 6c 75 73 |to halt |and flus|
|00003160| 68 20 69 6e 70 75 74 2e | 0a 43 6f 6e 74 72 6f 6c |h input.|.Control|
|00003170| 20 72 65 74 75 72 6e 73 | 20 74 6f 20 74 68 65 20 | returns| to the |
|00003180| 74 6f 70 20 6c 65 76 65 | 6c 20 72 65 70 20 6c 6f |top leve|l rep lo|
|00003190| 6f 70 2e 22 20 28 69 6e | 74 65 72 61 63 74 69 76 |op." (in|teractiv|
|000031a0| 65 29 20 28 62 79 74 65 | 2d 63 6f 64 65 20 22 c4 |e) (byte|-code ".|
|000031b0| 88 c1 18 0a 3f 83 0f 00 | c5 c6 21 82 2b 00 0b 83 |....?...|..!.+...|
|000031c0| 19 00 c7 c8 21 82 2b 00 | c1 89 13 88 c7 c9 21 88 |....!.+.|......!.|
|000031d0| c5 c6 21 88 ca c6 cb cc | 21 5c 22 29 87 22 20 5b |..!.....|!\")." [|
|000031e0| 69 6e 68 69 62 69 74 2d | 71 75 69 74 20 74 20 78 |inhibit-|quit t x|
|000031f0| 73 63 68 65 6d 65 2d 63 | 6f 6e 74 72 6f 6c 2d 67 |scheme-c|ontrol-g|
|00003200| 2d 73 79 6e 63 68 72 6f | 6e 69 7a 61 74 69 6f 6e |-synchro|nization|
|00003210| 2d 70 20 78 73 63 68 65 | 6d 65 2d 63 6f 6e 74 72 |-p xsche|me-contr|
|00003220| 6f 6c 2d 67 2d 64 69 73 | 61 62 6c 65 64 2d 70 20 |ol-g-dis|abled-p |
|00003230| 6e 69 6c 20 69 6e 74 65 | 72 72 75 70 74 2d 70 72 |nil inte|rrupt-pr|
|00003240| 6f 63 65 73 73 20 22 73 | 63 68 65 6d 65 22 20 6d |ocess "s|cheme" m|
|00003250| 65 73 73 61 67 65 20 22 | 52 65 6c 61 78 2e 2e 2e |essage "|Relax...|
|00003260| 22 20 22 53 65 6e 64 69 | 6e 67 20 43 2d 47 20 69 |" "Sendi|ng C-G i|
|00003270| 6e 74 65 72 72 75 70 74 | 20 74 6f 20 53 63 68 65 |nterrupt| to Sche|
|00003280| 6d 65 2e 2e 2e 22 20 73 | 65 6e 64 2d 73 74 72 69 |me..." s|end-stri|
|00003290| 6e 67 20 63 68 61 72 2d | 74 6f 2d 73 74 72 69 6e |ng char-|to-strin|
|000032a0| 67 20 30 5d 20 38 29 29 | 0a 0a 28 64 65 66 75 6e |g 0] 8))|..(defun|
|000032b0| 20 78 73 63 68 65 6d 65 | 2d 73 65 6e 64 2d 63 6f | xscheme|-send-co|
|000032c0| 6e 74 72 6f 6c 2d 75 2d | 69 6e 74 65 72 72 75 70 |ntrol-u-|interrup|
|000032d0| 74 20 6e 69 6c 20 22 5c | 0a 43 61 75 73 65 20 74 |t nil "\|.Cause t|
|000032e0| 68 65 20 53 63 68 65 6d | 65 20 70 72 6f 63 65 73 |he Schem|e proces|
|000032f0| 73 20 74 6f 20 68 61 6c | 74 2c 20 72 65 74 75 72 |s to hal|t, retur|
|00003300| 6e 69 6e 67 20 74 6f 20 | 70 72 65 76 69 6f 75 73 |ning to |previous|
|00003310| 20 72 65 70 20 6c 6f 6f | 70 2e 22 20 28 69 6e 74 | rep loo|p." (int|
|00003320| 65 72 61 63 74 69 76 65 | 29 20 28 62 79 74 65 2d |eractive|) (byte-|
|00003330| 63 6f 64 65 20 22 c1 88 | c2 c3 c0 5c 22 87 22 20 |code "..|...\"." |
|00003340| 5b 74 20 6e 69 6c 20 78 | 73 63 68 65 6d 65 2d 73 |[t nil x|scheme-s|
|00003350| 65 6e 64 2d 69 6e 74 65 | 72 72 75 70 74 20 31 31 |end-inte|rrupt 11|
|00003360| 37 5d 20 33 29 29 0a 0a | 28 64 65 66 75 6e 20 78 |7] 3))..|(defun x|
|00003370| 73 63 68 65 6d 65 2d 73 | 65 6e 64 2d 63 6f 6e 74 |scheme-s|end-cont|
|00003380| 72 6f 6c 2d 78 2d 69 6e | 74 65 72 72 75 70 74 20 |rol-x-in|terrupt |
|00003390| 6e 69 6c 20 22 5c 0a 43 | 61 75 73 65 20 74 68 65 |nil "\.C|ause the|
|000033a0| 20 53 63 68 65 6d 65 20 | 70 72 6f 63 65 73 73 20 | Scheme |process |
|000033b0| 74 6f 20 68 61 6c 74 2c | 20 72 65 74 75 72 6e 69 |to halt,| returni|
|000033c0| 6e 67 20 74 6f 20 63 75 | 72 72 65 6e 74 20 72 65 |ng to cu|rrent re|
|000033d0| 70 20 6c 6f 6f 70 2e 22 | 20 28 69 6e 74 65 72 61 |p loop."| (intera|
|000033e0| 63 74 69 76 65 29 20 28 | 62 79 74 65 2d 63 6f 64 |ctive) (|byte-cod|
|000033f0| 65 20 22 c1 88 c2 c3 c0 | 5c 22 87 22 20 5b 74 20 |e ".....|\"." [t |
|00003400| 6e 69 6c 20 78 73 63 68 | 65 6d 65 2d 73 65 6e 64 |nil xsch|eme-send|
|00003410| 2d 69 6e 74 65 72 72 75 | 70 74 20 31 32 30 5d 20 |-interru|pt 120] |
|00003420| 33 29 29 0a 0a 28 64 65 | 66 75 6e 20 78 73 63 68 |3))..(de|fun xsch|
|00003430| 65 6d 65 2d 73 65 6e 64 | 2d 69 6e 74 65 72 72 75 |eme-send|-interru|
|00003440| 70 74 20 28 63 68 61 72 | 20 6d 61 72 6b 2d 70 29 |pt (char| mark-p)|
|00003450| 20 22 5c 0a 53 65 6e 64 | 20 61 20 5e 41 20 74 79 | "\.Send| a ^A ty|
|00003460| 70 65 20 69 6e 74 65 72 | 72 75 70 74 20 74 6f 20 |pe inter|rupt to |
|00003470| 74 68 65 20 53 63 68 65 | 6d 65 20 70 72 6f 63 65 |the Sche|me proce|
|00003480| 73 73 2e 22 20 28 69 6e | 74 65 72 61 63 74 69 76 |ss." (in|teractiv|
|00003490| 65 20 22 63 49 6e 74 65 | 72 72 75 70 74 20 63 68 |e "cInte|rrupt ch|
|000034a0| 61 72 61 63 74 65 72 20 | 74 6f 20 73 65 6e 64 3a |aracter |to send:|
|000034b0| 20 22 29 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 | ") (byt|e-code "|
|000034c0| c3 88 c4 c5 21 88 c6 c5 | c7 08 21 5c 22 88 09 85 |....!...|..!\"...|
|000034d0| 12 00 0a 85 1b 00 c6 c5 | c7 c8 21 5c 22 87 22 20 |........|..!\"." |
|000034e0| 5b 63 68 61 72 20 6d 61 | 72 6b 2d 70 20 78 73 63 |[char ma|rk-p xsc|
|000034f0| 68 65 6d 65 2d 63 6f 6e | 74 72 6f 6c 2d 67 2d 73 |heme-con|trol-g-s|
|00003500| 79 6e 63 68 72 6f 6e 69 | 7a 61 74 69 6f 6e 2d 70 |ynchroni|zation-p|
|00003510| 20 6e 69 6c 20 71 75 69 | 74 2d 70 72 6f 63 65 73 | nil qui|t-proces|
|00003520| 73 20 22 73 63 68 65 6d | 65 22 20 73 65 6e 64 2d |s "schem|e" send-|
|00003530| 73 74 72 69 6e 67 20 63 | 68 61 72 2d 74 6f 2d 73 |string c|har-to-s|
|00003540| 74 72 69 6e 67 20 30 5d | 20 37 29 29 0a 0a 28 64 |tring 0]| 7))..(d|
|00003550| 65 66 76 61 72 20 78 73 | 63 68 65 6d 65 2d 70 72 |efvar xs|cheme-pr|
|00003560| 6f 63 65 73 73 2d 63 6f | 6d 6d 61 6e 64 2d 6c 69 |ocess-co|mmand-li|
|00003570| 6e 65 20 6e 69 6c 20 22 | 5c 0a 43 6f 6d 6d 61 6e |ne nil "|\.Comman|
|00003580| 64 20 75 73 65 64 20 74 | 6f 20 73 74 61 72 74 20 |d used t|o start |
|00003590| 74 68 65 20 6d 6f 73 74 | 20 72 65 63 65 6e 74 20 |the most| recent |
|000035a0| 53 63 68 65 6d 65 20 70 | 72 6f 63 65 73 73 2e 22 |Scheme p|rocess."|
|000035b0| 29 0a 0a 28 64 65 66 76 | 61 72 20 78 73 63 68 65 |)..(defv|ar xsche|
|000035c0| 6d 65 2d 70 72 65 76 69 | 6f 75 73 2d 73 65 6e 64 |me-previ|ous-send|
|000035d0| 20 22 22 20 22 5c 0a 4d | 6f 73 74 20 72 65 63 65 | "" "\.M|ost rece|
|000035e0| 6e 74 20 65 78 70 72 65 | 73 73 69 6f 6e 20 74 72 |nt expre|ssion tr|
|000035f0| 61 6e 73 6d 69 74 74 65 | 64 20 74 6f 20 74 68 65 |ansmitte|d to the|
|00003600| 20 53 63 68 65 6d 65 20 | 70 72 6f 63 65 73 73 2e | Scheme |process.|
|00003610| 22 29 0a 0a 28 64 65 66 | 76 61 72 20 78 73 63 68 |")..(def|var xsch|
|00003620| 65 6d 65 2d 70 72 6f 63 | 65 73 73 2d 66 69 6c 74 |eme-proc|ess-filt|
|00003630| 65 72 2d 73 74 61 74 65 | 20 28 71 75 6f 74 65 20 |er-state| (quote |
|00003640| 69 64 6c 65 29 20 22 5c | 0a 53 74 61 74 65 20 6f |idle) "\|.State o|
|00003650| 66 20 73 63 68 65 6d 65 | 20 70 72 6f 63 65 73 73 |f scheme| process|
|00003660| 20 65 73 63 61 70 65 20 | 72 65 61 64 65 72 20 73 | escape |reader s|
|00003670| 74 61 74 65 20 6d 61 63 | 68 69 6e 65 3a 0a 69 64 |tate mac|hine:.id|
|00003680| 6c 65 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |le | |
|00003690| 20 20 20 20 20 77 61 69 | 74 69 6e 67 20 66 6f 72 | wai|ting for|
|000036a0| 20 61 6e 20 65 73 63 61 | 70 65 20 73 65 71 75 65 | an esca|pe seque|
|000036b0| 6e 63 65 0a 72 65 61 64 | 69 6e 67 2d 74 79 70 65 |nce.read|ing-type|
|000036c0| 20 20 20 20 20 20 20 20 | 20 20 20 72 65 63 65 69 | | recei|
|000036d0| 76 65 64 20 61 6e 20 61 | 6c 74 6d 6f 64 65 20 62 |ved an a|ltmode b|
|000036e0| 75 74 20 6e 6f 74 68 69 | 6e 67 20 65 6c 73 65 0a |ut nothi|ng else.|
|000036f0| 72 65 61 64 69 6e 67 2d | 73 74 72 69 6e 67 20 20 |reading-|string |
|00003700| 20 20 20 20 20 20 20 72 | 65 61 64 69 6e 67 20 70 | r|eading p|
|00003710| 72 6f 6d 70 74 20 73 74 | 72 69 6e 67 22 29 0a 0a |rompt st|ring")..|
|00003720| 28 64 65 66 76 61 72 20 | 78 73 63 68 65 6d 65 2d |(defvar |xscheme-|
|00003730| 72 75 6e 6e 69 6e 67 2d | 70 20 6e 69 6c 20 22 5c |running-|p nil "\|
|00003740| 0a 54 68 69 73 20 76 61 | 72 69 61 62 6c 65 2c 20 |.This va|riable, |
|00003750| 69 66 20 6e 69 6c 2c 20 | 69 6e 64 69 63 61 74 65 |if nil, |indicate|
|00003760| 73 20 74 68 61 74 20 74 | 68 65 20 73 63 68 65 6d |s that t|he schem|
|00003770| 65 20 70 72 6f 63 65 73 | 73 20 69 73 0a 77 61 69 |e proces|s is.wai|
|00003780| 74 69 6e 67 20 66 6f 72 | 20 69 6e 70 75 74 2e 20 |ting for| input. |
|00003790| 20 4f 74 68 65 72 77 69 | 73 65 2c 20 69 74 20 69 | Otherwi|se, it i|
|000037a0| 73 20 62 75 73 79 20 65 | 76 61 6c 75 61 74 69 6e |s busy e|valuatin|
|000037b0| 67 20 73 6f 6d 65 74 68 | 69 6e 67 2e 22 29 0a 0a |g someth|ing.")..|
|000037c0| 28 64 65 66 63 6f 6e 73 | 74 20 78 73 63 68 65 6d |(defcons|t xschem|
|000037d0| 65 2d 63 6f 6e 74 72 6f | 6c 2d 67 2d 73 79 6e 63 |e-contro|l-g-sync|
|000037e0| 68 72 6f 6e 69 7a 61 74 | 69 6f 6e 2d 70 20 74 20 |hronizat|ion-p t |
|000037f0| 22 5c 0a 49 66 20 6e 6f | 6e 2d 6e 69 6c 2c 20 69 |"\.If no|n-nil, i|
|00003800| 6e 73 65 72 74 20 6d 61 | 72 6b 65 72 73 20 69 6e |nsert ma|rkers in|
|00003810| 20 74 68 65 20 73 63 68 | 65 6d 65 20 69 6e 70 75 | the sch|eme inpu|
|00003820| 74 20 73 74 72 65 61 6d | 20 74 6f 20 69 6e 64 69 |t stream| to indi|
|00003830| 63 61 74 65 20 77 68 65 | 6e 0a 63 6f 6e 74 72 6f |cate whe|n.contro|
|00003840| 6c 2d 67 20 69 6e 74 65 | 72 72 75 70 74 73 20 77 |l-g inte|rrupts w|
|00003850| 65 72 65 20 73 69 67 6e | 61 6c 6c 65 64 2e 20 20 |ere sign|alled. |
|00003860| 44 6f 20 6e 6f 74 20 61 | 6c 6c 6f 77 20 6d 6f 72 |Do not a|llow mor|
|00003870| 65 20 63 6f 6e 74 72 6f | 6c 2d 67 27 73 20 74 6f |e contro|l-g's to|
|00003880| 20 62 65 0a 73 69 67 6e | 61 6c 6c 65 64 20 75 6e | be.sign|alled un|
|00003890| 74 69 6c 20 74 68 65 20 | 73 63 68 65 6d 65 20 70 |til the |scheme p|
|000038a0| 72 6f 63 65 73 73 20 61 | 63 6b 6e 6f 77 6c 65 64 |rocess a|cknowled|
|000038b0| 67 65 73 20 72 65 63 65 | 69 70 74 2e 22 29 0a 0a |ges rece|ipt.")..|
|000038c0| 28 64 65 66 76 61 72 20 | 78 73 63 68 65 6d 65 2d |(defvar |xscheme-|
|000038d0| 63 6f 6e 74 72 6f 6c 2d | 67 2d 64 69 73 61 62 6c |control-|g-disabl|
|000038e0| 65 64 2d 70 20 6e 69 6c | 20 22 5c 0a 54 68 69 73 |ed-p nil| "\.This|
|000038f0| 20 76 61 72 69 61 62 6c | 65 2c 20 69 66 20 6e 6f | variabl|e, if no|
|00003900| 6e 2d 6e 69 6c 2c 20 69 | 6e 64 69 63 61 74 65 73 |n-nil, i|ndicates|
|00003910| 20 74 68 61 74 20 61 20 | 63 6f 6e 74 72 6f 6c 2d | that a |control-|
|00003920| 67 20 69 73 20 62 65 69 | 6e 67 20 70 72 6f 63 65 |g is bei|ng proce|
|00003930| 73 73 65 64 0a 62 79 20 | 74 68 65 20 73 63 68 65 |ssed.by |the sche|
|00003940| 6d 65 20 70 72 6f 63 65 | 73 73 2c 20 73 6f 20 61 |me proce|ss, so a|
|00003950| 64 64 69 74 69 6f 6e 61 | 6c 20 63 6f 6e 74 72 6f |dditiona|l contro|
|00003960| 6c 2d 67 27 73 20 61 72 | 65 20 74 6f 20 62 65 20 |l-g's ar|e to be |
|00003970| 69 67 6e 6f 72 65 64 2e | 22 29 0a 0a 28 64 65 66 |ignored.|")..(def|
|00003980| 76 61 72 20 78 73 63 68 | 65 6d 65 2d 61 6c 6c 6f |var xsch|eme-allo|
|00003990| 77 2d 6f 75 74 70 75 74 | 2d 70 20 74 20 22 5c 0a |w-output|-p t "\.|
|000039a0| 54 68 69 73 20 76 61 72 | 69 61 62 6c 65 2c 20 69 |This var|iable, i|
|000039b0| 66 20 6e 69 6c 2c 20 70 | 72 65 76 65 6e 74 73 20 |f nil, p|revents |
|000039c0| 6f 75 74 70 75 74 20 66 | 72 6f 6d 20 74 68 65 20 |output f|rom the |
|000039d0| 73 63 68 65 6d 65 20 70 | 72 6f 63 65 73 73 0a 66 |scheme p|rocess.f|
|000039e0| 72 6f 6d 20 62 65 69 6e | 67 20 69 6e 73 65 72 74 |rom bein|g insert|
|000039f0| 65 64 20 69 6e 74 6f 20 | 74 68 65 20 70 72 6f 63 |ed into |the proc|
|00003a00| 65 73 73 2d 62 75 66 66 | 65 72 2e 22 29 0a 0a 28 |ess-buff|er.")..(|
|00003a10| 64 65 66 76 61 72 20 78 | 73 63 68 65 6d 65 2d 70 |defvar x|scheme-p|
|00003a20| 72 6f 6d 70 74 20 22 22 | 20 22 5c 0a 54 68 65 20 |rompt ""| "\.The |
|00003a30| 63 75 72 72 65 6e 74 20 | 73 63 68 65 6d 65 20 70 |current |scheme p|
|00003a40| 72 6f 6d 70 74 20 73 74 | 72 69 6e 67 2e 22 29 0a |rompt st|ring.").|
|00003a50| 0a 28 64 65 66 76 61 72 | 20 78 73 63 68 65 6d 65 |.(defvar| xscheme|
|00003a60| 2d 73 74 72 69 6e 67 2d | 61 63 63 75 6d 75 6c 61 |-string-|accumula|
|00003a70| 74 6f 72 20 22 22 20 22 | 5c 0a 41 63 63 75 6d 75 |tor "" "|\.Accumu|
|00003a80| 6c 61 74 6f 72 20 66 6f | 72 20 74 68 65 20 73 74 |lator fo|r the st|
|00003a90| 72 69 6e 67 20 62 65 69 | 6e 67 20 72 65 63 65 69 |ring bei|ng recei|
|00003aa0| 76 65 64 20 66 72 6f 6d | 20 74 68 65 20 73 63 68 |ved from| the sch|
|00003ab0| 65 6d 65 20 70 72 6f 63 | 65 73 73 2e 22 29 0a 0a |eme proc|ess.")..|
|00003ac0| 28 64 65 66 76 61 72 20 | 78 73 63 68 65 6d 65 2d |(defvar |xscheme-|
|00003ad0| 73 74 72 69 6e 67 2d 72 | 65 63 65 69 76 65 72 20 |string-r|eceiver |
|00003ae0| 6e 69 6c 20 22 5c 0a 50 | 72 6f 63 65 64 75 72 65 |nil "\.P|rocedure|
|00003af0| 20 74 6f 20 73 65 6e 64 | 20 74 68 65 20 73 74 72 | to send| the str|
|00003b00| 69 6e 67 20 61 72 67 75 | 6d 65 6e 74 20 66 72 6f |ing argu|ment fro|
|00003b10| 6d 20 74 68 65 20 73 63 | 68 65 6d 65 20 70 72 6f |m the sc|heme pro|
|00003b20| 63 65 73 73 2e 22 29 0a | 0a 28 64 65 66 76 61 72 |cess.").|.(defvar|
|00003b30| 20 78 73 63 68 65 6d 65 | 2d 73 74 61 72 74 2d 68 | xscheme|-start-h|
|00003b40| 6f 6f 6b 20 6e 69 6c 20 | 22 5c 0a 49 66 20 6e 6f |ook nil |"\.If no|
|00003b50| 6e 2d 6e 69 6c 2c 20 61 | 20 70 72 6f 63 65 64 75 |n-nil, a| procedu|
|00003b60| 72 65 20 74 6f 20 63 61 | 6c 6c 20 77 68 65 6e 20 |re to ca|ll when |
|00003b70| 74 68 65 20 53 63 68 65 | 6d 65 20 70 72 6f 63 65 |the Sche|me proce|
|00003b80| 73 73 20 69 73 20 73 74 | 61 72 74 65 64 2e 0a 57 |ss is st|arted..W|
|00003b90| 68 65 6e 20 63 61 6c 6c | 65 64 2c 20 74 68 65 20 |hen call|ed, the |
|00003ba0| 63 75 72 72 65 6e 74 20 | 62 75 66 66 65 72 20 77 |current |buffer w|
|00003bb0| 69 6c 6c 20 62 65 20 74 | 68 65 20 53 63 68 65 6d |ill be t|he Schem|
|00003bc0| 65 20 70 72 6f 63 65 73 | 73 2d 62 75 66 66 65 72 |e proces|s-buffer|
|00003bd0| 2e 22 29 0a 0a 28 64 65 | 66 76 61 72 20 78 73 63 |.")..(de|fvar xsc|
|00003be0| 68 65 6d 65 2d 72 75 6e | 6c 69 67 68 74 2d 73 74 |heme-run|light-st|
|00003bf0| 72 69 6e 67 20 6e 69 6c | 29 0a 0a 28 64 65 66 76 |ring nil|)..(defv|
|00003c00| 61 72 20 78 73 63 68 65 | 6d 65 2d 6d 6f 64 65 2d |ar xsche|me-mode-|
|00003c10| 73 74 72 69 6e 67 20 6e | 69 6c 29 0a 0a 28 64 65 |string n|il)..(de|
|00003c20| 66 76 61 72 20 78 73 63 | 68 65 6d 65 2d 66 69 6c |fvar xsc|heme-fil|
|00003c30| 74 65 72 2d 69 6e 70 75 | 74 20 6e 69 6c 29 0a 0a |ter-inpu|t nil)..|
|00003c40| 28 64 65 66 75 6e 20 78 | 73 63 68 65 6d 65 2d 73 |(defun x|scheme-s|
|00003c50| 74 61 72 74 2d 70 72 6f | 63 65 73 73 20 28 63 6f |tart-pro|cess (co|
|00003c60| 6d 6d 61 6e 64 2d 6c 69 | 6e 65 29 20 28 62 79 74 |mmand-li|ne) (byt|
|00003c70| 65 2d 63 6f 64 65 20 22 | c7 c8 21 18 c9 08 21 19 |e-code "|..!...!.|
|00003c80| 8a 08 71 88 09 85 15 00 | ca 09 21 cb 3e 83 21 00 |..q.....|..!.>.!.|
|00003c90| cc cd 09 21 64 5c 22 82 | 64 00 09 85 28 00 ce 09 |...!d\".|d...(...|
|00003ca0| 21 88 64 62 88 cf 20 88 | 6f 85 38 00 d0 d1 0a 21 |!.db.. .|o.8....!|
|00003cb0| 21 88 c4 1b d2 d3 d4 08 | d5 0d 21 42 42 5c 22 29 |!.......|..!BB\")|
|00003cc0| 89 11 88 cc cd 09 21 64 | 5c 22 88 d6 c6 21 88 d7 |......!d|\"...!..|
|00003cd0| 20 88 d8 09 d9 5c 22 88 | da 09 db 5c 22 88 dc dd | ....\".|...\"...|
|00003ce0| 21 29 29 88 08 29 87 22 | 20 5b 62 75 66 66 65 72 |!))..)."| [buffer|
|00003cf0| 20 70 72 6f 63 65 73 73 | 20 78 73 63 68 65 6d 65 | process| xscheme|
|00003d00| 2d 73 74 61 72 74 75 70 | 2d 6d 65 73 73 61 67 65 |-startup|-message|
|00003d10| 20 70 72 6f 63 65 73 73 | 2d 63 6f 6e 6e 65 63 74 | process|-connect|
|00003d20| 69 6f 6e 2d 74 79 70 65 | 20 6e 69 6c 20 63 6f 6d |ion-type| nil com|
|00003d30| 6d 61 6e 64 2d 6c 69 6e | 65 20 74 20 67 65 74 2d |mand-lin|e t get-|
|00003d40| 62 75 66 66 65 72 2d 63 | 72 65 61 74 65 20 22 2a |buffer-c|reate "*|
|00003d50| 73 63 68 65 6d 65 2a 22 | 20 67 65 74 2d 62 75 66 |scheme*"| get-buf|
|00003d60| 66 65 72 2d 70 72 6f 63 | 65 73 73 20 70 72 6f 63 |fer-proc|ess proc|
|00003d70| 65 73 73 2d 73 74 61 74 | 75 73 20 28 72 75 6e 20 |ess-stat|us (run |
|00003d80| 73 74 6f 70 29 20 73 65 | 74 2d 6d 61 72 6b 65 72 |stop) se|t-marker|
|00003d90| 20 70 72 6f 63 65 73 73 | 2d 6d 61 72 6b 20 64 65 | process|-mark de|
|00003da0| 6c 65 74 65 2d 70 72 6f | 63 65 73 73 20 73 63 68 |lete-pro|cess sch|
|00003db0| 65 6d 65 2d 69 6e 74 65 | 72 61 63 74 69 6f 6e 2d |eme-inte|raction-|
|00003dc0| 6d 6f 64 65 20 69 6e 73 | 65 72 74 2d 62 65 66 6f |mode ins|ert-befo|
|00003dd0| 72 65 2d 6d 61 72 6b 65 | 72 73 20 73 75 62 73 74 |re-marke|rs subst|
|00003de0| 69 74 75 74 65 2d 63 6f | 6d 6d 61 6e 64 2d 6b 65 |itute-co|mmand-ke|
|00003df0| 79 73 20 61 70 70 6c 79 | 20 73 74 61 72 74 2d 70 |ys apply| start-p|
|00003e00| 72 6f 63 65 73 73 20 22 | 73 63 68 65 6d 65 22 20 |rocess "|scheme" |
|00003e10| 78 73 63 68 65 6d 65 2d | 70 61 72 73 65 2d 63 6f |xscheme-|parse-co|
|00003e20| 6d 6d 61 6e 64 2d 6c 69 | 6e 65 20 78 73 63 68 65 |mmand-li|ne xsche|
|00003e30| 6d 65 2d 70 72 6f 63 65 | 73 73 2d 66 69 6c 74 65 |me-proce|ss-filte|
|00003e40| 72 2d 69 6e 69 74 69 61 | 6c 69 7a 65 20 78 73 63 |r-initia|lize xsc|
|00003e50| 68 65 6d 65 2d 6d 6f 64 | 65 6c 69 6e 65 2d 69 6e |heme-mod|eline-in|
|00003e60| 69 74 69 61 6c 69 7a 65 | 20 73 65 74 2d 70 72 6f |itialize| set-pro|
|00003e70| 63 65 73 73 2d 73 65 6e | 74 69 6e 65 6c 20 78 73 |cess-sen|tinel xs|
|00003e80| 63 68 65 6d 65 2d 70 72 | 6f 63 65 73 73 2d 73 65 |cheme-pr|ocess-se|
|00003e90| 6e 74 69 6e 65 6c 20 73 | 65 74 2d 70 72 6f 63 65 |ntinel s|et-proce|
|00003ea0| 73 73 2d 66 69 6c 74 65 | 72 20 78 73 63 68 65 6d |ss-filte|r xschem|
|00003eb0| 65 2d 70 72 6f 63 65 73 | 73 2d 66 69 6c 74 65 72 |e-proces|s-filter|
|00003ec0| 20 72 75 6e 2d 68 6f 6f | 6b 73 20 78 73 63 68 65 | run-hoo|ks xsche|
|00003ed0| 6d 65 2d 73 74 61 72 74 | 2d 68 6f 6f 6b 5d 20 31 |me-start|-hook] 1|
|00003ee0| 39 29 29 0a 0a 28 64 65 | 66 75 6e 20 78 73 63 68 |9))..(de|fun xsch|
|00003ef0| 65 6d 65 2d 70 61 72 73 | 65 2d 63 6f 6d 6d 61 6e |eme-pars|e-comman|
|00003f00| 64 2d 6c 69 6e 65 20 28 | 73 74 72 69 6e 67 29 20 |d-line (|string) |
|00003f10| 28 62 79 74 65 2d 63 6f | 64 65 20 22 c6 08 21 89 |(byte-co|de "..!.|
|00003f20| 10 88 c7 c4 1a 19 09 85 | 46 00 c8 c9 08 09 23 1b |........|F.....#.|
|00003f30| 0b 3f 83 26 00 08 09 c4 | 4f 0a 42 89 12 88 c4 82 |.?.&....|O.B.....|
|00003f40| 3f 00 0b 09 55 83 34 00 | c8 ca 08 09 23 82 3f 00 |?...U.4.|....#.?.|
|00003f50| 08 09 0b 4f 0a 42 89 12 | 88 0b 54 89 11 29 88 82 |...O.B..|..T..)..|
|00003f60| 0a 00 88 cb 0a 21 2a 87 | 22 20 5b 73 74 72 69 6e |.....!*.|" [strin|
|00003f70| 67 20 73 74 61 72 74 20 | 72 65 73 75 6c 74 20 69 |g start |result i|
|00003f80| 6e 64 65 78 20 6e 69 6c | 20 74 20 73 75 62 73 74 |ndex nil| t subst|
|00003f90| 69 74 75 74 65 2d 69 6e | 2d 66 69 6c 65 2d 6e 61 |itute-in|-file-na|
|00003fa0| 6d 65 20 30 20 73 74 72 | 69 6e 67 2d 6d 61 74 63 |me 0 str|ing-matc|
|00003fb0| 68 20 22 5b 20 09 5d 22 | 20 22 5b 5e 20 09 5d 22 |h "[ .]"| "[^ .]"|
|00003fc0| 20 6e 72 65 76 65 72 73 | 65 5d 20 37 29 29 0a 0a | nrevers|e] 7))..|
|00003fd0| 28 64 65 66 75 6e 20 78 | 73 63 68 65 6d 65 2d 77 |(defun x|scheme-w|
|00003fe0| 61 69 74 2d 66 6f 72 2d | 70 72 6f 63 65 73 73 20 |ait-for-|process |
|00003ff0| 6e 69 6c 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |nil (byt|e-code "|
|00004000| c1 c2 21 88 08 85 0f 00 | c1 c3 21 88 82 04 00 87 |..!.....|..!.....|
|00004010| 22 20 5b 78 73 63 68 65 | 6d 65 2d 72 75 6e 6e 69 |" [xsche|me-runni|
|00004020| 6e 67 2d 70 20 73 6c 65 | 65 70 2d 66 6f 72 20 32 |ng-p sle|ep-for 2|
|00004030| 20 31 5d 20 34 29 29 0a | 0a 28 64 65 66 75 6e 20 | 1] 4)).|.(defun |
|00004040| 78 73 63 68 65 6d 65 2d | 70 72 6f 63 65 73 73 2d |xscheme-|process-|
|00004050| 72 75 6e 6e 69 6e 67 2d | 70 20 6e 69 6c 20 22 5c |running-|p nil "\|
|00004060| 0a 54 72 75 65 20 69 66 | 66 20 74 68 65 72 65 20 |.True if|f there |
|00004070| 69 73 20 61 20 53 63 68 | 65 6d 65 20 70 72 6f 63 |is a Sch|eme proc|
|00004080| 65 73 73 20 77 68 6f 73 | 65 20 73 74 61 74 75 73 |ess whos|e status|
|00004090| 20 69 73 20 60 72 75 6e | 27 2e 22 20 28 62 79 74 | is `run|'." (byt|
|000040a0| 65 2d 63 6f 64 65 20 22 | c1 c2 21 18 08 85 0d 00 |e-code "|..!.....|
|000040b0| c3 08 21 c4 3d 29 87 22 | 20 5b 70 72 6f 63 65 73 |..!.=)."| [proces|
|000040c0| 73 20 67 65 74 2d 70 72 | 6f 63 65 73 73 20 22 73 |s get-pr|ocess "s|
|000040d0| 63 68 65 6d 65 22 20 70 | 72 6f 63 65 73 73 2d 73 |cheme" p|rocess-s|
|000040e0| 74 61 74 75 73 20 72 75 | 6e 5d 20 34 29 29 0a 0a |tatus ru|n] 4))..|
|000040f0| 28 64 65 66 75 6e 20 78 | 73 63 68 65 6d 65 2d 70 |(defun x|scheme-p|
|00004100| 72 6f 63 65 73 73 2d 62 | 75 66 66 65 72 20 6e 69 |rocess-b|uffer ni|
|00004110| 6c 20 28 62 79 74 65 2d | 63 6f 64 65 20 22 c1 c2 |l (byte-|code "..|
|00004120| 21 18 08 85 0b 00 c3 08 | 21 29 87 22 20 5b 70 72 |!.......|!)." [pr|
|00004130| 6f 63 65 73 73 20 67 65 | 74 2d 70 72 6f 63 65 73 |ocess ge|t-proces|
|00004140| 73 20 22 73 63 68 65 6d | 65 22 20 70 72 6f 63 65 |s "schem|e" proce|
|00004150| 73 73 2d 62 75 66 66 65 | 72 5d 20 33 29 29 0a 0a |ss-buffe|r] 3))..|
|00004160| 28 64 65 66 75 6e 20 78 | 73 63 68 65 6d 65 2d 70 |(defun x|scheme-p|
|00004170| 72 6f 63 65 73 73 2d 62 | 75 66 66 65 72 2d 77 69 |rocess-b|uffer-wi|
|00004180| 6e 64 6f 77 20 6e 69 6c | 20 28 62 79 74 65 2d 63 |ndow nil| (byte-c|
|00004190| 6f 64 65 20 22 c1 20 18 | 08 85 0a 00 c2 08 21 29 |ode ". .|......!)|
|000041a0| 87 22 20 5b 62 75 66 66 | 65 72 20 78 73 63 68 65 |." [buff|er xsche|
|000041b0| 6d 65 2d 70 72 6f 63 65 | 73 73 2d 62 75 66 66 65 |me-proce|ss-buffe|
|000041c0| 72 20 67 65 74 2d 62 75 | 66 66 65 72 2d 77 69 6e |r get-bu|ffer-win|
|000041d0| 64 6f 77 5d 20 33 29 29 | 0a 0a 28 64 65 66 75 6e |dow] 3))|..(defun|
|000041e0| 20 78 73 63 68 65 6d 65 | 2d 70 72 6f 63 65 73 73 | xscheme|-process|
|000041f0| 2d 62 75 66 66 65 72 2d | 63 75 72 72 65 6e 74 2d |-buffer-|current-|
|00004200| 70 20 6e 69 6c 20 22 5c | 0a 54 72 75 65 20 69 66 |p nil "\|.True if|
|00004210| 66 20 74 68 65 20 63 75 | 72 72 65 6e 74 20 62 75 |f the cu|rrent bu|
|00004220| 66 66 65 72 20 69 73 20 | 74 68 65 20 53 63 68 65 |ffer is |the Sche|
|00004230| 6d 65 20 70 72 6f 63 65 | 73 73 20 62 75 66 66 65 |me proce|ss buffe|
|00004240| 72 2e 22 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |r." (byt|e-code "|
|00004250| c0 20 70 3d 87 22 20 5b | 78 73 63 68 65 6d 65 2d |. p=." [|xscheme-|
|00004260| 70 72 6f 63 65 73 73 2d | 62 75 66 66 65 72 5d 20 |process-|buffer] |
|00004270| 33 29 29 0a 0a 28 64 65 | 66 75 6e 20 78 73 63 68 |3))..(de|fun xsch|
|00004280| 65 6d 65 2d 70 72 6f 63 | 65 73 73 2d 73 65 6e 74 |eme-proc|ess-sent|
|00004290| 69 6e 65 6c 20 28 70 72 | 6f 63 20 72 65 61 73 6f |inel (pr|oc reaso|
|000042a0| 6e 29 20 28 62 79 74 65 | 2d 63 6f 64 65 20 22 c4 |n) (byte|-code ".|
|000042b0| 08 c5 3d 21 88 08 c5 3d | 83 11 00 c6 20 82 18 00 |..=!...=|.... ...|
|000042c0| c7 89 11 88 c8 89 12 88 | 08 c9 3e 3f 85 21 00 0b |........|..>?.!..|
|000042d0| 85 2a 00 ca 20 88 cb cc | 21 87 22 20 5b 72 65 61 |.*.. ...|!." [rea|
|000042e0| 73 6f 6e 20 73 63 68 65 | 6d 65 2d 6d 6f 64 65 2d |son sche|me-mode-|
|000042f0| 6c 69 6e 65 2d 70 72 6f | 63 65 73 73 20 78 73 63 |line-pro|cess xsc|
|00004300| 68 65 6d 65 2d 6d 6f 64 | 65 2d 73 74 72 69 6e 67 |heme-mod|e-string|
|00004310| 20 78 73 63 68 65 6d 65 | 2d 73 69 67 6e 61 6c 2d | xscheme|-signal-|
|00004320| 64 65 61 74 68 2d 6d 65 | 73 73 61 67 65 20 78 73 |death-me|ssage xs|
|00004330| 63 68 65 6d 65 2d 70 72 | 6f 63 65 73 73 2d 66 69 |cheme-pr|ocess-fi|
|00004340| 6c 74 65 72 2d 69 6e 69 | 74 69 61 6c 69 7a 65 20 |lter-ini|tialize |
|00004350| 72 75 6e 20 78 73 63 68 | 65 6d 65 2d 6d 6f 64 65 |run xsch|eme-mode|
|00004360| 6c 69 6e 65 2d 69 6e 69 | 74 69 61 6c 69 7a 65 20 |line-ini|tialize |
|00004370| 22 22 20 22 6e 6f 20 70 | 72 6f 63 65 73 73 22 20 |"" "no p|rocess" |
|00004380| 28 72 75 6e 20 73 74 6f | 70 29 20 62 65 65 70 20 |(run sto|p) beep |
|00004390| 6d 65 73 73 61 67 65 20 | 22 54 68 65 20 53 63 68 |message |"The Sch|
|000043a0| 65 6d 65 20 70 72 6f 63 | 65 73 73 20 68 61 73 20 |eme proc|ess has |
|000043b0| 64 69 65 64 21 20 20 44 | 6f 20 4d 2d 78 20 72 65 |died! D|o M-x re|
|000043c0| 73 65 74 2d 73 63 68 65 | 6d 65 20 74 6f 20 72 65 |set-sche|me to re|
|000043d0| 73 74 61 72 74 20 69 74 | 22 5d 20 35 29 29 0a 0a |start it|"] 5))..|
|000043e0| 28 64 65 66 75 6e 20 78 | 73 63 68 65 6d 65 2d 70 |(defun x|scheme-p|
|000043f0| 72 6f 63 65 73 73 2d 66 | 69 6c 74 65 72 2d 69 6e |rocess-f|ilter-in|
|00004400| 69 74 69 61 6c 69 7a 65 | 20 28 72 75 6e 6e 69 6e |itialize| (runnin|
|00004410| 67 2d 70 29 20 28 62 79 | 74 65 2d 63 6f 64 65 20 |g-p) (by|te-code |
|00004420| 22 c9 89 10 88 0a 89 11 | 88 c4 89 13 88 c6 89 15 |".......|........|
|00004430| 88 ca 89 16 07 88 cb 89 | 16 08 87 22 20 5b 78 73 |........|..." [xs|
|00004440| 63 68 65 6d 65 2d 70 72 | 6f 63 65 73 73 2d 66 69 |cheme-pr|ocess-fi|
|00004450| 6c 74 65 72 2d 73 74 61 | 74 65 20 78 73 63 68 65 |lter-sta|te xsche|
|00004460| 6d 65 2d 72 75 6e 6e 69 | 6e 67 2d 70 20 72 75 6e |me-runni|ng-p run|
|00004470| 6e 69 6e 67 2d 70 20 78 | 73 63 68 65 6d 65 2d 63 |ning-p x|scheme-c|
|00004480| 6f 6e 74 72 6f 6c 2d 67 | 2d 64 69 73 61 62 6c 65 |ontrol-g|-disable|
|00004490| 64 2d 70 20 6e 69 6c 20 | 78 73 63 68 65 6d 65 2d |d-p nil |xscheme-|
|000044a0| 61 6c 6c 6f 77 2d 6f 75 | 74 70 75 74 2d 70 20 74 |allow-ou|tput-p t|
|000044b0| 20 78 73 63 68 65 6d 65 | 2d 70 72 6f 6d 70 74 20 | xscheme|-prompt |
|000044c0| 73 63 68 65 6d 65 2d 6d | 6f 64 65 2d 6c 69 6e 65 |scheme-m|ode-line|
|000044d0| 2d 70 72 6f 63 65 73 73 | 20 69 64 6c 65 20 22 22 |-process| idle ""|
|000044e0| 20 28 22 3a 20 22 20 78 | 73 63 68 65 6d 65 2d 72 | (": " x|scheme-r|
|000044f0| 75 6e 6c 69 67 68 74 2d | 73 74 72 69 6e 67 29 5d |unlight-|string)]|
|00004500| 20 32 29 29 0a 0a 28 64 | 65 66 75 6e 20 78 73 63 | 2))..(d|efun xsc|
|00004510| 68 65 6d 65 2d 70 72 6f | 63 65 73 73 2d 66 69 6c |heme-pro|cess-fil|
|00004520| 74 65 72 20 28 70 72 6f | 63 20 73 74 72 69 6e 67 |ter (pro|c string|
|00004530| 29 20 28 62 79 74 65 2d | 63 6f 64 65 20 22 09 18 |) (byte-|code "..|
|00004540| 08 85 be 00 0a cb 3d 83 | 38 00 cc cd 08 5c 22 1b |......=.|8....\".|
|00004550| 0b 83 2a 00 ce 08 cf 0b | 4f 21 88 08 0b 54 c4 4f |..*.....|O!...T.O|
|00004560| 89 10 88 d0 89 12 82 34 | 00 08 19 c4 89 10 88 ce |.......4|........|
|00004570| 09 21 29 29 82 ba 00 0a | d0 3d 83 7c 00 d1 08 47 |.!))....|.=.|...G|
|00004580| 21 83 4b 00 c4 89 10 82 | 79 00 08 cf 48 1d 08 d2 |!.K.....|y...H...|
|00004590| c4 4f 89 10 88 d3 0d 0e | 07 5c 22 1e 06 0e 06 83 |.O......|.\".....|
|000045a0| 6f 00 d4 d5 0e 06 38 d2 | 0e 06 38 5c 22 82 77 00 |o.....8.|..8\".w.|
|000045b0| ce d6 0d 5c 22 88 cb 89 | 12 29 29 82 ba 00 0a d7 |...\"...|.)).....|
|000045c0| 3d 83 b7 00 cc cd 08 5c | 22 1b 0b 83 a8 00 0e 08 |=......\|".......|
|000045d0| 08 cf 0b 4f 50 19 08 0b | 54 c4 4f 89 10 88 cb 89 |...OP...|T.O.....|
|000045e0| 12 88 d4 0e 09 09 5c 22 | 29 82 b3 00 0e 08 08 50 |......\"|)......P|
|000045f0| 89 16 08 88 c4 89 10 29 | 82 ba 00 d8 d9 21 88 82 |.......)|.....!..|
|00004600| 02 00 29 87 22 20 5b 78 | 73 63 68 65 6d 65 2d 66 |..)." [x|scheme-f|
|00004610| 69 6c 74 65 72 2d 69 6e | 70 75 74 20 73 74 72 69 |ilter-in|put stri|
|00004620| 6e 67 20 78 73 63 68 65 | 6d 65 2d 70 72 6f 63 65 |ng xsche|me-proce|
|00004630| 73 73 2d 66 69 6c 74 65 | 72 2d 73 74 61 74 65 20 |ss-filte|r-state |
|00004640| 73 74 61 72 74 20 6e 69 | 6c 20 63 68 61 72 20 65 |start ni|l char e|
|00004650| 6e 74 72 79 20 78 73 63 | 68 65 6d 65 2d 70 72 6f |ntry xsc|heme-pro|
|00004660| 63 65 73 73 2d 66 69 6c | 74 65 72 2d 61 6c 69 73 |cess-fil|ter-alis|
|00004670| 74 20 78 73 63 68 65 6d | 65 2d 73 74 72 69 6e 67 |t xschem|e-string|
|00004680| 2d 61 63 63 75 6d 75 6c | 61 74 6f 72 20 78 73 63 |-accumul|ator xsc|
|00004690| 68 65 6d 65 2d 73 74 72 | 69 6e 67 2d 72 65 63 65 |heme-str|ing-rece|
|000046a0| 69 76 65 72 20 74 20 69 | 64 6c 65 20 73 74 72 69 |iver t i|dle stri|
|000046b0| 6e 67 2d 6d 61 74 63 68 | 20 22 1b 22 20 78 73 63 |ng-match| "." xsc|
|000046c0| 68 65 6d 65 2d 70 72 6f | 63 65 73 73 2d 66 69 6c |heme-pro|cess-fil|
|000046d0| 74 65 72 2d 6f 75 74 70 | 75 74 20 30 20 72 65 61 |ter-outp|ut 0 rea|
|000046e0| 64 69 6e 67 2d 74 79 70 | 65 20 7a 65 72 6f 70 20 |ding-typ|e zerop |
|000046f0| 31 20 61 73 73 6f 63 20 | 66 75 6e 63 61 6c 6c 20 |1 assoc |funcall |
|00004700| 32 20 32 37 20 72 65 61 | 64 69 6e 67 2d 73 74 72 |2 27 rea|ding-str|
|00004710| 69 6e 67 20 65 72 72 6f | 72 20 22 53 63 68 65 6d |ing erro|r "Schem|
|00004720| 65 20 70 72 6f 63 65 73 | 73 20 66 69 6c 74 65 72 |e proces|s filter|
|00004730| 20 2d 2d 20 62 61 64 20 | 73 74 61 74 65 22 5d 20 | -- bad |state"] |
|00004740| 31 33 29 29 0a 0a 28 64 | 65 66 75 6e 20 78 73 63 |13))..(d|efun xsc|
|00004750| 68 65 6d 65 2d 70 72 6f | 63 65 73 73 2d 66 69 6c |heme-pro|cess-fil|
|00004760| 74 65 72 2d 6f 75 74 70 | 75 74 20 28 26 72 65 73 |ter-outp|ut (&res|
|00004770| 74 20 61 72 67 73 29 20 | 28 62 79 74 65 2d 63 6f |t args) |(byte-co|
|00004780| 64 65 20 22 08 85 4f 00 | c5 c6 0a 5c 22 19 8a c7 |de "..O.|...\"...|
|00004790| 20 88 c8 c9 09 5c 22 85 | 49 00 ca cb 21 cc cb 21 | ....\".|I...!..!|
|000047a0| 1c 1b cd 09 cb 0b 4f 21 | 88 ce 09 0b 48 55 83 3a |......O!|....HU.:|
|000047b0| 00 6e 3f 85 33 00 cd cf | 21 88 cd ce 21 82 3c 00 |.n?.3...|!...!.<.|
|000047c0| d0 20 88 09 0b 54 d1 4f | 89 11 2a 88 82 0d 00 88 |. ...T.O|..*.....|
|000047d0| cd 09 21 29 29 87 22 20 | 5b 78 73 63 68 65 6d 65 |..!))." |[xscheme|
|000047e0| 2d 61 6c 6c 6f 77 2d 6f | 75 74 70 75 74 2d 70 20 |-allow-o|utput-p |
|000047f0| 73 74 72 69 6e 67 20 61 | 72 67 73 20 73 74 61 72 |string a|rgs star|
|00004800| 74 20 65 6e 64 20 61 70 | 70 6c 79 20 63 6f 6e 63 |t end ap|ply conc|
|00004810| 61 74 20 78 73 63 68 65 | 6d 65 2d 67 6f 74 6f 2d |at xsche|me-goto-|
|00004820| 6f 75 74 70 75 74 2d 70 | 6f 69 6e 74 20 73 74 72 |output-p|oint str|
|00004830| 69 6e 67 2d 6d 61 74 63 | 68 20 22 5c 5c 28 07 5c |ing-matc|h "\\(.\|
|00004840| 5c 7c 0c 5c 5c 29 22 20 | 6d 61 74 63 68 2d 62 65 |\|.\\)" |match-be|
|00004850| 67 69 6e 6e 69 6e 67 20 | 30 20 6d 61 74 63 68 2d |ginning |0 match-|
|00004860| 65 6e 64 20 69 6e 73 65 | 72 74 2d 62 65 66 6f 72 |end inse|rt-befor|
|00004870| 65 2d 6d 61 72 6b 65 72 | 73 20 31 32 20 31 30 20 |e-marker|s 12 10 |
|00004880| 62 65 65 70 20 6e 69 6c | 5d 20 31 33 29 29 0a 0a |beep nil|] 13))..|
|00004890| 28 64 65 66 75 6e 20 78 | 73 63 68 65 6d 65 2d 67 |(defun x|scheme-g|
|000048a0| 75 61 72 61 6e 74 65 65 | 2d 6e 65 77 6c 69 6e 65 |uarantee|-newline|
|000048b0| 73 20 28 6e 29 20 28 62 | 79 74 65 2d 63 6f 64 65 |s (n) (b|yte-code|
|000048c0| 20 22 08 85 40 00 8a c5 | 20 88 c2 19 09 3f 85 10 | "..@...| ....?..|
|000048d0| 00 6e 85 28 00 0b 53 89 | 13 88 6f 83 5c 22 00 c4 |.n.(..S.|..o.\"..|
|000048e0| 89 11 82 24 00 c6 20 88 | 82 0a 00 29 88 c5 20 88 |...$.. .|...).. .|
|000048f0| 0b c7 56 85 3f 00 c8 c9 | 21 88 0b 53 89 13 88 82 |..V.?...|!..S....|
|00004900| 2d 00 29 87 22 20 5b 78 | 73 63 68 65 6d 65 2d 61 |-.)." [x|scheme-a|
|00004910| 6c 6c 6f 77 2d 6f 75 74 | 70 75 74 2d 70 20 73 74 |llow-out|put-p st|
|00004920| 6f 70 20 6e 69 6c 20 6e | 20 74 20 78 73 63 68 65 |op nil n| t xsche|
|00004930| 6d 65 2d 67 6f 74 6f 2d | 6f 75 74 70 75 74 2d 70 |me-goto-|output-p|
|00004940| 6f 69 6e 74 20 62 61 63 | 6b 77 61 72 64 2d 63 68 |oint bac|kward-ch|
|00004950| 61 72 20 30 20 69 6e 73 | 65 72 74 2d 62 65 66 6f |ar 0 ins|ert-befo|
|00004960| 72 65 2d 6d 61 72 6b 65 | 72 73 20 31 30 5d 20 37 |re-marke|rs 10] 7|
|00004970| 29 29 0a 0a 28 64 65 66 | 75 6e 20 78 73 63 68 65 |))..(def|un xsche|
|00004980| 6d 65 2d 67 6f 74 6f 2d | 6f 75 74 70 75 74 2d 70 |me-goto-|output-p|
|00004990| 6f 69 6e 74 20 6e 69 6c | 20 28 62 79 74 65 2d 63 |oint nil| (byte-c|
|000049a0| 6f 64 65 20 22 c1 c2 21 | 18 c3 08 21 71 88 c4 08 |ode "..!|...!q...|
|000049b0| 21 62 29 87 22 20 5b 70 | 72 6f 63 65 73 73 20 67 |!b)." [p|rocess g|
|000049c0| 65 74 2d 70 72 6f 63 65 | 73 73 20 22 73 63 68 65 |et-proce|ss "sche|
|000049d0| 6d 65 22 20 70 72 6f 63 | 65 73 73 2d 62 75 66 66 |me" proc|ess-buff|
|000049e0| 65 72 20 70 72 6f 63 65 | 73 73 2d 6d 61 72 6b 5d |er proce|ss-mark]|
|000049f0| 20 34 29 29 0a 0a 28 64 | 65 66 75 6e 20 78 73 63 | 4))..(d|efun xsc|
|00004a00| 68 65 6d 65 2d 6d 6f 64 | 65 6c 69 6e 65 2d 69 6e |heme-mod|eline-in|
|00004a10| 69 74 69 61 6c 69 7a 65 | 20 6e 69 6c 20 28 62 79 |itialize| nil (by|
|00004a20| 74 65 2d 63 6f 64 65 20 | 22 c3 89 10 88 c3 89 11 |te-code |".......|
|00004a30| 88 c4 89 12 87 22 20 5b | 78 73 63 68 65 6d 65 2d |....." [|xscheme-|
|00004a40| 72 75 6e 6c 69 67 68 74 | 2d 73 74 72 69 6e 67 20 |runlight|-string |
|00004a50| 78 73 63 68 65 6d 65 2d | 6d 6f 64 65 2d 73 74 72 |xscheme-|mode-str|
|00004a60| 69 6e 67 20 6d 6f 64 65 | 2d 6c 69 6e 65 2d 62 75 |ing mode|-line-bu|
|00004a70| 66 66 65 72 2d 69 64 65 | 6e 74 69 66 69 63 61 74 |ffer-ide|ntificat|
|00004a80| 69 6f 6e 20 22 22 20 28 | 22 53 63 68 65 6d 65 3a |ion "" (|"Scheme:|
|00004a90| 20 22 20 78 73 63 68 65 | 6d 65 2d 6d 6f 64 65 2d | " xsche|me-mode-|
|00004aa0| 73 74 72 69 6e 67 29 5d | 20 32 29 29 0a 0a 28 64 |string)]| 2))..(d|
|00004ab0| 65 66 75 6e 20 78 73 63 | 68 65 6d 65 2d 73 65 74 |efun xsc|heme-set|
|00004ac0| 2d 72 75 6e 6c 69 67 68 | 74 20 28 72 75 6e 6c 69 |-runligh|t (runli|
|00004ad0| 67 68 74 29 20 28 62 79 | 74 65 2d 63 6f 64 65 20 |ght) (by|te-code |
|00004ae0| 22 09 89 10 88 c2 20 87 | 22 20 5b 78 73 63 68 65 |"..... .|" [xsche|
|00004af0| 6d 65 2d 72 75 6e 6c 69 | 67 68 74 2d 73 74 72 69 |me-runli|ght-stri|
|00004b00| 6e 67 20 72 75 6e 6c 69 | 67 68 74 20 78 73 63 68 |ng runli|ght xsch|
|00004b10| 65 6d 65 2d 6d 6f 64 65 | 6c 69 6e 65 2d 72 65 64 |eme-mode|line-red|
|00004b20| 69 73 70 6c 61 79 5d 20 | 32 29 29 0a 0a 28 64 65 |isplay] |2))..(de|
|00004b30| 66 75 6e 20 78 73 63 68 | 65 6d 65 2d 6d 6f 64 65 |fun xsch|eme-mode|
|00004b40| 6c 69 6e 65 2d 72 65 64 | 69 73 70 6c 61 79 20 6e |line-red|isplay n|
|00004b50| 69 6c 20 28 62 79 74 65 | 2d 63 6f 64 65 20 22 8a |il (byte|-code ".|
|00004b60| c0 20 71 29 88 c1 c2 20 | 21 88 c3 c4 21 87 22 20 |. q)... |!...!." |
|00004b70| 5b 6f 74 68 65 72 2d 62 | 75 66 66 65 72 20 73 65 |[other-b|uffer se|
|00004b80| 74 2d 62 75 66 66 65 72 | 2d 6d 6f 64 69 66 69 65 |t-buffer|-modifie|
|00004b90| 64 2d 70 20 62 75 66 66 | 65 72 2d 6d 6f 64 69 66 |d-p buff|er-modif|
|00004ba0| 69 65 64 2d 70 20 73 69 | 74 2d 66 6f 72 20 30 5d |ied-p si|t-for 0]|
|00004bb0| 20 35 29 29 0a 0a 28 64 | 65 66 76 61 72 20 78 73 | 5))..(d|efvar xs|
|00004bc0| 63 68 65 6d 65 2d 70 72 | 6f 63 65 73 73 2d 66 69 |cheme-pr|ocess-fi|
|00004bd0| 6c 74 65 72 2d 61 6c 69 | 73 74 20 28 71 75 6f 74 |lter-ali|st (quot|
|00004be0| 65 20 28 28 36 38 20 78 | 73 63 68 65 6d 65 2d 65 |e ((68 x|scheme-e|
|00004bf0| 6e 74 65 72 2d 64 65 62 | 75 67 67 65 72 2d 6d 6f |nter-deb|ugger-mo|
|00004c00| 64 65 20 78 73 63 68 65 | 6d 65 2d 70 72 6f 63 65 |de xsche|me-proce|
|00004c10| 73 73 2d 66 69 6c 74 65 | 72 3a 73 74 72 69 6e 67 |ss-filte|r:string|
|00004c20| 2d 61 63 74 69 6f 6e 29 | 20 28 38 30 20 78 73 63 |-action)| (80 xsc|
|00004c30| 68 65 6d 65 2d 73 65 74 | 2d 70 72 6f 6d 70 74 2d |heme-set|-prompt-|
|00004c40| 76 61 72 69 61 62 6c 65 | 20 78 73 63 68 65 6d 65 |variable| xscheme|
|00004c50| 2d 70 72 6f 63 65 73 73 | 2d 66 69 6c 74 65 72 3a |-process|-filter:|
|00004c60| 73 74 72 69 6e 67 2d 61 | 63 74 69 6f 6e 29 20 28 |string-a|ction) (|
|00004c70| 38 32 20 78 73 63 68 65 | 6d 65 2d 65 6e 74 65 72 |82 xsche|me-enter|
|00004c80| 2d 69 6e 74 65 72 61 63 | 74 69 6f 6e 2d 6d 6f 64 |-interac|tion-mod|
|00004c90| 65 20 78 73 63 68 65 6d | 65 2d 70 72 6f 63 65 73 |e xschem|e-proces|
|00004ca0| 73 2d 66 69 6c 74 65 72 | 3a 73 69 6d 70 6c 65 2d |s-filter|:simple-|
|00004cb0| 61 63 74 69 6f 6e 29 20 | 28 39 38 20 78 73 63 68 |action) |(98 xsch|
|00004cc0| 65 6d 65 2d 73 74 61 72 | 74 2d 67 63 20 78 73 63 |eme-star|t-gc xsc|
|00004cd0| 68 65 6d 65 2d 70 72 6f | 63 65 73 73 2d 66 69 6c |heme-pro|cess-fil|
|00004ce0| 74 65 72 3a 73 69 6d 70 | 6c 65 2d 61 63 74 69 6f |ter:simp|le-actio|
|00004cf0| 6e 29 20 28 31 30 31 20 | 78 73 63 68 65 6d 65 2d |n) (101 |xscheme-|
|00004d00| 66 69 6e 69 73 68 2d 67 | 63 20 78 73 63 68 65 6d |finish-g|c xschem|
|00004d10| 65 2d 70 72 6f 63 65 73 | 73 2d 66 69 6c 74 65 72 |e-proces|s-filter|
|00004d20| 3a 73 69 6d 70 6c 65 2d | 61 63 74 69 6f 6e 29 20 |:simple-|action) |
|00004d30| 28 31 30 32 20 78 73 63 | 68 65 6d 65 2d 65 78 69 |(102 xsc|heme-exi|
|00004d40| 74 2d 69 6e 70 75 74 2d | 77 61 69 74 20 78 73 63 |t-input-|wait xsc|
|00004d50| 68 65 6d 65 2d 70 72 6f | 63 65 73 73 2d 66 69 6c |heme-pro|cess-fil|
|00004d60| 74 65 72 3a 73 69 6d 70 | 6c 65 2d 61 63 74 69 6f |ter:simp|le-actio|
|00004d70| 6e 29 20 28 31 30 33 20 | 78 73 63 68 65 6d 65 2d |n) (103 |xscheme-|
|00004d80| 65 6e 61 62 6c 65 2d 63 | 6f 6e 74 72 6f 6c 2d 67 |enable-c|ontrol-g|
|00004d90| 20 78 73 63 68 65 6d 65 | 2d 70 72 6f 63 65 73 73 | xscheme|-process|
|00004da0| 2d 66 69 6c 74 65 72 3a | 73 69 6d 70 6c 65 2d 61 |-filter:|simple-a|
|00004db0| 63 74 69 6f 6e 29 20 28 | 31 30 35 20 78 73 63 68 |ction) (|105 xsch|
|00004dc0| 65 6d 65 2d 70 72 6f 6d | 70 74 2d 66 6f 72 2d 65 |eme-prom|pt-for-e|
|00004dd0| 78 70 72 65 73 73 69 6f | 6e 20 78 73 63 68 65 6d |xpressio|n xschem|
|00004de0| 65 2d 70 72 6f 63 65 73 | 73 2d 66 69 6c 74 65 72 |e-proces|s-filter|
|00004df0| 3a 73 74 72 69 6e 67 2d | 61 63 74 69 6f 6e 29 20 |:string-|action) |
|00004e00| 28 31 30 39 20 78 73 63 | 68 65 6d 65 2d 6d 65 73 |(109 xsc|heme-mes|
|00004e10| 73 61 67 65 20 78 73 63 | 68 65 6d 65 2d 70 72 6f |sage xsc|heme-pro|
|00004e20| 63 65 73 73 2d 66 69 6c | 74 65 72 3a 73 74 72 69 |cess-fil|ter:stri|
|00004e30| 6e 67 2d 61 63 74 69 6f | 6e 29 20 28 31 31 30 20 |ng-actio|n) (110 |
|00004e40| 78 73 63 68 65 6d 65 2d | 70 72 6f 6d 70 74 2d 66 |xscheme-|prompt-f|
|00004e50| 6f 72 2d 63 6f 6e 66 69 | 72 6d 61 74 69 6f 6e 20 |or-confi|rmation |
|00004e60| 78 73 63 68 65 6d 65 2d | 70 72 6f 63 65 73 73 2d |xscheme-|process-|
|00004e70| 66 69 6c 74 65 72 3a 73 | 74 72 69 6e 67 2d 61 63 |filter:s|tring-ac|
|00004e80| 74 69 6f 6e 29 20 28 31 | 31 31 20 78 73 63 68 65 |tion) (1|11 xsche|
|00004e90| 6d 65 2d 6f 75 74 70 75 | 74 2d 67 6f 74 6f 20 78 |me-outpu|t-goto x|
|00004ea0| 73 63 68 65 6d 65 2d 70 | 72 6f 63 65 73 73 2d 66 |scheme-p|rocess-f|
|00004eb0| 69 6c 74 65 72 3a 73 69 | 6d 70 6c 65 2d 61 63 74 |ilter:si|mple-act|
|00004ec0| 69 6f 6e 29 20 28 31 31 | 32 20 78 73 63 68 65 6d |ion) (11|2 xschem|
|00004ed0| 65 2d 73 65 74 2d 70 72 | 6f 6d 70 74 20 78 73 63 |e-set-pr|ompt xsc|
|00004ee0| 68 65 6d 65 2d 70 72 6f | 63 65 73 73 2d 66 69 6c |heme-pro|cess-fil|
|00004ef0| 74 65 72 3a 73 74 72 69 | 6e 67 2d 61 63 74 69 6f |ter:stri|ng-actio|
|00004f00| 6e 29 20 28 31 31 35 20 | 78 73 63 68 65 6d 65 2d |n) (115 |xscheme-|
|00004f10| 65 6e 74 65 72 2d 69 6e | 70 75 74 2d 77 61 69 74 |enter-in|put-wait|
|00004f20| 20 78 73 63 68 65 6d 65 | 2d 70 72 6f 63 65 73 73 | xscheme|-process|
|00004f30| 2d 66 69 6c 74 65 72 3a | 73 69 6d 70 6c 65 2d 61 |-filter:|simple-a|
|00004f40| 63 74 69 6f 6e 29 20 28 | 31 31 38 20 78 73 63 68 |ction) (|118 xsch|
|00004f50| 65 6d 65 2d 77 72 69 74 | 65 2d 76 61 6c 75 65 20 |eme-writ|e-value |
|00004f60| 78 73 63 68 65 6d 65 2d | 70 72 6f 63 65 73 73 2d |xscheme-|process-|
|00004f70| 66 69 6c 74 65 72 3a 73 | 74 72 69 6e 67 2d 61 63 |filter:s|tring-ac|
|00004f80| 74 69 6f 6e 29 20 28 31 | 31 39 20 78 73 63 68 65 |tion) (1|19 xsche|
|00004f90| 6d 65 2d 63 64 20 78 73 | 63 68 65 6d 65 2d 70 72 |me-cd xs|cheme-pr|
|00004fa0| 6f 63 65 73 73 2d 66 69 | 6c 74 65 72 3a 73 74 72 |ocess-fi|lter:str|
|00004fb0| 69 6e 67 2d 61 63 74 69 | 6f 6e 29 20 28 31 32 32 |ing-acti|on) (122|
|00004fc0| 20 78 73 63 68 65 6d 65 | 2d 64 69 73 70 6c 61 79 | xscheme|-display|
|00004fd0| 2d 70 72 6f 63 65 73 73 | 2d 62 75 66 66 65 72 20 |-process|-buffer |
|00004fe0| 78 73 63 68 65 6d 65 2d | 70 72 6f 63 65 73 73 2d |xscheme-|process-|
|00004ff0| 66 69 6c 74 65 72 3a 73 | 69 6d 70 6c 65 2d 61 63 |filter:s|imple-ac|
|00005000| 74 69 6f 6e 29 20 28 39 | 39 20 78 73 63 68 65 6d |tion) (9|9 xschem|
|00005010| 65 2d 75 6e 73 6f 6c 69 | 63 69 74 65 64 2d 72 65 |e-unsoli|cited-re|
|00005020| 61 64 2d 63 68 61 72 20 | 78 73 63 68 65 6d 65 2d |ad-char |xscheme-|
|00005030| 70 72 6f 63 65 73 73 2d | 66 69 6c 74 65 72 3a 73 |process-|filter:s|
|00005040| 69 6d 70 6c 65 2d 61 63 | 74 69 6f 6e 29 29 29 20 |imple-ac|tion))) |
|00005050| 22 5c 0a 54 61 62 6c 65 | 20 75 73 65 64 20 74 6f |"\.Table| used to|
|00005060| 20 64 65 63 69 64 65 20 | 68 6f 77 20 74 6f 20 68 | decide |how to h|
|00005070| 61 6e 64 6c 65 20 70 72 | 6f 63 65 73 73 20 66 69 |andle pr|ocess fi|
|00005080| 6c 74 65 72 20 63 6f 6d | 6d 61 6e 64 73 2e 0a 56 |lter com|mands..V|
|00005090| 61 6c 75 65 20 69 73 20 | 61 20 6c 69 73 74 20 6f |alue is |a list o|
|000050a0| 66 20 65 6e 74 72 69 65 | 73 2c 20 65 61 63 68 20 |f entrie|s, each |
|000050b0| 65 6e 74 72 79 20 69 73 | 20 61 20 6c 69 73 74 20 |entry is| a list |
|000050c0| 6f 66 20 74 68 72 65 65 | 20 69 74 65 6d 73 2e 0a |of three| items..|
|000050d0| 0a 54 68 65 20 66 69 72 | 73 74 20 69 74 65 6d 20 |.The fir|st item |
|000050e0| 69 73 20 74 68 65 20 63 | 68 61 72 61 63 74 65 72 |is the c|haracter|
|000050f0| 20 74 68 61 74 20 74 68 | 65 20 70 72 6f 63 65 73 | that th|e proces|
|00005100| 73 20 66 69 6c 74 65 72 | 20 64 69 73 70 61 74 63 |s filter| dispatc|
|00005110| 68 65 73 20 6f 6e 2e 0a | 54 68 65 20 73 65 63 6f |hes on..|The seco|
|00005120| 6e 64 20 69 74 65 6d 20 | 69 73 20 74 68 65 20 61 |nd item |is the a|
|00005130| 63 74 69 6f 6e 20 74 6f | 20 62 65 20 74 61 6b 65 |ction to| be take|
|00005140| 6e 2c 20 61 20 66 75 6e | 63 74 69 6f 6e 2e 0a 54 |n, a fun|ction..T|
|00005150| 68 65 20 74 68 69 72 64 | 20 69 74 65 6d 20 69 73 |he third| item is|
|00005160| 20 74 68 65 20 68 61 6e | 64 6c 65 72 20 66 6f 72 | the han|dler for|
|00005170| 20 74 68 65 20 65 6e 74 | 72 79 2c 20 61 20 66 75 | the ent|ry, a fu|
|00005180| 6e 63 74 69 6f 6e 2e 0a | 0a 57 68 65 6e 20 74 68 |nction..|.When th|
|00005190| 65 20 70 72 6f 63 65 73 | 73 20 66 69 6c 74 65 72 |e proces|s filter|
|000051a0| 20 73 65 65 73 20 61 20 | 63 6f 6d 6d 61 6e 64 20 | sees a |command |
|000051b0| 77 68 6f 73 65 20 63 68 | 61 72 61 63 74 65 72 20 |whose ch|aracter |
|000051c0| 6d 61 74 63 68 65 73 20 | 61 0a 70 61 72 74 69 63 |matches |a.partic|
|000051d0| 75 6c 61 72 20 65 6e 74 | 72 79 2c 20 69 74 20 63 |ular ent|ry, it c|
|000051e0| 61 6c 6c 73 20 74 68 65 | 20 68 61 6e 64 6c 65 72 |alls the| handler|
|000051f0| 20 77 69 74 68 20 74 77 | 6f 20 61 72 67 75 6d 65 | with tw|o argume|
|00005200| 6e 74 73 3a 20 74 68 65 | 20 61 63 74 69 6f 6e 0a |nts: the| action.|
|00005210| 61 6e 64 20 74 68 65 20 | 73 74 72 69 6e 67 20 63 |and the |string c|
|00005220| 6f 6e 74 61 69 6e 69 6e | 67 20 74 68 65 20 72 65 |ontainin|g the re|
|00005230| 73 74 20 6f 66 20 74 68 | 65 20 70 72 6f 63 65 73 |st of th|e proces|
|00005240| 73 20 66 69 6c 74 65 72 | 27 73 20 69 6e 70 75 74 |s filter|'s input|
|00005250| 0a 73 74 72 65 61 6d 2e | 20 20 49 74 20 69 73 20 |.stream.| It is |
|00005260| 74 68 65 20 72 65 73 70 | 6f 6e 73 69 62 69 6c 69 |the resp|onsibili|
|00005270| 74 79 20 6f 66 20 74 68 | 65 20 68 61 6e 64 6c 65 |ty of th|e handle|
|00005280| 72 20 74 6f 20 69 6e 76 | 6f 6b 65 20 74 68 65 20 |r to inv|oke the |
|00005290| 61 63 74 69 6f 6e 0a 77 | 69 74 68 20 74 68 65 20 |action.w|ith the |
|000052a0| 61 70 70 72 6f 70 72 69 | 61 74 65 20 61 72 67 75 |appropri|ate argu|
|000052b0| 6d 65 6e 74 73 2c 20 61 | 6e 64 20 74 6f 20 72 65 |ments, a|nd to re|
|000052c0| 65 6e 74 65 72 20 74 68 | 65 20 70 72 6f 63 65 73 |enter th|e proces|
|000052d0| 73 20 66 69 6c 74 65 72 | 20 77 69 74 68 0a 74 68 |s filter| with.th|
|000052e0| 65 20 72 65 6d 61 69 6e | 69 6e 67 20 69 6e 70 75 |e remain|ing inpu|
|000052f0| 74 2e 22 29 0a 0a 28 64 | 65 66 75 6e 20 78 73 63 |t.")..(d|efun xsc|
|00005300| 68 65 6d 65 2d 70 72 6f | 63 65 73 73 2d 66 69 6c |heme-pro|cess-fil|
|00005310| 74 65 72 3a 73 69 6d 70 | 6c 65 2d 61 63 74 69 6f |ter:simp|le-actio|
|00005320| 6e 20 28 61 63 74 69 6f | 6e 29 20 28 62 79 74 65 |n (actio|n) (byte|
|00005330| 2d 63 6f 64 65 20 22 c2 | 89 10 88 c3 09 21 87 22 |-code ".|.....!."|
|00005340| 20 5b 78 73 63 68 65 6d | 65 2d 70 72 6f 63 65 73 | [xschem|e-proces|
|00005350| 73 2d 66 69 6c 74 65 72 | 2d 73 74 61 74 65 20 61 |s-filter|-state a|
|00005360| 63 74 69 6f 6e 20 69 64 | 6c 65 20 66 75 6e 63 61 |ction id|le funca|
|00005370| 6c 6c 5d 20 32 29 29 0a | 0a 28 64 65 66 75 6e 20 |ll] 2)).|.(defun |
|00005380| 78 73 63 68 65 6d 65 2d | 70 72 6f 63 65 73 73 2d |xscheme-|process-|
|00005390| 66 69 6c 74 65 72 3a 73 | 74 72 69 6e 67 2d 61 63 |filter:s|tring-ac|
|000053a0| 74 69 6f 6e 20 28 61 63 | 74 69 6f 6e 29 20 28 62 |tion (ac|tion) (b|
|000053b0| 79 74 65 2d 63 6f 64 65 | 20 22 09 89 10 88 c4 89 |yte-code| "......|
|000053c0| 12 88 c5 89 13 87 22 20 | 5b 78 73 63 68 65 6d 65 |......" |[xscheme|
|000053d0| 2d 73 74 72 69 6e 67 2d | 72 65 63 65 69 76 65 72 |-string-|receiver|
|000053e0| 20 61 63 74 69 6f 6e 20 | 78 73 63 68 65 6d 65 2d | action |xscheme-|
|000053f0| 73 74 72 69 6e 67 2d 61 | 63 63 75 6d 75 6c 61 74 |string-a|ccumulat|
|00005400| 6f 72 20 78 73 63 68 65 | 6d 65 2d 70 72 6f 63 65 |or xsche|me-proce|
|00005410| 73 73 2d 66 69 6c 74 65 | 72 2d 73 74 61 74 65 20 |ss-filte|r-state |
|00005420| 22 22 20 72 65 61 64 69 | 6e 67 2d 73 74 72 69 6e |"" readi|ng-strin|
|00005430| 67 5d 20 32 29 29 0a 0a | 28 64 65 66 63 6f 6e 73 |g] 2))..|(defcons|
|00005440| 74 20 78 73 63 68 65 6d | 65 2d 72 75 6e 6c 69 67 |t xschem|e-runlig|
|00005450| 68 74 3a 72 75 6e 6e 69 | 6e 67 20 22 72 75 6e 22 |ht:runni|ng "run"|
|00005460| 20 22 5c 0a 54 68 65 20 | 63 68 61 72 61 63 74 65 | "\.The |characte|
|00005470| 72 20 64 69 73 70 6c 61 | 79 65 64 20 77 68 65 6e |r displa|yed when|
|00005480| 20 74 68 65 20 53 63 68 | 65 6d 65 20 70 72 6f 63 | the Sch|eme proc|
|00005490| 65 73 73 20 69 73 20 72 | 75 6e 6e 69 6e 67 2e 22 |ess is r|unning."|
|000054a0| 29 0a 0a 28 64 65 66 63 | 6f 6e 73 74 20 78 73 63 |)..(defc|onst xsc|
|000054b0| 68 65 6d 65 2d 72 75 6e | 6c 69 67 68 74 3a 69 6e |heme-run|light:in|
|000054c0| 70 75 74 20 22 69 6e 70 | 75 74 22 20 22 5c 0a 54 |put "inp|ut" "\.T|
|000054d0| 68 65 20 63 68 61 72 61 | 63 74 65 72 20 64 69 73 |he chara|cter dis|
|000054e0| 70 6c 61 79 65 64 20 77 | 68 65 6e 20 74 68 65 20 |played w|hen the |
|000054f0| 53 63 68 65 6d 65 20 70 | 72 6f 63 65 73 73 20 69 |Scheme p|rocess i|
|00005500| 73 20 77 61 69 74 69 6e | 67 20 66 6f 72 20 69 6e |s waitin|g for in|
|00005510| 70 75 74 2e 22 29 0a 0a | 28 64 65 66 63 6f 6e 73 |put.")..|(defcons|
|00005520| 74 20 78 73 63 68 65 6d | 65 2d 72 75 6e 6c 69 67 |t xschem|e-runlig|
|00005530| 68 74 3a 67 63 20 22 67 | 63 22 20 22 5c 0a 54 68 |ht:gc "g|c" "\.Th|
|00005540| 65 20 63 68 61 72 61 63 | 74 65 72 20 64 69 73 70 |e charac|ter disp|
|00005550| 6c 61 79 65 64 20 77 68 | 65 6e 20 74 68 65 20 53 |layed wh|en the S|
|00005560| 63 68 65 6d 65 20 70 72 | 6f 63 65 73 73 20 69 73 |cheme pr|ocess is|
|00005570| 20 67 61 72 62 61 67 65 | 20 63 6f 6c 6c 65 63 74 | garbage| collect|
|00005580| 69 6e 67 2e 22 29 0a 0a | 28 64 65 66 75 6e 20 78 |ing.")..|(defun x|
|00005590| 73 63 68 65 6d 65 2d 73 | 74 61 72 74 2d 67 63 20 |scheme-s|tart-gc |
|000055a0| 6e 69 6c 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |nil (byt|e-code "|
|000055b0| c1 08 21 87 22 20 5b 78 | 73 63 68 65 6d 65 2d 72 |..!." [x|scheme-r|
|000055c0| 75 6e 6c 69 67 68 74 3a | 67 63 20 78 73 63 68 65 |unlight:|gc xsche|
|000055d0| 6d 65 2d 73 65 74 2d 72 | 75 6e 6c 69 67 68 74 5d |me-set-r|unlight]|
|000055e0| 20 32 29 29 0a 0a 28 64 | 65 66 75 6e 20 78 73 63 | 2))..(d|efun xsc|
|000055f0| 68 65 6d 65 2d 66 69 6e | 69 73 68 2d 67 63 20 6e |heme-fin|ish-gc n|
|00005600| 69 6c 20 28 62 79 74 65 | 2d 63 6f 64 65 20 22 c3 |il (byte|-code ".|
|00005610| 08 83 09 00 09 82 0a 00 | 0a 21 87 22 20 5b 78 73 |........|.!." [xs|
|00005620| 63 68 65 6d 65 2d 72 75 | 6e 6e 69 6e 67 2d 70 20 |cheme-ru|nning-p |
|00005630| 78 73 63 68 65 6d 65 2d | 72 75 6e 6c 69 67 68 74 |xscheme-|runlight|
|00005640| 3a 72 75 6e 6e 69 6e 67 | 20 78 73 63 68 65 6d 65 |:running| xscheme|
|00005650| 2d 72 75 6e 6c 69 67 68 | 74 3a 69 6e 70 75 74 20 |-runligh|t:input |
|00005660| 78 73 63 68 65 6d 65 2d | 73 65 74 2d 72 75 6e 6c |xscheme-|set-runl|
|00005670| 69 67 68 74 5d 20 32 29 | 29 0a 0a 28 64 65 66 75 |ight] 2)|)..(defu|
|00005680| 6e 20 78 73 63 68 65 6d | 65 2d 65 6e 74 65 72 2d |n xschem|e-enter-|
|00005690| 69 6e 70 75 74 2d 77 61 | 69 74 20 6e 69 6c 20 28 |input-wa|it nil (|
|000056a0| 62 79 74 65 2d 63 6f 64 | 65 20 22 c3 08 21 88 c2 |byte-cod|e "..!..|
|000056b0| 89 11 87 22 20 5b 78 73 | 63 68 65 6d 65 2d 72 75 |..." [xs|cheme-ru|
|000056c0| 6e 6c 69 67 68 74 3a 69 | 6e 70 75 74 20 78 73 63 |nlight:i|nput xsc|
|000056d0| 68 65 6d 65 2d 72 75 6e | 6e 69 6e 67 2d 70 20 6e |heme-run|ning-p n|
|000056e0| 69 6c 20 78 73 63 68 65 | 6d 65 2d 73 65 74 2d 72 |il xsche|me-set-r|
|000056f0| 75 6e 6c 69 67 68 74 5d | 20 33 29 29 0a 0a 28 64 |unlight]| 3))..(d|
|00005700| 65 66 75 6e 20 78 73 63 | 68 65 6d 65 2d 65 78 69 |efun xsc|heme-exi|
|00005710| 74 2d 69 6e 70 75 74 2d | 77 61 69 74 20 6e 69 6c |t-input-|wait nil|
|00005720| 20 28 62 79 74 65 2d 63 | 6f 64 65 20 22 c3 08 21 | (byte-c|ode "..!|
|00005730| 88 c2 89 11 87 22 20 5b | 78 73 63 68 65 6d 65 2d |....." [|xscheme-|
|00005740| 72 75 6e 6c 69 67 68 74 | 3a 72 75 6e 6e 69 6e 67 |runlight|:running|
|00005750| 20 78 73 63 68 65 6d 65 | 2d 72 75 6e 6e 69 6e 67 | xscheme|-running|
|00005760| 2d 70 20 74 20 78 73 63 | 68 65 6d 65 2d 73 65 74 |-p t xsc|heme-set|
|00005770| 2d 72 75 6e 6c 69 67 68 | 74 5d 20 33 29 29 0a 0a |-runligh|t] 3))..|
|00005780| 28 64 65 66 75 6e 20 78 | 73 63 68 65 6d 65 2d 65 |(defun x|scheme-e|
|00005790| 6e 61 62 6c 65 2d 63 6f | 6e 74 72 6f 6c 2d 67 20 |nable-co|ntrol-g |
|000057a0| 6e 69 6c 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |nil (byt|e-code "|
|000057b0| c1 89 10 87 22 20 5b 78 | 73 63 68 65 6d 65 2d 63 |...." [x|scheme-c|
|000057c0| 6f 6e 74 72 6f 6c 2d 67 | 2d 64 69 73 61 62 6c 65 |ontrol-g|-disable|
|000057d0| 64 2d 70 20 6e 69 6c 5d | 20 32 29 29 0a 0a 28 64 |d-p nil]| 2))..(d|
|000057e0| 65 66 75 6e 20 78 73 63 | 68 65 6d 65 2d 64 69 73 |efun xsc|heme-dis|
|000057f0| 70 6c 61 79 2d 70 72 6f | 63 65 73 73 2d 62 75 66 |play-pro|cess-buf|
|00005800| 66 65 72 20 6e 69 6c 20 | 28 62 79 74 65 2d 63 6f |fer nil |(byte-co|
|00005810| 64 65 20 22 c1 20 86 09 | 00 c2 c3 20 21 18 c4 8b |de ". ..|... !...|
|00005820| 29 87 22 20 5b 77 69 6e | 64 6f 77 20 78 73 63 68 |)." [win|dow xsch|
|00005830| 65 6d 65 2d 70 72 6f 63 | 65 73 73 2d 62 75 66 66 |eme-proc|ess-buff|
|00005840| 65 72 2d 77 69 6e 64 6f | 77 20 64 69 73 70 6c 61 |er-windo|w displa|
|00005850| 79 2d 62 75 66 66 65 72 | 20 78 73 63 68 65 6d 65 |y-buffer| xscheme|
|00005860| 2d 70 72 6f 63 65 73 73 | 2d 62 75 66 66 65 72 20 |-process|-buffer |
|00005870| 28 28 62 79 74 65 2d 63 | 6f 64 65 20 22 c1 08 21 |((byte-c|ode "..!|
|00005880| 88 c2 20 88 c3 20 85 0e | 00 c4 20 87 22 20 5b 77 |.. .. ..|.. ." [w|
|00005890| 69 6e 64 6f 77 20 73 65 | 6c 65 63 74 2d 77 69 6e |indow se|lect-win|
|000058a0| 64 6f 77 20 78 73 63 68 | 65 6d 65 2d 67 6f 74 6f |dow xsch|eme-goto|
|000058b0| 2d 6f 75 74 70 75 74 2d | 70 6f 69 6e 74 20 78 73 |-output-|point xs|
|000058c0| 63 68 65 6d 65 2d 64 65 | 62 75 67 67 65 72 2d 6d |cheme-de|bugger-m|
|000058d0| 6f 64 65 2d 70 20 78 73 | 63 68 65 6d 65 2d 65 6e |ode-p xs|cheme-en|
|000058e0| 74 65 72 2d 69 6e 74 65 | 72 61 63 74 69 6f 6e 2d |ter-inte|raction-|
|000058f0| 6d 6f 64 65 5d 20 35 29 | 29 5d 20 34 29 29 0a 0a |mode] 5)|)] 4))..|
|00005900| 28 64 65 66 75 6e 20 78 | 73 63 68 65 6d 65 2d 75 |(defun x|scheme-u|
|00005910| 6e 73 6f 6c 69 63 69 74 | 65 64 2d 72 65 61 64 2d |nsolicit|ed-read-|
|00005920| 63 68 61 72 20 6e 69 6c | 20 28 62 79 74 65 2d 63 |char nil| (byte-c|
|00005930| 6f 64 65 20 22 c0 87 22 | 20 5b 6e 69 6c 5d 20 31 |ode ".."| [nil] 1|
|00005940| 29 29 0a 0a 28 64 65 66 | 75 6e 20 78 73 63 68 65 |))..(def|un xsche|
|00005950| 6d 65 2d 6d 65 73 73 61 | 67 65 20 28 73 74 72 69 |me-messa|ge (stri|
|00005960| 6e 67 29 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |ng) (byt|e-code "|
|00005970| c1 08 47 21 3f 85 0f 00 | c2 08 c3 c4 08 5c 22 5c |..G!?...|.....\"\|
|00005980| 22 87 22 20 5b 73 74 72 | 69 6e 67 20 7a 65 72 6f |"." [str|ing zero|
|00005990| 70 20 78 73 63 68 65 6d | 65 2d 77 72 69 74 65 2d |p xschem|e-write-|
|000059a0| 6d 65 73 73 61 67 65 2d | 31 20 66 6f 72 6d 61 74 |message-|1 format|
|000059b0| 20 22 3b 25 73 22 5d 20 | 36 29 29 0a 0a 28 64 65 | ";%s"] |6))..(de|
|000059c0| 66 75 6e 20 78 73 63 68 | 65 6d 65 2d 77 72 69 74 |fun xsch|eme-writ|
|000059d0| 65 2d 76 61 6c 75 65 20 | 28 73 74 72 69 6e 67 29 |e-value |(string)|
|000059e0| 20 28 62 79 74 65 2d 63 | 6f 64 65 20 22 c1 08 47 | (byte-c|ode "..G|
|000059f0| 21 83 0e 00 c2 c3 c4 5c | 22 82 15 00 c2 08 c5 c6 |!......\|".......|
|00005a00| 08 5c 22 5c 22 87 22 20 | 5b 73 74 72 69 6e 67 20 |.\"\"." |[string |
|00005a10| 7a 65 72 6f 70 20 78 73 | 63 68 65 6d 65 2d 77 72 |zerop xs|cheme-wr|
|00005a20| 69 74 65 2d 6d 65 73 73 | 61 67 65 2d 31 20 22 28 |ite-mess|age-1 "(|
|00005a30| 6e 6f 20 76 61 6c 75 65 | 29 22 20 22 3b 4e 6f 20 |no value|)" ";No |
|00005a40| 76 61 6c 75 65 22 20 66 | 6f 72 6d 61 74 20 22 3b |value" f|ormat ";|
|00005a50| 56 61 6c 75 65 3a 20 25 | 73 22 5d 20 37 29 29 0a |Value: %|s"] 7)).|
|00005a60| 0a 28 64 65 66 75 6e 20 | 78 73 63 68 65 6d 65 2d |.(defun |xscheme-|
|00005a70| 77 72 69 74 65 2d 6d 65 | 73 73 61 67 65 2d 31 20 |write-me|ssage-1 |
|00005a80| 28 6d 65 73 73 61 67 65 | 2d 73 74 72 69 6e 67 20 |(message|-string |
|00005a90| 6f 75 74 70 75 74 2d 73 | 74 72 69 6e 67 29 20 28 |output-s|tring) (|
|00005aa0| 62 79 74 65 2d 63 6f 64 | 65 20 22 c4 c5 21 18 c6 |byte-cod|e "..!..|
|00005ab0| c7 08 21 21 19 09 3f 86 | 16 00 c8 c9 08 21 09 5c |..!!..?.|.....!.\|
|00005ac0| 22 3f 85 1d 00 ca cb 0a | 5c 22 2a 88 cc cd 21 88 |"?......|\"*...!.|
|00005ad0| ce 0b 21 87 22 20 5b 70 | 72 6f 63 65 73 73 20 77 |..!." [p|rocess w|
|00005ae0| 69 6e 64 6f 77 20 6d 65 | 73 73 61 67 65 2d 73 74 |indow me|ssage-st|
|00005af0| 72 69 6e 67 20 6f 75 74 | 70 75 74 2d 73 74 72 69 |ring out|put-stri|
|00005b00| 6e 67 20 67 65 74 2d 70 | 72 6f 63 65 73 73 20 22 |ng get-p|rocess "|
|00005b10| 73 63 68 65 6d 65 22 20 | 67 65 74 2d 62 75 66 66 |scheme" |get-buff|
|00005b20| 65 72 2d 77 69 6e 64 6f | 77 20 70 72 6f 63 65 73 |er-windo|w proces|
|00005b30| 73 2d 62 75 66 66 65 72 | 20 70 6f 73 2d 76 69 73 |s-buffer| pos-vis|
|00005b40| 69 62 6c 65 2d 69 6e 2d | 77 69 6e 64 6f 77 2d 70 |ible-in-|window-p|
|00005b50| 20 70 72 6f 63 65 73 73 | 2d 6d 61 72 6b 20 6d 65 | process|-mark me|
|00005b60| 73 73 61 67 65 20 22 25 | 73 22 20 78 73 63 68 65 |ssage "%|s" xsche|
|00005b70| 6d 65 2d 67 75 61 72 61 | 6e 74 65 65 2d 6e 65 77 |me-guara|ntee-new|
|00005b80| 6c 69 6e 65 73 20 31 20 | 78 73 63 68 65 6d 65 2d |lines 1 |xscheme-|
|00005b90| 70 72 6f 63 65 73 73 2d | 66 69 6c 74 65 72 2d 6f |process-|filter-o|
|00005ba0| 75 74 70 75 74 5d 20 39 | 29 29 0a 0a 28 64 65 66 |utput] 9|))..(def|
|00005bb0| 75 6e 20 78 73 63 68 65 | 6d 65 2d 73 65 74 2d 70 |un xsche|me-set-p|
|00005bc0| 72 6f 6d 70 74 2d 76 61 | 72 69 61 62 6c 65 20 28 |rompt-va|riable (|
|00005bd0| 73 74 72 69 6e 67 29 20 | 28 62 79 74 65 2d 63 6f |string) |(byte-co|
|00005be0| 64 65 20 22 09 89 10 87 | 22 20 5b 78 73 63 68 65 |de "....|" [xsche|
|00005bf0| 6d 65 2d 70 72 6f 6d 70 | 74 20 73 74 72 69 6e 67 |me-promp|t string|
|00005c00| 5d 20 32 29 29 0a 0a 28 | 64 65 66 75 6e 20 78 73 |] 2))..(|defun xs|
|00005c10| 63 68 65 6d 65 2d 73 65 | 74 2d 70 72 6f 6d 70 74 |cheme-se|t-prompt|
|00005c20| 20 28 73 74 72 69 6e 67 | 29 20 28 62 79 74 65 2d | (string|) (byte-|
|00005c30| 63 6f 64 65 20 22 09 89 | 10 88 c3 c4 21 88 c5 09 |code "..|....!...|
|00005c40| 21 89 12 88 c6 20 87 22 | 20 5b 78 73 63 68 65 6d |!.... ."| [xschem|
|00005c50| 65 2d 70 72 6f 6d 70 74 | 20 73 74 72 69 6e 67 20 |e-prompt| string |
|00005c60| 78 73 63 68 65 6d 65 2d | 6d 6f 64 65 2d 73 74 72 |xscheme-|mode-str|
|00005c70| 69 6e 67 20 78 73 63 68 | 65 6d 65 2d 67 75 61 72 |ing xsch|eme-guar|
|00005c80| 61 6e 74 65 65 2d 6e 65 | 77 6c 69 6e 65 73 20 32 |antee-ne|wlines 2|
|00005c90| 20 78 73 63 68 65 6d 65 | 2d 63 6f 65 72 63 65 2d | xscheme|-coerce-|
|00005ca0| 70 72 6f 6d 70 74 20 78 | 73 63 68 65 6d 65 2d 6d |prompt x|scheme-m|
|00005cb0| 6f 64 65 6c 69 6e 65 2d | 72 65 64 69 73 70 6c 61 |odeline-|redispla|
|00005cc0| 79 5d 20 34 29 29 0a 0a | 28 64 65 66 75 6e 20 78 |y] 4))..|(defun x|
|00005cd0| 73 63 68 65 6d 65 2d 6f | 75 74 70 75 74 2d 67 6f |scheme-o|utput-go|
|00005ce0| 74 6f 20 6e 69 6c 20 28 | 62 79 74 65 2d 63 6f 64 |to nil (|byte-cod|
|00005cf0| 65 20 22 c0 20 88 c1 c2 | 21 87 22 20 5b 78 73 63 |e ". ...|!." [xsc|
|00005d00| 68 65 6d 65 2d 67 6f 74 | 6f 2d 6f 75 74 70 75 74 |heme-got|o-output|
|00005d10| 2d 70 6f 69 6e 74 20 78 | 73 63 68 65 6d 65 2d 67 |-point x|scheme-g|
|00005d20| 75 61 72 61 6e 74 65 65 | 2d 6e 65 77 6c 69 6e 65 |uarantee|-newline|
|00005d30| 73 20 32 5d 20 33 29 29 | 0a 0a 28 64 65 66 75 6e |s 2] 3))|..(defun|
|00005d40| 20 78 73 63 68 65 6d 65 | 2d 63 6f 65 72 63 65 2d | xscheme|-coerce-|
|00005d50| 70 72 6f 6d 70 74 20 28 | 73 74 72 69 6e 67 29 20 |prompt (|string) |
|00005d60| 28 62 79 74 65 2d 63 6f | 64 65 20 22 c5 c6 08 5c |(byte-co|de "...\|
|00005d70| 22 83 2a 00 c7 c8 21 19 | 08 c8 09 4f 08 09 c9 4f |".*...!.|...O...O|
|00005d80| 1a ca 0a 0c 5c 22 1b 0b | 83 5c 22 00 0b 41 82 23 |....\"..|.\"..A.#|
|00005d90| 00 0a 29 29 50 29 82 2b | 00 08 87 22 20 5b 73 74 |..))P).+|..." [st|
|00005da0| 72 69 6e 67 20 65 6e 64 | 20 70 72 6f 6d 70 74 20 |ring end| prompt |
|00005db0| 65 6e 74 72 79 20 78 73 | 63 68 65 6d 65 2d 70 72 |entry xs|cheme-pr|
|00005dc0| 6f 6d 70 74 2d 61 6c 69 | 73 74 20 73 74 72 69 6e |ompt-ali|st strin|
|00005dd0| 67 2d 6d 61 74 63 68 20 | 22 5e 5b 30 2d 39 5d 2b |g-match |"^[0-9]+|
|00005de0| 20 22 20 6d 61 74 63 68 | 2d 65 6e 64 20 30 20 6e | " match|-end 0 n|
|00005df0| 69 6c 20 61 73 73 6f 63 | 5d 20 36 29 29 0a 0a 28 |il assoc|] 6))..(|
|00005e00| 64 65 66 76 61 72 20 78 | 73 63 68 65 6d 65 2d 70 |defvar x|scheme-p|
|00005e10| 72 6f 6d 70 74 2d 61 6c | 69 73 74 20 28 71 75 6f |rompt-al|ist (quo|
|00005e20| 74 65 20 28 28 22 5b 4e | 6f 72 6d 61 6c 20 52 45 |te (("[N|ormal RE|
|00005e30| 50 4c 5d 22 20 2e 20 22 | 5b 45 76 61 6c 75 61 74 |PL]" . "|[Evaluat|
|00005e40| 6f 72 5d 22 29 20 28 22 | 5b 45 72 72 6f 72 20 52 |or]") ("|[Error R|
|00005e50| 45 50 4c 5d 22 20 2e 20 | 22 5b 45 76 61 6c 75 61 |EPL]" . |"[Evalua|
|00005e60| 74 6f 72 5d 22 29 20 28 | 22 5b 42 72 65 61 6b 70 |tor]") (|"[Breakp|
|00005e70| 6f 69 6e 74 20 52 45 50 | 4c 5d 22 20 2e 20 22 5b |oint REP|L]" . "[|
|00005e80| 45 76 61 6c 75 61 74 6f | 72 5d 22 29 20 28 22 5b |Evaluato|r]") ("[|
|00005e90| 44 65 62 75 67 67 65 72 | 20 52 45 50 4c 5d 22 20 |Debugger| REPL]" |
|00005ea0| 2e 20 22 5b 45 76 61 6c | 75 61 74 6f 72 5d 22 29 |. "[Eval|uator]")|
|00005eb0| 20 28 22 5b 56 69 73 69 | 74 69 6e 67 20 65 6e 76 | ("[Visi|ting env|
|00005ec0| 69 72 6f 6e 6d 65 6e 74 | 5d 22 20 2e 20 22 5b 45 |ironment|]" . "[E|
|00005ed0| 76 61 6c 75 61 74 6f 72 | 5d 22 29 20 28 22 5b 45 |valuator|]") ("[E|
|00005ee0| 6e 76 69 72 6f 6e 6d 65 | 6e 74 20 49 6e 73 70 65 |nvironme|nt Inspe|
|00005ef0| 63 74 6f 72 5d 22 20 2e | 20 22 5b 57 68 65 72 65 |ctor]" .| "[Where|
|00005f00| 5d 22 29 29 29 20 22 5c | 0a 41 6e 20 61 6c 69 73 |]"))) "\|.An alis|
|00005f10| 74 20 77 68 69 63 68 20 | 6d 61 70 73 20 74 68 65 |t which |maps the|
|00005f20| 20 53 63 68 65 6d 65 20 | 63 6f 6d 6d 61 6e 64 20 | Scheme |command |
|00005f30| 69 6e 74 65 72 70 72 65 | 74 65 72 20 74 79 70 65 |interpre|ter type|
|00005f40| 20 74 6f 20 61 20 70 72 | 69 6e 74 20 73 74 72 69 | to a pr|int stri|
|00005f50| 6e 67 2e 22 29 0a 0a 28 | 64 65 66 75 6e 20 78 73 |ng.")..(|defun xs|
|00005f60| 63 68 65 6d 65 2d 63 64 | 20 28 64 69 72 65 63 74 |cheme-cd| (direct|
|00005f70| 6f 72 79 2d 73 74 72 69 | 6e 67 29 20 28 62 79 74 |ory-stri|ng) (byt|
|00005f80| 65 2d 63 6f 64 65 20 22 | 8a c1 20 71 88 c2 08 21 |e-code "|.. q...!|
|00005f90| 29 87 22 20 5b 64 69 72 | 65 63 74 6f 72 79 2d 73 |)." [dir|ectory-s|
|00005fa0| 74 72 69 6e 67 20 78 73 | 63 68 65 6d 65 2d 70 72 |tring xs|cheme-pr|
|00005fb0| 6f 63 65 73 73 2d 62 75 | 66 66 65 72 20 63 64 5d |ocess-bu|ffer cd]|
|00005fc0| 20 33 29 29 0a 0a 28 64 | 65 66 75 6e 20 78 73 63 | 3))..(d|efun xsc|
|00005fd0| 68 65 6d 65 2d 70 72 6f | 6d 70 74 2d 66 6f 72 2d |heme-pro|mpt-for-|
|00005fe0| 63 6f 6e 66 69 72 6d 61 | 74 69 6f 6e 20 28 70 72 |confirma|tion (pr|
|00005ff0| 6f 6d 70 74 2d 73 74 72 | 69 6e 67 29 20 28 62 79 |ompt-str|ing) (by|
|00006000| 74 65 2d 63 6f 64 65 20 | 22 c1 c2 08 21 83 0b 00 |te-code |"...!...|
|00006010| c3 82 0c 00 c4 21 87 22 | 20 5b 70 72 6f 6d 70 74 |.....!."| [prompt|
|00006020| 2d 73 74 72 69 6e 67 20 | 78 73 63 68 65 6d 65 2d |-string |xscheme-|
|00006030| 73 65 6e 64 2d 63 68 61 | 72 20 79 2d 6f 72 2d 6e |send-cha|r y-or-n|
|00006040| 2d 70 20 31 32 31 20 31 | 31 30 5d 20 33 29 29 0a |-p 121 1|10] 3)).|
|00006050| 0a 28 64 65 66 75 6e 20 | 78 73 63 68 65 6d 65 2d |.(defun |xscheme-|
|00006060| 70 72 6f 6d 70 74 2d 66 | 6f 72 2d 65 78 70 72 65 |prompt-f|or-expre|
|00006070| 73 73 69 6f 6e 20 28 70 | 72 6f 6d 70 74 2d 73 74 |ssion (p|rompt-st|
|00006080| 72 69 6e 67 29 20 28 62 | 79 74 65 2d 63 6f 64 65 |ring) (b|yte-code|
|00006090| 20 22 c3 c4 08 c1 0a 23 | 21 87 22 20 5b 70 72 6f | ".....#|!." [pro|
|000060a0| 6d 70 74 2d 73 74 72 69 | 6e 67 20 6e 69 6c 20 78 |mpt-stri|ng nil x|
|000060b0| 73 63 68 65 6d 65 2d 70 | 72 6f 6d 70 74 2d 66 6f |scheme-p|rompt-fo|
|000060c0| 72 2d 65 78 70 72 65 73 | 73 69 6f 6e 2d 6d 61 70 |r-expres|sion-map|
|000060d0| 20 78 73 63 68 65 6d 65 | 2d 73 65 6e 64 2d 73 74 | xscheme|-send-st|
|000060e0| 72 69 6e 67 2d 32 20 72 | 65 61 64 2d 66 72 6f 6d |ring-2 r|ead-from|
|000060f0| 2d 6d 69 6e 69 62 75 66 | 66 65 72 5d 20 35 29 29 |-minibuf|fer] 5))|
|00006100| 0a 0a 28 64 65 66 76 61 | 72 20 78 73 63 68 65 6d |..(defva|r xschem|
|00006110| 65 2d 70 72 6f 6d 70 74 | 2d 66 6f 72 2d 65 78 70 |e-prompt|-for-exp|
|00006120| 72 65 73 73 69 6f 6e 2d | 6d 61 70 20 6e 69 6c 29 |ression-|map nil)|
|00006130| 0a 0a 28 69 66 20 28 6e | 6f 74 20 78 73 63 68 65 |..(if (n|ot xsche|
|00006140| 6d 65 2d 70 72 6f 6d 70 | 74 2d 66 6f 72 2d 65 78 |me-promp|t-for-ex|
|00006150| 70 72 65 73 73 69 6f 6e | 2d 6d 61 70 29 20 28 70 |pression|-map) (p|
|00006160| 72 6f 67 6e 20 28 73 65 | 74 71 20 78 73 63 68 65 |rogn (se|tq xsche|
|00006170| 6d 65 2d 70 72 6f 6d 70 | 74 2d 66 6f 72 2d 65 78 |me-promp|t-for-ex|
|00006180| 70 72 65 73 73 69 6f 6e | 2d 6d 61 70 20 28 63 6f |pression|-map (co|
|00006190| 70 79 2d 6b 65 79 6d 61 | 70 20 6d 69 6e 69 62 75 |py-keyma|p minibu|
|000061a0| 66 66 65 72 2d 6c 6f 63 | 61 6c 2d 6d 61 70 29 29 |ffer-loc|al-map))|
|000061b0| 20 28 73 75 62 73 74 69 | 74 75 74 65 2d 6b 65 79 | (substi|tute-key|
|000061c0| 2d 64 65 66 69 6e 69 74 | 69 6f 6e 20 28 71 75 6f |-definit|ion (quo|
|000061d0| 74 65 20 65 78 69 74 2d | 6d 69 6e 69 62 75 66 66 |te exit-|minibuff|
|000061e0| 65 72 29 20 28 71 75 6f | 74 65 20 78 73 63 68 65 |er) (quo|te xsche|
|000061f0| 6d 65 2d 70 72 6f 6d 70 | 74 2d 66 6f 72 2d 65 78 |me-promp|t-for-ex|
|00006200| 70 72 65 73 73 69 6f 6e | 2d 65 78 69 74 29 20 78 |pression|-exit) x|
|00006210| 73 63 68 65 6d 65 2d 70 | 72 6f 6d 70 74 2d 66 6f |scheme-p|rompt-fo|
|00006220| 72 2d 65 78 70 72 65 73 | 73 69 6f 6e 2d 6d 61 70 |r-expres|sion-map|
|00006230| 29 29 29 0a 0a 28 64 65 | 66 75 6e 20 78 73 63 68 |)))..(de|fun xsch|
|00006240| 65 6d 65 2d 70 72 6f 6d | 70 74 2d 66 6f 72 2d 65 |eme-prom|pt-for-e|
|00006250| 78 70 72 65 73 73 69 6f | 6e 2d 65 78 69 74 20 6e |xpressio|n-exit n|
|00006260| 69 6c 20 28 69 6e 74 65 | 72 61 63 74 69 76 65 29 |il (inte|ractive)|
|00006270| 20 28 62 79 74 65 2d 63 | 6f 64 65 20 22 c0 88 c1 | (byte-c|ode "...|
|00006280| 65 64 5c 22 c2 3d 83 10 | 00 c3 20 82 13 00 c4 c5 |ed\".=..|.. .....|
|00006290| 21 87 22 20 5b 6e 69 6c | 20 78 73 63 68 65 6d 65 |!." [nil| xscheme|
|000062a0| 2d 72 65 67 69 6f 6e 2d | 65 78 70 72 65 73 73 69 |-region-|expressi|
|000062b0| 6f 6e 2d 70 20 6f 6e 65 | 20 65 78 69 74 2d 6d 69 |on-p one| exit-mi|
|000062c0| 6e 69 62 75 66 66 65 72 | 20 65 72 72 6f 72 20 22 |nibuffer| error "|
|000062d0| 69 6e 70 75 74 20 6d 75 | 73 74 20 62 65 20 61 20 |input mu|st be a |
|000062e0| 73 69 6e 67 6c 65 2c 20 | 63 6f 6d 70 6c 65 74 65 |single, |complete|
|000062f0| 20 65 78 70 72 65 73 73 | 69 6f 6e 22 5d 20 34 29 | express|ion"] 4)|
|00006300| 29 0a 0a 28 64 65 66 75 | 6e 20 78 73 63 68 65 6d |)..(defu|n xschem|
|00006310| 65 2d 72 65 67 69 6f 6e | 2d 65 78 70 72 65 73 73 |e-region|-express|
|00006320| 69 6f 6e 2d 70 20 28 73 | 74 61 72 74 20 65 6e 64 |ion-p (s|tart end|
|00006330| 29 20 28 62 79 74 65 2d | 63 6f 64 65 20 22 8a c5 |) (byte-|code "..|
|00006340| 20 18 c6 8e c7 09 21 88 | c8 0b 0c 5c 22 1a c9 0a | .....!.|...\"...|
|00006350| 40 21 85 2f 00 ca 0a 38 | 85 2f 00 c8 0b ca 0a 38 |@!./...8|./.....8|
|00006360| 5c 22 1a ca 0a 38 83 2d | 00 cb 82 2e 00 cc 29 29 |\"...8.-|......))|
|00006370| 29 29 29 87 22 20 5b 6f | 6c 64 2d 73 79 6e 74 61 |)))." [o|ld-synta|
|00006380| 78 2d 74 61 62 6c 65 20 | 73 63 68 65 6d 65 2d 6d |x-table |scheme-m|
|00006390| 6f 64 65 2d 73 79 6e 74 | 61 78 2d 74 61 62 6c 65 |ode-synt|ax-table|
|000063a0| 20 73 74 61 74 65 20 73 | 74 61 72 74 20 65 6e 64 | state s|tart end|
|000063b0| 20 73 79 6e 74 61 78 2d | 74 61 62 6c 65 20 28 28 | syntax-|table ((|
|000063c0| 62 79 74 65 2d 63 6f 64 | 65 20 22 c1 08 21 87 22 |byte-cod|e "..!."|
|000063d0| 20 5b 6f 6c 64 2d 73 79 | 6e 74 61 78 2d 74 61 62 | [old-sy|ntax-tab|
|000063e0| 6c 65 20 73 65 74 2d 73 | 79 6e 74 61 78 2d 74 61 |le set-s|yntax-ta|
|000063f0| 62 6c 65 5d 20 32 29 29 | 20 73 65 74 2d 73 79 6e |ble] 2))| set-syn|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.