home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: LaTeX Document
(document/latex).
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| LaTeX Document (document/latex)
| magic
| Supported |
1%
| dexvert
| ScreenCam Video (video/screenCamVideo)
| ext
| Unsupported |
1%
| dexvert
| StarCraft Map (other/starCraftMap)
| ext
| Unsupported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| LaTeX document, ASCII text
| default
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| siegfried
| fmt/281 LaTeX (Subdocument)
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 3b 3b 3b 20 53 63 68 65 | 6d 65 57 45 42 20 2d 2d |;;; Sche|meWEB --|
|00000010| 2d 20 53 69 6d 70 6c 65 | 20 73 75 70 70 6f 72 74 |- Simple| support|
|00000020| 20 66 6f 72 20 6c 69 74 | 65 72 61 74 65 20 70 72 | for lit|erate pr|
|00000030| 6f 67 72 61 6d 6d 69 6e | 67 20 69 6e 20 53 63 68 |ogrammin|g in Sch|
|00000040| 65 6d 65 2e 0a 3b 3b 3b | 20 24 48 65 61 64 65 72 |eme..;;;| $Header|
|00000050| 3a 20 73 77 65 62 2e 73 | 63 6d 2c 76 20 31 2e 31 |: sweb.s|cm,v 1.1|
|00000060| 20 39 30 2f 30 37 2f 31 | 32 20 30 38 3a 35 37 3a | 90/07/1|2 08:57:|
|00000070| 33 38 20 72 61 6d 73 64 | 65 6c 6c 20 45 78 70 20 |38 ramsd|ell Exp |
|00000080| 24 0a 3b 3b 3b 20 4a 6f | 68 6e 20 44 2e 20 52 61 |$.;;; Jo|hn D. Ra|
|00000090| 6d 73 64 65 6c 6c 2e 0a | 3b 3b 3b 0a 3b 3b 3b 20 |msdell..|;;;.;;; |
|000000a0| 43 6f 70 79 72 69 67 68 | 74 20 31 39 39 30 20 62 |Copyrigh|t 1990 b|
|000000b0| 79 20 54 68 65 20 4d 49 | 54 52 45 20 43 6f 72 70 |y The MI|TRE Corp|
|000000c0| 6f 72 61 74 69 6f 6e 0a | 3b 3b 3b 0a 3b 3b 3b 20 |oration.|;;;.;;; |
|000000d0| 54 68 69 73 20 70 72 6f | 67 72 61 6d 20 69 73 20 |This pro|gram is |
|000000e0| 66 72 65 65 20 73 6f 66 | 74 77 61 72 65 3b 20 79 |free sof|tware; y|
|000000f0| 6f 75 20 63 61 6e 20 72 | 65 64 69 73 74 72 69 62 |ou can r|edistrib|
|00000100| 75 74 65 20 69 74 20 61 | 6e 64 2f 6f 72 20 6d 6f |ute it a|nd/or mo|
|00000110| 64 69 66 79 0a 3b 3b 3b | 20 69 74 20 75 6e 64 65 |dify.;;;| it unde|
|00000120| 72 20 74 68 65 20 74 65 | 72 6d 73 20 6f 66 20 74 |r the te|rms of t|
|00000130| 68 65 20 47 4e 55 20 47 | 65 6e 65 72 61 6c 20 50 |he GNU G|eneral P|
|00000140| 75 62 6c 69 63 20 4c 69 | 63 65 6e 73 65 20 61 73 |ublic Li|cense as|
|00000150| 20 70 75 62 6c 69 73 68 | 65 64 20 62 79 0a 3b 3b | publish|ed by.;;|
|00000160| 3b 20 74 68 65 20 46 72 | 65 65 20 53 6f 66 74 77 |; the Fr|ee Softw|
|00000170| 61 72 65 20 46 6f 75 6e | 64 61 74 69 6f 6e 3b 20 |are Foun|dation; |
|00000180| 65 69 74 68 65 72 20 76 | 65 72 73 69 6f 6e 20 31 |either v|ersion 1|
|00000190| 2c 20 6f 72 20 28 61 74 | 20 79 6f 75 72 20 6f 70 |, or (at| your op|
|000001a0| 74 69 6f 6e 29 0a 3b 3b | 3b 20 61 6e 79 20 6c 61 |tion).;;|; any la|
|000001b0| 74 65 72 20 76 65 72 73 | 69 6f 6e 2e 0a 3b 3b 3b |ter vers|ion..;;;|
|000001c0| 0a 3b 3b 3b 20 54 68 69 | 73 20 70 72 6f 67 72 61 |.;;; Thi|s progra|
|000001d0| 6d 20 69 73 20 64 69 73 | 74 72 69 62 75 74 65 64 |m is dis|tributed|
|000001e0| 20 69 6e 20 74 68 65 20 | 68 6f 70 65 20 74 68 61 | in the |hope tha|
|000001f0| 74 20 69 74 20 77 69 6c | 6c 20 62 65 20 75 73 65 |t it wil|l be use|
|00000200| 66 75 6c 2c 0a 3b 3b 3b | 20 62 75 74 20 57 49 54 |ful,.;;;| but WIT|
|00000210| 48 4f 55 54 20 41 4e 59 | 20 57 41 52 52 41 4e 54 |HOUT ANY| WARRANT|
|00000220| 59 3b 20 77 69 74 68 6f | 75 74 20 65 76 65 6e 20 |Y; witho|ut even |
|00000230| 74 68 65 20 69 6d 70 6c | 69 65 64 20 77 61 72 72 |the impl|ied warr|
|00000240| 61 6e 74 79 20 6f 66 0a | 3b 3b 3b 20 4d 45 52 43 |anty of.|;;; MERC|
|00000250| 48 41 4e 54 41 42 49 4c | 49 54 59 20 6f 72 20 46 |HANTABIL|ITY or F|
|00000260| 49 54 4e 45 53 53 20 46 | 4f 52 20 41 20 50 41 52 |ITNESS F|OR A PAR|
|00000270| 54 49 43 55 4c 41 52 20 | 50 55 52 50 4f 53 45 2e |TICULAR |PURPOSE.|
|00000280| 20 20 53 65 65 20 74 68 | 65 0a 3b 3b 3b 20 47 4e | See th|e.;;; GN|
|00000290| 55 20 47 65 6e 65 72 61 | 6c 20 50 75 62 6c 69 63 |U Genera|l Public|
|000002a0| 20 4c 69 63 65 6e 73 65 | 20 66 6f 72 20 6d 6f 72 | License| for mor|
|000002b0| 65 20 64 65 74 61 69 6c | 73 2e 0a 3b 3b 3b 20 0a |e detail|s..;;; .|
|000002c0| 3b 3b 3b 20 46 6f 72 20 | 61 20 63 6f 70 79 20 6f |;;; For |a copy o|
|000002d0| 66 20 74 68 65 20 47 4e | 55 20 47 65 6e 65 72 61 |f the GN|U Genera|
|000002e0| 6c 20 50 75 62 6c 69 63 | 20 4c 69 63 65 6e 73 65 |l Public| License|
|000002f0| 2c 20 77 72 69 74 65 20 | 74 6f 20 74 68 65 20 0a |, write |to the .|
|00000300| 3b 3b 3b 20 46 72 65 65 | 20 53 6f 66 74 77 61 72 |;;; Free| Softwar|
|00000310| 65 20 46 6f 75 6e 64 61 | 74 69 6f 6e 2c 20 49 6e |e Founda|tion, In|
|00000320| 63 2e 2c 20 36 37 35 20 | 4d 61 73 73 20 41 76 65 |c., 675 |Mass Ave|
|00000330| 2c 20 0a 3b 3b 3b 20 43 | 61 6d 62 72 69 64 67 65 |, .;;; C|ambridge|
|00000340| 2c 20 4d 41 20 30 32 31 | 33 39 2c 20 55 53 41 2e |, MA 021|39, USA.|
|00000350| 0a 3b 3b 3b 0a 3b 3b 3b | 20 53 63 68 65 6d 65 57 |.;;;.;;;| SchemeW|
|00000360| 45 42 0a 3b 3b 3b 20 64 | 65 66 69 6e 65 73 20 61 |EB.;;; d|efines a|
|00000370| 20 6e 65 77 20 73 6f 75 | 72 63 65 20 66 69 6c 65 | new sou|rce file|
|00000380| 20 66 6f 72 6d 61 74 20 | 69 6e 20 77 68 69 63 68 | format |in which|
|00000390| 20 73 6f 75 72 63 65 20 | 6c 69 6e 65 73 20 61 72 | source |lines ar|
|000003a0| 65 20 64 69 76 69 64 65 | 64 0a 3b 3b 3b 20 69 6e |e divide|d.;;; in|
|000003b0| 74 6f 20 74 65 78 74 20 | 61 6e 64 20 63 6f 64 65 |to text |and code|
|000003c0| 2e 20 20 4c 69 6e 65 73 | 20 6f 66 20 63 6f 64 65 |. Lines| of code|
|000003d0| 20 73 74 61 72 74 20 77 | 69 74 68 20 61 20 6c 69 | start w|ith a li|
|000003e0| 6e 65 20 62 65 67 69 6e | 6e 69 6e 67 20 77 69 74 |ne begin|ning wit|
|000003f0| 68 0a 3b 3b 3b 20 27 28 | 27 2c 20 61 6e 64 20 63 |h.;;; '(|', and c|
|00000400| 6f 6e 74 69 6e 75 65 20 | 75 6e 74 69 6c 20 74 68 |ontinue |until th|
|00000410| 65 20 6c 69 6e 65 20 74 | 68 61 74 20 63 6f 6e 74 |e line t|hat cont|
|00000420| 61 69 6e 73 20 74 68 65 | 20 6d 61 74 63 68 69 6e |ains the| matchin|
|00000430| 67 20 27 29 27 2e 20 20 | 54 68 65 0a 3b 3b 3b 20 |g ')'. |The.;;; |
|00000440| 74 65 78 74 20 6c 69 6e | 65 73 20 72 65 6d 61 69 |text lin|es remai|
|00000450| 6e 2c 20 61 6e 64 20 74 | 68 65 79 20 61 72 65 20 |n, and t|hey are |
|00000460| 74 72 65 61 74 65 64 20 | 61 73 20 63 6f 6d 6d 65 |treated |as comme|
|00000470| 6e 74 73 2e 20 20 57 68 | 65 6e 20 70 72 6f 64 75 |nts. Wh|en produ|
|00000480| 63 69 6e 67 0a 3b 3b 3b | 20 61 20 64 6f 63 75 6d |cing.;;;| a docum|
|00000490| 65 6e 74 2c 20 62 6f 74 | 68 20 74 68 65 20 74 65 |ent, bot|h the te|
|000004a0| 78 74 20 6c 69 6e 65 73 | 20 61 6e 64 20 74 68 65 |xt lines| and the|
|000004b0| 20 63 6f 64 65 20 6c 69 | 6e 65 73 20 61 72 65 20 | code li|nes are |
|000004c0| 63 6f 70 69 65 64 20 69 | 6e 74 6f 0a 3b 3b 3b 20 |copied i|nto.;;; |
|000004d0| 74 68 65 20 64 6f 63 75 | 6d 65 6e 74 20 73 6f 75 |the docu|ment sou|
|000004e0| 72 63 65 20 66 69 6c 65 | 2c 20 62 75 74 20 74 68 |rce file|, but th|
|000004f0| 65 20 63 6f 64 65 20 6c | 69 6e 65 73 20 61 72 65 |e code l|ines are|
|00000500| 20 73 75 72 72 6f 75 6e | 64 65 64 20 62 79 20 61 | surroun|ded by a|
|00000510| 20 70 61 69 72 0a 3b 3b | 3b 20 6f 66 20 66 6f 72 | pair.;;|; of for|
|00000520| 6d 61 74 74 69 6e 67 20 | 63 6f 6d 6d 61 6e 64 73 |matting |commands|
|00000530| 2e 20 20 54 68 65 20 66 | 6f 72 6d 61 74 74 69 6e |. The f|ormattin|
|00000540| 67 20 63 6f 6d 6d 61 6e | 64 73 20 61 72 65 20 69 |g comman|ds are i|
|00000550| 6e 20 62 65 67 69 6e 2d | 63 6f 64 65 0a 3b 3b 3b |n begin-|code.;;;|
|00000560| 20 61 6e 64 20 65 6e 64 | 2d 63 6f 64 65 2e 20 20 | and end|-code. |
|00000570| 53 63 68 65 6d 65 57 45 | 42 20 69 73 20 63 75 72 |SchemeWE|B is cur|
|00000580| 72 65 6e 74 6c 79 20 73 | 65 74 20 75 70 20 66 6f |rently s|et up fo|
|00000590| 72 20 75 73 65 20 77 69 | 74 68 20 4c 61 54 65 58 |r use wi|th LaTeX|
|000005a0| 2e 0a 3b 3b 3b 0a 3b 3b | 3b 20 45 78 70 6f 72 74 |..;;;.;;|; Export|
|000005b0| 73 3a 20 74 61 6e 67 6c | 65 20 61 6e 64 20 77 65 |s: tangl|e and we|
|000005c0| 61 76 65 2e 0a 3b 3b 3b | 20 28 74 61 6e 67 6c 65 |ave..;;;| (tangle|
|000005d0| 20 73 77 2d 66 69 6c 65 | 20 73 63 68 65 6d 65 2d | sw-file| scheme-|
|000005e0| 66 69 6c 65 29 20 20 4d | 61 6b 65 73 20 73 63 68 |file) M|akes sch|
|000005f0| 65 6d 65 20 66 69 6c 65 | 20 66 72 6f 6d 20 53 63 |eme file| from Sc|
|00000600| 68 65 6d 65 57 45 42 20 | 73 6f 75 72 63 65 2e 0a |hemeWEB |source..|
|00000610| 3b 3b 3b 20 28 77 65 61 | 76 65 20 73 77 2d 66 69 |;;; (wea|ve sw-fi|
|00000620| 6c 65 20 74 65 78 2d 66 | 69 6c 65 29 20 20 20 20 |le tex-f|ile) |
|00000630| 20 20 4d 61 6b 65 73 20 | 4c 61 54 65 58 20 66 69 | Makes |LaTeX fi|
|00000640| 6c 65 20 66 72 6f 6d 20 | 53 63 68 65 6d 65 57 45 |le from |SchemeWE|
|00000650| 42 20 73 6f 75 72 63 65 | 2e 0a 0a 28 64 65 66 69 |B source|...(defi|
|00000660| 6e 65 20 28 74 61 6e 67 | 6c 65 20 73 77 2d 66 69 |ne (tang|le sw-fi|
|00000670| 6c 65 6e 61 6d 65 20 73 | 63 68 65 6d 65 2d 66 69 |lename s|cheme-fi|
|00000680| 6c 65 6e 61 6d 65 29 20 | 3b 20 3d 3e 20 73 63 68 |lename) |; => sch|
|00000690| 65 6d 65 2d 66 69 6c 65 | 6e 61 6d 65 20 6f 72 20 |eme-file|name or |
|000006a0| 66 61 6c 73 65 2e 0a 20 | 20 28 69 66 20 28 63 61 |false.. | (if (ca|
|000006b0| 6c 6c 2d 77 69 74 68 2d | 69 6e 70 75 74 2d 66 69 |ll-with-|input-fi|
|000006c0| 6c 65 20 73 77 2d 66 69 | 6c 65 6e 61 6d 65 0a 20 |le sw-fi|lename. |
|000006d0| 20 20 20 20 20 20 20 28 | 6c 61 6d 62 64 61 20 28 | (|lambda (|
|000006e0| 73 77 2d 70 6f 72 74 29 | 0a 20 20 20 20 20 20 20 |sw-port)|. |
|000006f0| 20 20 20 28 63 61 6c 6c | 2d 77 69 74 68 2d 6f 75 | (call|-with-ou|
|00000700| 74 70 75 74 2d 66 69 6c | 65 20 73 63 68 65 6d 65 |tput-fil|e scheme|
|00000710| 2d 66 69 6c 65 6e 61 6d | 65 0a 20 20 20 20 20 20 |-filenam|e. |
|00000720| 20 20 20 20 20 20 28 6c | 61 6d 62 64 61 20 28 73 | (l|ambda (s|
|00000730| 63 68 65 6d 65 2d 70 6f | 72 74 29 0a 20 20 20 20 |cheme-po|rt). |
|00000740| 20 20 20 20 20 20 20 20 | 20 20 28 74 61 6e 67 6c | | (tangl|
|00000750| 65 2d 70 6f 72 74 20 73 | 77 2d 70 6f 72 74 20 73 |e-port s|w-port s|
|00000760| 63 68 65 6d 65 2d 70 6f | 72 74 29 29 29 29 29 0a |cheme-po|rt))))).|
|00000770| 20 20 20 20 20 20 73 63 | 68 65 6d 65 2d 66 69 6c | sc|heme-fil|
|00000780| 65 6e 61 6d 65 0a 20 20 | 20 20 20 20 28 62 65 67 |ename. | (beg|
|00000790| 69 6e 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |in | |
|000007a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 | | ; |
|000007b0| 50 75 74 20 61 20 63 61 | 6c 6c 20 74 6f 20 65 72 |Put a ca|ll to er|
|000007c0| 72 6f 72 20 68 65 72 65 | 2e 0a 20 20 20 20 20 20 |ror here|.. |
|000007d0| 20 20 28 64 69 73 70 6c | 61 79 20 22 74 61 6e 67 | (displ|ay "tang|
|000007e0| 6c 65 20 66 61 69 6c 65 | 64 2e 22 29 20 28 6e 65 |le faile|d.") (ne|
|000007f0| 77 6c 69 6e 65 29 0a 20 | 20 20 20 20 20 20 20 23 |wline). | #|
|00000800| 66 29 29 29 0a 0a 28 64 | 65 66 69 6e 65 20 28 77 |f)))..(d|efine (w|
|00000810| 65 61 76 65 20 73 77 2d | 66 69 6c 65 6e 61 6d 65 |eave sw-|filename|
|00000820| 20 74 65 78 2d 66 69 6c | 65 6e 61 6d 65 29 20 3b | tex-fil|ename) ;|
|00000830| 20 3d 3e 20 74 65 78 2d | 66 69 6c 65 6e 61 6d 65 | => tex-|filename|
|00000840| 20 6f 72 20 66 61 6c 73 | 65 2e 0a 20 20 28 69 66 | or fals|e.. (if|
|00000850| 20 28 63 61 6c 6c 2d 77 | 69 74 68 2d 69 6e 70 75 | (call-w|ith-inpu|
|00000860| 74 2d 66 69 6c 65 20 73 | 77 2d 66 69 6c 65 6e 61 |t-file s|w-filena|
|00000870| 6d 65 0a 20 20 20 20 20 | 20 20 20 28 6c 61 6d 62 |me. | (lamb|
|00000880| 64 61 20 28 73 77 2d 70 | 6f 72 74 29 0a 20 20 20 |da (sw-p|ort). |
|00000890| 20 20 20 20 20 20 20 28 | 63 61 6c 6c 2d 77 69 74 | (|call-wit|
|000008a0| 68 2d 6f 75 74 70 75 74 | 2d 66 69 6c 65 20 74 65 |h-output|-file te|
|000008b0| 78 2d 66 69 6c 65 6e 61 | 6d 65 0a 20 20 20 20 20 |x-filena|me. |
|000008c0| 20 20 20 20 20 20 20 28 | 6c 61 6d 62 64 61 20 28 | (|lambda (|
|000008d0| 74 65 78 2d 70 6f 72 74 | 29 0a 20 20 20 20 20 20 |tex-port|). |
|000008e0| 20 20 20 20 20 20 20 20 | 28 77 65 61 76 65 2d 70 | |(weave-p|
|000008f0| 6f 72 74 20 73 77 2d 70 | 6f 72 74 20 74 65 78 2d |ort sw-p|ort tex-|
|00000900| 70 6f 72 74 29 29 29 29 | 29 0a 20 20 20 20 20 20 |port))))|). |
|00000910| 74 65 78 2d 66 69 6c 65 | 6e 61 6d 65 0a 20 20 20 |tex-file|name. |
|00000920| 20 20 20 28 62 65 67 69 | 6e 20 20 20 20 20 20 20 | (begi|n |
|00000930| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000940| 20 20 20 20 20 3b 20 50 | 75 74 20 61 20 63 61 6c | ; P|ut a cal|
|00000950| 6c 20 74 6f 20 65 72 72 | 6f 72 20 68 65 72 65 2e |l to err|or here.|
|00000960| 0a 20 20 20 20 20 20 20 | 20 28 64 69 73 70 6c 61 |. | (displa|
|00000970| 79 20 22 77 65 61 76 65 | 20 66 61 69 6c 65 64 2e |y "weave| failed.|
|00000980| 22 29 20 28 6e 65 77 6c | 69 6e 65 29 0a 20 20 20 |") (newl|ine). |
|00000990| 20 20 20 20 20 23 66 29 | 29 29 0a 0a 28 64 65 66 | #f)|))..(def|
|000009a0| 69 6e 65 20 28 74 61 6e | 67 6c 65 2d 70 6f 72 74 |ine (tan|gle-port|
|000009b0| 20 73 77 2d 70 6f 72 74 | 20 73 63 68 65 6d 65 2d | sw-port| scheme-|
|000009c0| 70 6f 72 74 29 20 3b 20 | 3d 3e 20 66 61 6c 73 65 |port) ; |=> false|
|000009d0| 20 6f 6e 20 66 61 69 6c | 75 72 65 2e 0a 20 20 28 | on fail|ure.. (|
|000009e0| 6c 65 74 72 65 63 0a 20 | 20 20 20 20 20 28 28 74 |letrec. | ((t|
|000009f0| 65 78 2d 6d 6f 64 65 2d | 61 6e 64 2d 73 61 77 2d |ex-mode-|and-saw-|
|00000a00| 6e 65 77 6c 69 6e 65 20 | 20 20 20 20 20 20 20 3b |newline | ;|
|00000a10| 20 44 65 63 69 64 65 20 | 69 66 20 69 6e 70 75 74 | Decide |if input|
|00000a20| 20 69 73 20 63 6f 64 65 | 0a 20 20 20 20 20 20 20 | is code|. |
|00000a30| 20 28 6c 61 6d 62 64 61 | 20 28 29 0a 20 20 20 20 | (lambda| (). |
|00000a40| 20 20 20 20 20 20 28 6c | 65 74 20 28 28 63 68 20 | (l|et ((ch |
|00000a50| 28 70 65 65 6b 2d 63 68 | 61 72 20 73 77 2d 70 6f |(peek-ch|ar sw-po|
|00000a60| 72 74 29 29 29 20 3b 20 | 6f 72 20 74 65 78 20 73 |rt))) ; |or tex s|
|00000a70| 6f 75 72 63 65 2e 0a 20 | 20 20 20 20 20 20 20 20 |ource.. | |
|00000a80| 20 20 20 28 63 6f 6e 64 | 20 28 28 65 6f 66 2d 6f | (cond| ((eof-o|
|00000a90| 62 6a 65 63 74 3f 20 63 | 68 29 20 23 74 29 0a 20 |bject? c|h) #t). |
|00000aa0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000ab0| 20 28 28 63 68 61 72 3d | 3f 20 63 68 20 23 5c 28 | ((char=|? ch #\(|
|00000ac0| 29 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|00000ad0| 20 20 20 20 20 28 73 63 | 68 65 6d 65 2d 6d 6f 64 | (sc|heme-mod|
|00000ae0| 65 29 29 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |e)). | |
|00000af0| 20 20 20 20 20 20 28 65 | 6c 73 65 20 28 74 65 78 | (e|lse (tex|
|00000b00| 2d 6d 6f 64 65 2d 77 69 | 74 68 69 6e 2d 61 2d 6c |-mode-wi|thin-a-l|
|00000b10| 69 6e 65 29 29 29 29 29 | 29 0a 20 20 20 20 20 20 |ine)))))|). |
|00000b20| 20 28 74 65 78 2d 6d 6f | 64 65 2d 77 69 74 68 69 | (tex-mo|de-withi|
|00000b30| 6e 2d 61 2d 6c 69 6e 65 | 20 20 20 20 20 20 20 20 |n-a-line| |
|00000b40| 20 20 3b 20 53 74 72 69 | 70 20 63 6f 6d 6d 65 6e | ; Stri|p commen|
|00000b50| 74 73 2e 0a 20 20 20 20 | 20 20 20 20 28 6c 61 6d |ts.. | (lam|
|00000b60| 62 64 61 20 28 29 0a 20 | 20 20 20 20 20 20 20 20 |bda (). | |
|00000b70| 20 28 6c 65 74 20 28 28 | 63 68 20 28 72 65 61 64 | (let ((|ch (read|
|00000b80| 2d 63 68 61 72 20 73 77 | 2d 70 6f 72 74 29 29 29 |-char sw|-port)))|
|00000b90| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 28 63 6f |. | (co|
|00000ba0| 6e 64 20 28 28 65 6f 66 | 2d 6f 62 6a 65 63 74 3f |nd ((eof|-object?|
|00000bb0| 20 63 68 29 20 23 74 29 | 0a 20 20 20 20 20 20 20 | ch) #t)|. |
|00000bc0| 20 20 20 20 20 20 20 20 | 20 20 20 28 28 63 68 61 | | ((cha|
|00000bd0| 72 3d 3f 20 63 68 20 23 | 5c 6e 65 77 6c 69 6e 65 |r=? ch #|\newline|
|00000be0| 29 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|00000bf0| 20 20 20 20 20 28 74 65 | 78 2d 6d 6f 64 65 2d 61 | (te|x-mode-a|
|00000c00| 6e 64 2d 73 61 77 2d 6e | 65 77 6c 69 6e 65 29 29 |nd-saw-n|ewline))|
|00000c10| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00000c20| 20 20 20 28 65 6c 73 65 | 20 28 74 65 78 2d 6d 6f | (else| (tex-mo|
|00000c30| 64 65 2d 77 69 74 68 69 | 6e 2d 61 2d 6c 69 6e 65 |de-withi|n-a-line|
|00000c40| 29 29 29 29 29 29 0a 20 | 20 20 20 20 20 20 28 73 |)))))). | (s|
|00000c50| 63 68 65 6d 65 2d 6d 6f | 64 65 20 20 20 20 20 20 |cheme-mo|de |
|00000c60| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3b | | ;|
|00000c70| 20 54 68 69 73 20 72 6f | 75 74 69 6e 65 20 73 68 | This ro|utine sh|
|00000c80| 6f 75 6c 64 20 75 73 65 | 0a 20 20 20 20 20 20 20 |ould use|. |
|00000c90| 20 28 6c 61 6d 62 64 61 | 20 28 29 0a 20 20 20 20 | (lambda| (). |
|00000ca0| 20 20 20 20 20 20 28 77 | 72 69 74 65 20 28 72 65 | (w|rite (re|
|00000cb0| 61 64 20 73 77 2d 70 6f | 72 74 29 20 73 63 68 65 |ad sw-po|rt) sche|
|00000cc0| 6d 65 2d 70 6f 72 74 29 | 0a 20 20 20 20 20 20 20 |me-port)|. |
|00000cd0| 20 20 20 28 6e 65 77 6c | 69 6e 65 20 73 63 68 65 | (newl|ine sche|
|00000ce0| 6d 65 2d 70 6f 72 74 29 | 20 20 20 20 20 20 20 20 |me-port)| |
|00000cf0| 20 3b 20 72 65 61 64 2d | 72 65 66 75 73 69 6e 67 | ; read-|refusing|
|00000d00| 2d 65 6f 66 20 69 66 0a | 20 20 20 20 20 20 20 20 |-eof if.| |
|00000d10| 20 20 28 74 65 78 2d 6d | 6f 64 65 2d 77 69 74 68 | (tex-m|ode-with|
|00000d20| 69 6e 2d 61 2d 6c 69 6e | 65 29 29 29 29 20 20 20 |in-a-lin|e)))) |
|00000d30| 3b 20 61 76 61 69 6c 61 | 62 6c 65 2e 0a 20 20 20 |; availa|ble.. |
|00000d40| 20 28 74 65 78 2d 6d 6f | 64 65 2d 61 6e 64 2d 73 | (tex-mo|de-and-s|
|00000d50| 61 77 2d 6e 65 77 6c 69 | 6e 65 29 29 29 0a 0a 28 |aw-newli|ne)))..(|
|00000d60| 64 65 66 69 6e 65 20 62 | 65 67 69 6e 2d 63 6f 64 |define b|egin-cod|
|00000d70| 65 20 22 5c 5c 62 65 67 | 69 6e 7b 61 73 74 79 70 |e "\\beg|in{astyp|
|00000d80| 65 64 7d 22 29 20 20 3b | 20 54 65 58 20 63 6f 64 |ed}") ;| TeX cod|
|00000d90| 65 20 73 75 72 72 6f 75 | 6e 64 69 6e 67 20 0a 28 |e surrou|nding .(|
|00000da0| 64 65 66 69 6e 65 20 65 | 6e 64 2d 63 6f 64 65 20 |define e|nd-code |
|00000db0| 22 5c 5c 65 6e 64 7b 61 | 73 74 79 70 65 64 7d 22 |"\\end{a|styped}"|
|00000dc0| 29 20 20 20 20 20 20 3b | 20 63 6f 64 65 20 61 6e |) ;| code an|
|00000dd0| 64 20 63 6f 6d 6d 65 6e | 74 73 0a 28 64 65 66 69 |d commen|ts.(defi|
|00000de0| 6e 65 20 62 65 67 69 6e | 2d 63 6f 6d 6d 65 6e 74 |ne begin|-comment|
|00000df0| 20 22 5c 5c 6e 6f 74 61 | 73 74 79 70 65 64 7b 22 | "\\nota|styped{"|
|00000e00| 29 20 20 3b 20 77 69 74 | 68 69 6e 20 63 6f 64 65 |) ; wit|hin code|
|00000e10| 2e 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.. | |
|00000e20| 0a 28 64 65 66 69 6e 65 | 20 28 77 65 61 76 65 2d |.(define| (weave-|
|00000e30| 70 6f 72 74 20 73 77 2d | 70 6f 72 74 20 74 65 78 |port sw-|port tex|
|00000e40| 2d 70 6f 72 74 29 0a 20 | 20 28 6c 65 74 20 28 28 |-port). | (let ((|
|00000e50| 73 70 61 63 65 73 20 30 | 29 20 20 20 20 20 20 20 |spaces 0|) |
|00000e60| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3b | | ;|
|00000e70| 20 55 73 65 64 20 69 6e | 20 67 65 74 2d 63 68 61 | Used in| get-cha|
|00000e80| 72 20 61 6e 64 20 67 65 | 74 2d 6c 69 6e 65 20 64 |r and ge|t-line d|
|00000e90| 75 72 69 6e 67 0a 20 20 | 20 20 20 20 20 20 28 68 |uring. | (h|
|00000ea0| 70 6f 73 20 30 29 20 20 | 20 20 20 20 20 20 20 20 |pos 0) | |
|00000eb0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 | | ; |
|00000ec0| 74 68 65 20 65 78 70 61 | 6e 73 69 6f 6e 20 6f 66 |the expa|nsion of|
|00000ed0| 20 74 61 62 73 20 69 6e | 74 6f 20 73 70 61 63 65 | tabs in|to space|
|00000ee0| 73 2e 0a 20 20 20 20 20 | 20 20 20 28 63 68 2d 62 |s.. | (ch-b|
|00000ef0| 75 66 20 23 66 29 29 20 | 20 20 20 20 20 20 20 20 |uf #f)) | |
|00000f00| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 4f 6e 65 | | ; One|
|00000f10| 20 63 68 61 72 20 62 75 | 66 66 65 72 2e 0a 20 20 | char bu|ffer.. |
|00000f20| 20 20 28 6c 65 74 72 65 | 63 20 20 20 20 20 20 20 | (letre|c |
|00000f30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000f40| 20 20 20 20 20 20 0a 20 | 20 20 20 20 20 20 20 28 | . | (|
|00000f50| 28 67 65 74 2d 63 68 61 | 72 0a 20 20 20 20 20 20 |(get-cha|r. |
|00000f60| 20 20 20 20 28 6c 61 6d | 62 64 61 20 28 29 20 20 | (lam|bda () |
|00000f70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000f80| 20 20 3b 20 47 65 74 2d | 63 68 61 72 20 65 78 70 | ; Get-|char exp|
|00000f90| 61 6e 64 73 20 74 61 62 | 73 20 69 6e 74 6f 20 73 |ands tab|s into s|
|00000fa0| 70 61 63 65 73 2c 0a 20 | 20 20 20 20 20 20 20 20 |paces,. | |
|00000fb0| 20 20 20 28 63 6f 6e 64 | 20 28 63 68 2d 62 75 66 | (cond| (ch-buf|
|00000fc0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3b | | ;|
|00000fd0| 20 61 6e 64 20 69 6d 70 | 6c 65 6d 65 6e 74 73 20 | and imp|lements |
|00000fe0| 61 20 6f 6e 65 20 63 68 | 61 72 61 63 74 65 72 0a |a one ch|aracter.|
|00000ff0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001000| 20 20 20 28 6c 65 74 20 | 28 28 63 68 20 63 68 2d | (let |((ch ch-|
|00001010| 62 75 66 29 29 20 20 20 | 3b 20 62 75 66 66 65 72 |buf)) |; buffer|
|00001020| 2e 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.. | |
|00001030| 20 20 20 20 20 20 20 28 | 73 65 74 21 20 63 68 2d | (|set! ch-|
|00001040| 62 75 66 20 23 66 29 0a | 20 20 20 20 20 20 20 20 |buf #f).| |
|00001050| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 63 68 29 | | ch)|
|00001060| 29 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|00001070| 20 20 20 20 28 28 3e 20 | 73 70 61 63 65 73 20 30 | ((> |spaces 0|
|00001080| 29 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|00001090| 20 20 20 20 20 28 73 65 | 74 21 20 73 70 61 63 65 | (se|t! space|
|000010a0| 73 20 28 2d 20 73 70 61 | 63 65 73 20 31 29 29 0a |s (- spa|ces 1)).|
|000010b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000010c0| 20 20 20 23 5c 73 70 61 | 63 65 29 0a 20 20 20 20 | #\spa|ce). |
|000010d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 28 65 | | (e|
|000010e0| 6c 73 65 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |lse. | |
|000010f0| 20 20 20 20 20 20 20 28 | 6c 65 74 20 28 28 63 68 | (|let ((ch|
|00001100| 20 28 72 65 61 64 2d 63 | 68 61 72 20 73 77 2d 70 | (read-c|har sw-p|
|00001110| 6f 72 74 29 29 29 0a 20 | 20 20 20 20 20 20 20 20 |ort))). | |
|00001120| 20 20 20 20 20 20 20 20 | 20 20 20 20 28 63 6f 6e | | (con|
|00001130| 64 20 28 28 65 6f 66 2d | 6f 62 6a 65 63 74 3f 20 |d ((eof-|object? |
|00001140| 63 68 29 20 63 68 29 0a | 20 20 20 20 20 20 20 20 |ch) ch).| |
|00001150| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001160| 20 20 20 28 28 63 68 61 | 72 3d 3f 20 63 68 20 23 | ((cha|r=? ch #|
|00001170| 5c 74 61 62 29 20 3b 20 | 45 78 70 61 6e 64 20 74 |\tab) ; |Expand t|
|00001180| 61 62 73 20 68 65 72 65 | 2e 0a 20 20 20 20 20 20 |abs here|.. |
|00001190| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000011a0| 20 20 20 20 20 20 28 73 | 65 74 21 20 73 70 61 63 | (s|et! spac|
|000011b0| 65 73 20 28 2d 20 38 20 | 28 6d 6f 64 75 6c 6f 20 |es (- 8 |(modulo |
|000011c0| 68 70 6f 73 20 38 29 29 | 29 0a 20 20 20 20 20 20 |hpos 8))|). |
|000011d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000011e0| 20 20 20 20 20 20 28 73 | 65 74 21 20 68 70 6f 73 | (s|et! hpos|
|000011f0| 20 28 2b 20 68 70 6f 73 | 20 73 70 61 63 65 73 29 | (+ hpos| spaces)|
|00001200| 29 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|00001210| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 28 67 | | (g|
|00001220| 65 74 2d 63 68 61 72 29 | 29 0a 20 20 20 20 20 20 |et-char)|). |
|00001230| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001240| 20 20 20 20 20 28 28 63 | 68 61 72 3d 3f 20 63 68 | ((c|har=? ch|
|00001250| 20 23 5c 6e 65 77 6c 69 | 6e 65 29 0a 20 20 20 20 | #\newli|ne). |
|00001260| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001270| 20 20 20 20 20 20 20 20 | 28 73 65 74 21 20 68 70 | |(set! hp|
|00001280| 6f 73 20 30 29 0a 20 20 | 20 20 20 20 20 20 20 20 |os 0). | |
|00001290| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000012a0| 20 20 63 68 29 0a 20 20 | 20 20 20 20 20 20 20 20 | ch). | |
|000012b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000012c0| 20 28 65 6c 73 65 0a 20 | 20 20 20 20 20 20 20 20 | (else. | |
|000012d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000012e0| 20 20 20 28 73 65 74 21 | 20 68 70 6f 73 20 28 2b | (set!| hpos (+|
|000012f0| 20 68 70 6f 73 20 31 29 | 29 0a 20 20 20 20 20 20 | hpos 1)|). |
|00001300| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001310| 20 20 20 20 20 20 63 68 | 29 29 29 29 29 29 29 0a | ch|))))))).|
|00001320| 20 20 20 20 20 20 20 20 | 20 28 75 6e 67 65 74 2d | | (unget-|
|00001330| 63 68 61 72 0a 20 20 20 | 20 20 20 20 20 20 20 28 |char. | (|
|00001340| 6c 61 6d 62 64 61 20 28 | 63 68 29 0a 20 20 20 20 |lambda (|ch). |
|00001350| 20 20 20 20 20 20 20 20 | 28 73 65 74 21 20 63 68 | |(set! ch|
|00001360| 2d 62 75 66 20 63 68 29 | 29 29 0a 20 20 20 20 20 |-buf ch)|)). |
|00001370| 20 20 20 20 28 63 6f 70 | 79 2d 6c 69 6e 65 2d 73 | (cop|y-line-s|
|00001380| 61 77 2d 65 6f 66 0a 20 | 20 20 20 20 20 20 20 20 |aw-eof. | |
|00001390| 20 28 6c 61 6d 62 64 61 | 20 28 29 0a 20 20 20 20 | (lambda| (). |
|000013a0| 20 20 20 20 20 20 20 20 | 28 6c 65 74 20 28 28 63 | |(let ((c|
|000013b0| 68 20 28 67 65 74 2d 63 | 68 61 72 29 29 29 0a 20 |h (get-c|har))). |
|000013c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 28 63 6f | | (co|
|000013d0| 6e 64 20 28 28 65 6f 66 | 2d 6f 62 6a 65 63 74 3f |nd ((eof|-object?|
|000013e0| 20 63 68 29 20 23 74 29 | 0a 20 20 20 20 20 20 20 | ch) #t)|. |
|000013f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 28 28 63 | | ((c|
|00001400| 68 61 72 3d 3f 20 63 68 | 20 23 5c 6e 65 77 6c 69 |har=? ch| #\newli|
|00001410| 6e 65 29 20 23 66 29 0a | 20 20 20 20 20 20 20 20 |ne) #f).| |
|00001420| 20 20 20 20 20 20 20 20 | 20 20 20 20 28 65 6c 73 | | (els|
|00001430| 65 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |e. | |
|00001440| 20 20 20 20 20 20 20 28 | 77 72 69 74 65 2d 63 68 | (|write-ch|
|00001450| 61 72 20 63 68 20 74 65 | 78 2d 70 6f 72 74 29 0a |ar ch te|x-port).|
|00001460| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001470| 20 20 20 20 20 28 63 6f | 70 79 2d 6c 69 6e 65 2d | (co|py-line-|
|00001480| 73 61 77 2d 65 6f 66 29 | 29 29 29 29 29 0a 20 20 |saw-eof)|))))). |
|00001490| 20 20 20 20 20 20 20 28 | 74 65 78 2d 77 72 69 74 | (|tex-writ|
|000014a0| 65 2d 63 68 61 72 0a 20 | 20 20 20 20 20 20 20 20 |e-char. | |
|000014b0| 20 28 6c 61 6d 62 64 61 | 20 28 63 68 29 20 20 20 | (lambda| (ch) |
|000014c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3b | | ;|
|000014d0| 20 57 72 69 74 65 20 74 | 6f 20 54 65 58 20 66 69 | Write t|o TeX fi|
|000014e0| 6c 65 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 28 |le. | (|
|000014f0| 69 66 20 28 6f 72 20 28 | 63 68 61 72 3d 3f 20 63 |if (or (|char=? c|
|00001500| 68 20 23 5c 5c 29 20 20 | 20 20 20 3b 20 65 73 63 |h #\\) | ; esc|
|00001510| 61 70 69 6e 67 20 54 65 | 58 27 73 20 73 70 65 63 |aping Te|X's spec|
|00001520| 69 61 6c 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |ial. | |
|00001530| 20 20 20 20 20 20 20 20 | 28 63 68 61 72 3d 3f 20 | |(char=? |
|00001540| 63 68 20 23 5c 7b 29 20 | 20 20 20 20 3b 20 63 68 |ch #\{) | ; ch|
|00001550| 61 72 61 63 74 65 72 73 | 2e 0a 20 20 20 20 20 20 |aracters|.. |
|00001560| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 28 63 | | (c|
|00001570| 68 61 72 3d 3f 20 63 68 | 20 23 5c 7d 29 0a 20 20 |har=? ch| #\}). |
|00001580| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001590| 20 20 28 63 68 61 72 3d | 3f 20 63 68 20 23 5c 24 | (char=|? ch #\$|
|000015a0| 29 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|000015b0| 20 20 20 20 20 20 28 63 | 68 61 72 3d 3f 20 63 68 | (c|har=? ch|
|000015c0| 20 23 5c 26 29 0a 20 20 | 20 20 20 20 20 20 20 20 | #\&). | |
|000015d0| 20 20 20 20 20 20 20 20 | 20 20 28 63 68 61 72 3d | | (char=|
|000015e0| 3f 20 63 68 20 23 5c 23 | 29 0a 20 20 20 20 20 20 |? ch #\#|). |
|000015f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 28 63 | | (c|
|00001600| 68 61 72 3d 3f 20 63 68 | 20 23 5c 5e 29 0a 20 20 |har=? ch| #\^). |
|00001610| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001620| 20 20 28 63 68 61 72 3d | 3f 20 63 68 20 23 5c 5f | (char=|? ch #\_|
|00001630| 29 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|00001640| 20 20 20 20 20 20 28 63 | 68 61 72 3d 3f 20 63 68 | (c|har=? ch|
|00001650| 20 23 5c 25 29 0a 20 20 | 20 20 20 20 20 20 20 20 | #\%). | |
|00001660| 20 20 20 20 20 20 20 20 | 20 20 28 63 68 61 72 3d | | (char=|
|00001670| 3f 20 63 68 20 23 5c 7e | 29 29 0a 20 20 20 20 20 |? ch #\~|)). |
|00001680| 20 20 20 20 20 20 20 20 | 20 20 20 28 62 65 67 69 | | (begi|
|00001690| 6e 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |n. | |
|000016a0| 20 20 20 20 28 64 69 73 | 70 6c 61 79 20 22 5c 5c | (dis|play "\\|
|000016b0| 76 65 72 62 2d 22 20 74 | 65 78 2d 70 6f 72 74 29 |verb-" t|ex-port)|
|000016c0| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|000016d0| 20 20 20 28 77 72 69 74 | 65 2d 63 68 61 72 20 63 | (writ|e-char c|
|000016e0| 68 20 74 65 78 2d 70 6f | 72 74 29 0a 20 20 20 20 |h tex-po|rt). |
|000016f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 28 77 | | (w|
|00001700| 72 69 74 65 2d 63 68 61 | 72 20 23 5c 2d 20 74 65 |rite-cha|r #\- te|
|00001710| 78 2d 70 6f 72 74 29 29 | 0a 20 20 20 20 20 20 20 |x-port))|. |
|00001720| 20 20 20 20 20 20 20 20 | 20 28 77 72 69 74 65 2d | | (write-|
|00001730| 63 68 61 72 20 63 68 20 | 74 65 78 2d 70 6f 72 74 |char ch |tex-port|
|00001740| 29 29 29 29 0a 0a 20 20 | 20 20 20 20 20 20 20 3b |)))).. | ;|
|00001750| 3b 20 54 65 58 20 6d 6f | 64 65 0a 20 20 20 20 20 |; TeX mo|de. |
|00001760| 20 20 20 20 28 74 65 78 | 2d 6d 6f 64 65 2d 61 6e | (tex|-mode-an|
|00001770| 64 2d 73 61 77 2d 6e 65 | 77 6c 69 6e 65 20 20 20 |d-saw-ne|wline |
|00001780| 20 20 20 3b 20 53 74 61 | 74 65 20 61 74 20 77 68 | ; Sta|te at wh|
|00001790| 69 63 68 20 69 74 20 69 | 73 20 0a 20 20 20 20 20 |ich it i|s . |
|000017a0| 20 20 20 20 20 28 6c 61 | 6d 62 64 61 20 28 29 20 | (la|mbda () |
|000017b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000017c0| 20 20 20 3b 20 64 65 63 | 69 64 65 64 20 77 68 65 | ; dec|ided whe|
|000017d0| 74 68 65 72 20 74 6f 20 | 67 6f 20 0a 20 20 20 20 |ther to |go . |
|000017e0| 20 20 20 20 20 20 20 20 | 28 6c 65 74 20 28 28 63 | |(let ((c|
|000017f0| 68 20 28 67 65 74 2d 63 | 68 61 72 29 29 29 20 20 |h (get-c|har))) |
|00001800| 20 20 20 20 3b 20 69 6e | 74 6f 20 53 63 68 65 6d | ; in|to Schem|
|00001810| 65 20 63 6f 64 65 20 6d | 6f 64 65 0a 20 20 20 20 |e code m|ode. |
|00001820| 20 20 20 20 20 20 20 20 | 20 20 28 63 6f 6e 64 20 | | (cond |
|00001830| 28 28 65 6f 66 2d 6f 62 | 6a 65 63 74 3f 20 63 68 |((eof-ob|ject? ch|
|00001840| 29 20 23 74 29 20 3b 20 | 6f 72 20 73 74 61 79 20 |) #t) ; |or stay |
|00001850| 69 6e 20 54 65 58 20 6d | 6f 64 65 2e 0a 20 20 20 |in TeX m|ode.. |
|00001860| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001870| 20 28 28 63 68 61 72 3d | 3f 20 63 68 20 23 5c 28 | ((char=|? ch #\(|
|00001880| 29 20 28 73 63 68 65 6d | 65 2d 6d 6f 64 65 29 29 |) (schem|e-mode))|
|00001890| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|000018a0| 20 20 20 20 20 28 65 6c | 73 65 20 20 20 20 20 20 | (el|se |
|000018b0| 20 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | . | |
|000018c0| 20 20 20 20 20 20 20 3b | 3b 20 53 74 72 69 70 20 | ;|; Strip |
|000018d0| 6c 65 61 64 69 6e 67 20 | 73 65 6d 69 63 6f 6c 6f |leading |semicolo|
|000018e0| 6e 20 66 6f 72 20 74 68 | 6f 73 65 20 77 68 6f 0a |n for th|ose who.|
|000018f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001900| 20 20 20 20 20 3b 3b 20 | 77 61 6e 74 20 74 6f 20 | ;; |want to |
|00001910| 75 73 65 20 72 65 67 75 | 6c 61 72 20 6c 6f 61 64 |use regu|lar load|
|00001920| 2e 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.. | |
|00001930| 20 20 20 20 20 20 20 28 | 69 66 20 28 6e 6f 74 20 | (|if (not |
|00001940| 28 63 68 61 72 3d 3f 20 | 63 68 20 23 5c 3b 29 29 |(char=? |ch #\;))|
|00001950| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00001960| 20 20 20 20 20 20 20 20 | 20 20 28 77 72 69 74 65 | | (write|
|00001970| 2d 63 68 61 72 20 63 68 | 20 74 65 78 2d 70 6f 72 |-char ch| tex-por|
|00001980| 74 29 29 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |t)). | |
|00001990| 20 20 20 20 20 20 20 20 | 20 28 69 66 20 28 63 68 | | (if (ch|
|000019a0| 61 72 3d 3f 20 63 68 20 | 23 5c 6e 65 77 6c 69 6e |ar=? ch |#\newlin|
|000019b0| 65 29 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |e). | |
|000019c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 28 74 65 78 | | (tex|
|000019d0| 2d 6d 6f 64 65 2d 61 6e | 64 2d 73 61 77 2d 6e 65 |-mode-an|d-saw-ne|
|000019e0| 77 6c 69 6e 65 29 0a 20 | 20 20 20 20 20 20 20 20 |wline). | |
|000019f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001a00| 28 74 65 78 2d 6d 6f 64 | 65 2d 77 69 74 68 69 6e |(tex-mod|e-within|
|00001a10| 2d 61 2d 6c 69 6e 65 29 | 29 29 29 29 29 29 0a 20 |-a-line)|)))))). |
|00001a20| 20 20 20 20 20 20 20 20 | 28 74 65 78 2d 6d 6f 64 | |(tex-mod|
|00001a30| 65 2d 77 69 74 68 69 6e | 2d 61 2d 6c 69 6e 65 20 |e-within|-a-line |
|00001a40| 20 20 20 20 20 20 20 3b | 20 43 6f 70 79 20 6f 75 | ;| Copy ou|
|00001a50| 74 20 54 65 58 20 6c 69 | 6e 65 2e 0a 20 20 20 20 |t TeX li|ne.. |
|00001a60| 20 20 20 20 20 20 28 6c | 61 6d 62 64 61 20 28 29 | (l|ambda ()|
|00001a70| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 28 6c 65 |. | (le|
|00001a80| 74 20 28 28 73 61 77 2d | 65 6f 66 20 28 63 6f 70 |t ((saw-|eof (cop|
|00001a90| 79 2d 6c 69 6e 65 2d 73 | 61 77 2d 65 6f 66 29 29 |y-line-s|aw-eof))|
|00001aa0| 29 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|00001ab0| 28 6e 65 77 6c 69 6e 65 | 20 74 65 78 2d 70 6f 72 |(newline| tex-por|
|00001ac0| 74 29 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |t). | |
|00001ad0| 20 28 6f 72 20 73 61 77 | 2d 65 6f 66 20 28 74 65 | (or saw|-eof (te|
|00001ae0| 78 2d 6d 6f 64 65 2d 61 | 6e 64 2d 73 61 77 2d 6e |x-mode-a|nd-saw-n|
|00001af0| 65 77 6c 69 6e 65 29 29 | 29 29 29 0a 0a 20 20 20 |ewline))|))).. |
|00001b00| 20 20 20 20 20 20 3b 3b | 20 53 63 68 65 6d 65 20 | ;;| Scheme |
|00001b10| 6d 6f 64 65 0a 20 20 20 | 20 20 20 20 20 20 28 73 |mode. | (s|
|00001b20| 63 68 65 6d 65 2d 6d 6f | 64 65 20 20 20 20 20 20 |cheme-mo|de |
|00001b30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 3b 20 43 | | ; C|
|00001b40| 68 61 6e 67 65 20 66 72 | 6f 6d 20 54 65 58 20 6d |hange fr|om TeX m|
|00001b50| 6f 64 65 20 0a 20 20 20 | 20 20 20 20 20 20 20 28 |ode . | (|
|00001b60| 6c 61 6d 62 64 61 20 28 | 29 20 20 20 20 20 20 20 |lambda (|) |
|00001b70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 3b 20 74 | | ; t|
|00001b80| 6f 20 73 63 68 65 6d 65 | 20 63 6f 64 65 20 6d 6f |o scheme| code mo|
|00001b90| 64 65 2e 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |de.. | |
|00001ba0| 28 64 69 73 70 6c 61 79 | 20 62 65 67 69 6e 2d 63 |(display| begin-c|
|00001bb0| 6f 64 65 20 74 65 78 2d | 70 6f 72 74 29 0a 20 20 |ode tex-|port). |
|00001bc0| 20 20 20 20 20 20 20 20 | 20 20 28 6e 65 77 6c 69 | | (newli|
|00001bd0| 6e 65 20 74 65 78 2d 70 | 6f 72 74 29 0a 20 20 20 |ne tex-p|ort). |
|00001be0| 20 20 20 20 20 20 20 20 | 20 28 77 72 69 74 65 2d | | (write-|
|00001bf0| 63 68 61 72 20 23 5c 28 | 20 74 65 78 2d 70 6f 72 |char #\(| tex-por|
|00001c00| 74 29 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 28 |t). | (|
|00001c10| 73 65 78 70 72 20 31 29 | 29 29 0a 20 20 20 20 20 |sexpr 1)|)). |
|00001c20| 20 20 20 20 28 73 65 78 | 70 72 20 20 20 20 20 20 | (sex|pr |
|00001c30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001c40| 20 20 20 3b 20 70 61 72 | 65 6e 73 20 69 73 20 75 | ; par|ens is u|
|00001c50| 73 65 64 20 74 6f 20 77 | 61 74 63 68 0a 20 20 20 |sed to w|atch. |
|00001c60| 20 20 20 20 20 20 20 28 | 6c 61 6d 62 64 61 20 28 | (|lambda (|
|00001c70| 70 61 72 65 6e 73 29 20 | 20 20 20 20 20 20 20 20 |parens) | |
|00001c80| 20 20 20 20 20 3b 20 66 | 6f 72 20 74 68 65 20 63 | ; f|or the c|
|00001c90| 6c 6f 73 69 6e 67 20 70 | 61 72 65 6e 0a 20 20 20 |losing p|aren. |
|00001ca0| 20 20 20 20 20 20 20 20 | 20 28 6c 65 74 20 28 28 | | (let ((|
|00001cb0| 63 68 20 28 67 65 74 2d | 63 68 61 72 29 29 29 20 |ch (get-|char))) |
|00001cc0| 20 20 20 20 20 3b 20 75 | 73 65 64 20 74 6f 20 64 | ; u|sed to d|
|00001cd0| 65 74 65 63 74 20 74 68 | 65 20 65 6e 64 0a 20 20 |etect th|e end. |
|00001ce0| 20 20 20 20 20 20 20 20 | 20 20 20 20 28 63 6f 6e | | (con|
|00001cf0| 64 20 28 28 65 6f 66 2d | 6f 62 6a 65 63 74 3f 20 |d ((eof-|object? |
|00001d00| 63 68 29 20 23 66 29 20 | 3b 20 6f 66 20 73 63 68 |ch) #f) |; of sch|
|00001d10| 65 6d 65 20 63 6f 64 65 | 20 6d 6f 64 65 2e 0a 20 |eme code| mode.. |
|00001d20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001d30| 20 20 20 28 28 63 68 61 | 72 3d 3f 20 63 68 20 23 | ((cha|r=? ch #|
|00001d40| 5c 3b 29 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |\;). | |
|00001d50| 20 20 20 20 20 20 20 20 | 20 28 63 6f 70 79 2d 63 | | (copy-c|
|00001d60| 6f 6d 6d 65 6e 74 2d 77 | 69 74 68 69 6e 2d 73 65 |omment-w|ithin-se|
|00001d70| 78 70 72 20 70 61 72 65 | 6e 73 29 29 0a 20 20 20 |xpr pare|ns)). |
|00001d80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001d90| 20 28 65 6c 73 65 20 20 | 20 20 20 20 20 0a 20 20 | (else | . |
|00001da0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001db0| 20 20 20 28 73 65 78 70 | 72 2d 77 72 69 74 65 2d | (sexp|r-write-|
|00001dc0| 63 68 61 72 20 70 61 72 | 65 6e 73 20 63 68 29 29 |char par|ens ch))|
|00001dd0| 29 29 29 29 0a 20 20 20 | 20 20 20 20 20 20 28 63 |)))). | (c|
|00001de0| 6f 70 79 2d 63 6f 6d 6d | 65 6e 74 2d 77 69 74 68 |opy-comm|ent-with|
|00001df0| 69 6e 2d 73 65 78 70 72 | 0a 20 20 20 20 20 20 20 |in-sexpr|. |
|00001e00| 20 20 20 28 6c 61 6d 62 | 64 61 20 28 70 61 72 65 | (lamb|da (pare|
|00001e10| 6e 73 29 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |ns) | |
|00001e20| 20 3b 20 48 61 6e 64 6c | 65 20 63 6f 6d 6d 65 6e | ; Handl|e commen|
|00001e30| 74 2e 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 28 |t.. | (|
|00001e40| 64 69 73 70 6c 61 79 20 | 62 65 67 69 6e 2d 63 6f |display |begin-co|
|00001e50| 6d 6d 65 6e 74 20 74 65 | 78 2d 70 6f 72 74 29 0a |mment te|x-port).|
|00001e60| 20 20 20 20 20 20 20 20 | 20 20 20 20 28 77 72 69 | | (wri|
|00001e70| 74 65 2d 63 68 61 72 20 | 23 5c 3b 20 74 65 78 2d |te-char |#\; tex-|
|00001e80| 70 6f 72 74 29 0a 20 20 | 20 20 20 20 20 20 20 20 |port). | |
|00001e90| 20 20 28 6c 65 74 20 28 | 28 73 61 77 2d 65 6f 66 | (let (|(saw-eof|
|00001ea0| 20 28 63 6f 70 79 2d 6c | 69 6e 65 2d 73 61 77 2d | (copy-l|ine-saw-|
|00001eb0| 65 6f 66 29 29 29 0a 20 | 20 20 20 20 20 20 20 20 |eof))). | |
|00001ec0| 20 20 20 20 20 28 77 72 | 69 74 65 2d 63 68 61 72 | (wr|ite-char|
|00001ed0| 20 23 5c 7d 20 74 65 78 | 2d 70 6f 72 74 29 0a 20 | #\} tex|-port). |
|00001ee0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 28 6e 65 | | (ne|
|00001ef0| 77 6c 69 6e 65 20 74 65 | 78 2d 70 6f 72 74 29 0a |wline te|x-port).|
|00001f00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 28 61 | | (a|
|00001f10| 6e 64 20 28 6e 6f 74 20 | 73 61 77 2d 65 6f 66 29 |nd (not |saw-eof)|
|00001f20| 20 28 73 65 78 70 72 20 | 70 61 72 65 6e 73 29 29 | (sexpr |parens))|
|00001f30| 29 29 29 0a 20 20 20 20 | 20 20 20 20 20 28 73 65 |))). | (se|
|00001f40| 78 70 72 2d 77 72 69 74 | 65 2d 63 68 61 72 0a 20 |xpr-writ|e-char. |
|00001f50| 20 20 20 20 20 20 20 20 | 20 28 6c 61 6d 62 64 61 | | (lambda|
|00001f60| 20 28 70 61 72 65 6e 73 | 20 63 68 29 20 20 20 20 | (parens| ch) |
|00001f70| 20 20 20 20 20 20 20 3b | 20 57 72 69 74 65 20 61 | ;| Write a|
|00001f80| 20 63 68 61 72 20 61 6e | 64 0a 20 20 20 20 20 20 | char an|d. |
|00001f90| 20 20 20 20 20 20 28 74 | 65 78 2d 77 72 69 74 65 | (t|ex-write|
|00001fa0| 2d 63 68 61 72 20 63 68 | 29 20 20 20 20 20 20 20 |-char ch|) |
|00001fb0| 20 20 3b 20 66 69 67 75 | 72 65 20 6f 75 74 20 77 | ; figu|re out w|
|00001fc0| 68 61 74 20 74 6f 0a 20 | 20 20 20 20 20 20 20 20 |hat to. | |
|00001fd0| 20 20 20 28 63 6f 6e 64 | 20 28 28 63 68 61 72 3d | (cond| ((char=|
|00001fe0| 3f 20 63 68 20 23 5c 28 | 29 20 20 20 20 20 20 3b |? ch #\(|) ;|
|00001ff0| 20 64 6f 20 6e 65 78 74 | 2e 0a 20 20 20 20 20 20 | do next|.. |
|00002000| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 28 73 65 | | (se|
|00002010| 78 70 72 20 28 2b 20 70 | 61 72 65 6e 73 20 31 29 |xpr (+ p|arens 1)|
|00002020| 29 29 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |)). | |
|00002030| 20 20 20 20 20 28 28 63 | 68 61 72 3d 3f 20 63 68 | ((c|har=? ch|
|00002040| 20 23 5c 29 29 0a 20 20 | 20 20 20 20 20 20 20 20 | #\)). | |
|00002050| 20 20 20 20 20 20 20 20 | 20 28 69 66 20 28 3d 20 | | (if (= |
|00002060| 31 20 70 61 72 65 6e 73 | 29 20 20 20 20 20 3b 20 |1 parens|) ; |
|00002070| 44 6f 6e 65 20 72 65 61 | 64 69 6e 67 20 73 65 78 |Done rea|ding sex|
|00002080| 70 72 2e 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |pr.. | |
|00002090| 20 20 20 20 20 20 20 20 | 20 20 20 28 73 63 68 65 | | (sche|
|000020a0| 6d 65 2d 6d 6f 64 65 2d | 61 66 74 65 72 2d 73 65 |me-mode-|after-se|
|000020b0| 78 70 72 29 0a 20 20 20 | 20 20 20 20 20 20 20 20 |xpr). | |
|000020c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 28 73 65 78 | | (sex|
|000020d0| 70 72 20 28 2d 20 70 61 | 72 65 6e 73 20 31 29 29 |pr (- pa|rens 1))|
|000020e0| 29 29 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |)). | |
|000020f0| 20 20 20 20 20 28 28 63 | 68 61 72 3d 3f 20 63 68 | ((c|har=? ch|
|00002100| 20 23 5c 22 29 0a 20 20 | 20 20 20 20 20 20 20 20 | #\"). | |
|00002110| 20 20 20 20 20 20 20 20 | 20 28 63 6f 70 79 2d 6f | | (copy-o|
|00002120| 75 74 2d 73 74 72 69 6e | 67 20 70 61 72 65 6e 73 |ut-strin|g parens|
|00002130| 29 29 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |)). | |
|00002140| 20 20 20 20 20 28 28 63 | 68 61 72 3d 3f 20 63 68 | ((c|har=? ch|
|00002150| 20 23 5c 23 29 20 20 20 | 20 20 20 3b 20 57 6f 72 | #\#) | ; Wor|
|00002160| 72 79 69 6e 67 20 61 62 | 6f 75 74 20 23 5c 28 20 |rying ab|out #\( |
|00002170| 61 6e 64 20 23 5c 29 2e | 0a 20 20 20 20 20 20 20 |and #\).|. |
|00002180| 20 20 20 20 20 20 20 20 | 20 20 20 20 28 6d 61 79 | | (may|
|00002190| 62 65 2d 63 68 61 72 2d | 73 79 6e 74 61 78 20 70 |be-char-|syntax p|
|000021a0| 61 72 65 6e 73 29 29 0a | 20 20 20 20 20 20 20 20 |arens)).| |
|000021b0| 20 20 20 20 20 20 20 20 | 20 20 28 65 6c 73 65 20 | | (else |
|000021c0| 28 73 65 78 70 72 20 70 | 61 72 65 6e 73 29 29 29 |(sexpr p|arens)))|
|000021d0| 29 29 0a 20 20 20 20 20 | 20 20 20 20 28 63 6f 70 |)). | (cop|
|000021e0| 79 2d 6f 75 74 2d 73 74 | 72 69 6e 67 0a 20 20 20 |y-out-st|ring. |
|000021f0| 20 20 20 20 20 20 20 28 | 6c 61 6d 62 64 61 20 28 | (|lambda (|
|00002200| 70 61 72 65 6e 73 29 0a | 20 20 20 20 20 20 20 20 |parens).| |
|00002210| 20 20 20 20 28 6c 65 74 | 20 28 28 63 68 20 28 67 | (let| ((ch (g|
|00002220| 65 74 2d 63 68 61 72 29 | 29 29 0a 20 20 20 20 20 |et-char)|)). |
|00002230| 20 20 20 20 20 20 20 20 | 20 28 61 6e 64 20 28 6e | | (and (n|
|00002240| 6f 74 20 28 65 6f 66 2d | 6f 62 6a 65 63 74 3f 20 |ot (eof-|object? |
|00002250| 63 68 29 29 0a 20 20 20 | 20 20 20 20 20 20 20 20 |ch)). | |
|00002260| 20 20 20 20 20 20 20 20 | 28 62 65 67 69 6e 0a 20 | |(begin. |
|00002270| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002280| 20 20 20 20 28 74 65 78 | 2d 77 72 69 74 65 2d 63 | (tex|-write-c|
|00002290| 68 61 72 20 63 68 29 0a | 20 20 20 20 20 20 20 20 |har ch).| |
|000022a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 28 63 6f | | (co|
|000022b0| 6e 64 20 28 28 63 68 61 | 72 3d 3f 20 63 68 20 23 |nd ((cha|r=? ch #|
|000022c0| 5c 5c 29 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |\\). | |
|000022d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000022e0| 28 6c 65 74 20 28 28 63 | 68 20 28 67 65 74 2d 63 |(let ((c|h (get-c|
|000022f0| 68 61 72 29 29 29 0a 20 | 20 20 20 20 20 20 20 20 |har))). | |
|00002300| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002310| 20 20 20 20 20 28 61 6e | 64 20 28 6e 6f 74 20 28 | (an|d (not (|
|00002320| 65 6f 66 2d 6f 62 6a 65 | 63 74 3f 20 63 68 29 29 |eof-obje|ct? ch))|
|00002330| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00002340| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002350| 20 20 20 20 28 62 65 67 | 69 6e 0a 20 20 20 20 20 | (beg|in. |
|00002360| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002370| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002380| 28 74 65 78 2d 77 72 69 | 74 65 2d 63 68 61 72 20 |(tex-wri|te-char |
|00002390| 63 68 29 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |ch). | |
|000023a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000023b0| 20 20 20 20 20 20 20 20 | 20 28 63 6f 70 79 2d 6f | | (copy-o|
|000023c0| 75 74 2d 73 74 72 69 6e | 67 20 70 61 72 65 6e 73 |ut-strin|g parens|
|000023d0| 29 29 29 29 29 0a 20 20 | 20 20 20 20 20 20 20 20 |))))). | |
|000023e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000023f0| 20 28 28 63 68 61 72 3d | 3f 20 63 68 20 23 5c 22 | ((char=|? ch #\"|
|00002400| 29 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|00002410| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 28 73 | | (s|
|00002420| 65 78 70 72 20 70 61 72 | 65 6e 73 29 29 0a 20 20 |expr par|ens)). |
|00002430| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002440| 20 20 20 20 20 20 20 20 | 20 28 65 6c 73 65 20 28 | | (else (|
|00002450| 63 6f 70 79 2d 6f 75 74 | 2d 73 74 72 69 6e 67 20 |copy-out|-string |
|00002460| 70 61 72 65 6e 73 29 29 | 29 29 29 29 29 29 0a 20 |parens))|)))))). |
|00002470| 20 20 20 20 20 20 20 20 | 28 6d 61 79 62 65 2d 63 | |(maybe-c|
|00002480| 68 61 72 2d 73 79 6e 74 | 61 78 20 20 20 20 20 20 |har-synt|ax |
|00002490| 20 20 20 20 20 20 20 3b | 20 57 68 61 74 20 6f 75 | ;| What ou|
|000024a0| 74 20 66 6f 72 0a 20 20 | 20 20 20 20 20 20 20 20 |t for. | |
|000024b0| 28 6c 61 6d 62 64 61 20 | 28 70 61 72 65 6e 73 29 |(lambda |(parens)|
|000024c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 | | ; |
|000024d0| 23 5c 28 20 61 6e 64 20 | 23 5c 29 2e 0a 20 20 20 |#\( and |#\).. |
|000024e0| 20 20 20 20 20 20 20 20 | 20 28 6c 65 74 20 28 28 | | (let ((|
|000024f0| 63 68 20 28 67 65 74 2d | 63 68 61 72 29 29 29 0a |ch (get-|char))).|
|00002500| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 28 63 | | (c|
|00002510| 6f 6e 64 20 28 28 65 6f | 66 2d 6f 62 6a 65 63 74 |ond ((eo|f-object|
|00002520| 3f 20 63 68 29 20 23 66 | 29 0a 20 20 20 20 20 20 |? ch) #f|). |
|00002530| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 28 28 | | ((|
|00002540| 63 68 61 72 3d 3f 20 63 | 68 20 23 5c 5c 29 0a 20 |char=? c|h #\\). |
|00002550| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002560| 20 20 20 20 28 74 65 78 | 2d 77 72 69 74 65 2d 63 | (tex|-write-c|
|00002570| 68 61 72 20 63 68 29 0a | 20 20 20 20 20 20 20 20 |har ch).| |
|00002580| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 28 6c 65 | | (le|
|00002590| 74 20 28 28 63 68 20 28 | 67 65 74 2d 63 68 61 72 |t ((ch (|get-char|
|000025a0| 29 29 29 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |))). | |
|000025b0| 20 20 20 20 20 20 20 20 | 20 20 20 28 61 6e 64 20 | | (and |
|000025c0| 28 6e 6f 74 20 28 65 6f | 66 2d 6f 62 6a 65 63 74 |(not (eo|f-object|
|000025d0| 3f 20 63 68 29 29 0a 20 | 20 20 20 20 20 20 20 20 |? ch)). | |
|000025e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000025f0| 20 20 20 28 62 65 67 69 | 6e 0a 20 20 20 20 20 20 | (begi|n. |
|00002600| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002610| 20 20 20 20 20 20 20 20 | 28 74 65 78 2d 77 72 69 | |(tex-wri|
|00002620| 74 65 2d 63 68 61 72 20 | 63 68 29 0a 20 20 20 20 |te-char |ch). |
|00002630| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002640| 20 20 20 20 20 20 20 20 | 20 20 28 73 65 78 70 72 | | (sexpr|
|00002650| 20 70 61 72 65 6e 73 29 | 29 29 29 29 0a 20 20 20 | parens)|)))). |
|00002660| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002670| 20 28 65 6c 73 65 0a 20 | 20 20 20 20 20 20 20 20 | (else. | |
|00002680| 20 20 20 20 20 20 20 20 | 20 20 20 20 28 75 6e 67 | | (ung|
|00002690| 65 74 2d 63 68 61 72 20 | 63 68 29 0a 20 20 20 20 |et-char |ch). |
|000026a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000026b0| 20 28 73 65 78 70 72 20 | 70 61 72 65 6e 73 29 29 | (sexpr |parens))|
|000026c0| 29 29 29 29 0a 20 20 20 | 20 20 20 20 20 20 28 73 |)))). | (s|
|000026d0| 63 68 65 6d 65 2d 6d 6f | 64 65 2d 61 66 74 65 72 |cheme-mo|de-after|
|000026e0| 2d 73 65 78 70 72 0a 20 | 20 20 20 20 20 20 20 20 |-sexpr. | |
|000026f0| 20 28 6c 61 6d 62 64 61 | 20 28 29 0a 20 20 20 20 | (lambda| (). |
|00002700| 20 20 20 20 20 20 20 20 | 28 6c 65 74 20 28 28 63 | |(let ((c|
|00002710| 68 20 28 67 65 74 2d 63 | 68 61 72 29 29 29 0a 20 |h (get-c|har))). |
|00002720| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 28 63 6f | | (co|
|00002730| 6e 64 20 28 28 65 6f 66 | 2d 6f 62 6a 65 63 74 3f |nd ((eof|-object?|
|00002740| 20 63 68 29 20 23 74 29 | 0a 20 20 20 20 20 20 20 | ch) #t)|. |
|00002750| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 28 28 63 | | ((c|
|00002760| 68 61 72 3d 3f 20 63 68 | 20 23 5c 3b 29 0a 20 20 |har=? ch| #\;). |
|00002770| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002780| 20 20 20 28 63 6f 70 79 | 2d 63 6f 6d 6d 65 6e 74 | (copy|-comment|
|00002790| 2d 61 66 74 65 72 2d 73 | 65 78 70 72 29 29 0a 20 |-after-s|expr)). |
|000027a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000027b0| 20 20 20 28 28 63 68 61 | 72 3d 3f 20 63 68 20 23 | ((cha|r=? ch #|
|000027c0| 5c 6e 65 77 6c 69 6e 65 | 29 0a 20 20 20 20 20 20 |\newline|). |
|000027d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 28 | | (|
|000027e0| 6e 65 77 6c 69 6e 65 20 | 74 65 78 2d 70 6f 72 74 |newline |tex-port|
|000027f0| 29 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|00002800| 20 20 20 20 20 20 20 28 | 73 63 68 65 6d 65 2d 6d | (|scheme-m|
|00002810| 6f 64 65 2d 6d 65 72 67 | 65 29 29 0a 20 20 20 20 |ode-merg|e)). |
|00002820| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002830| 28 28 63 68 61 72 3d 3f | 20 63 68 20 23 5c 73 70 |((char=?| ch #\sp|
|00002840| 61 63 65 29 0a 20 20 20 | 20 20 20 20 20 20 20 20 |ace). | |
|00002850| 20 20 20 20 20 20 20 20 | 20 20 28 74 65 78 2d 77 | | (tex-w|
|00002860| 72 69 74 65 2d 63 68 61 | 72 20 63 68 29 0a 20 20 |rite-cha|r ch). |
|00002870| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002880| 20 20 20 28 73 63 68 65 | 6d 65 2d 6d 6f 64 65 2d | (sche|me-mode-|
|00002890| 61 66 74 65 72 2d 73 65 | 78 70 72 29 29 0a 20 20 |after-se|xpr)). |
|000028a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000028b0| 20 20 28 65 6c 73 65 20 | 23 66 29 29 29 29 29 20 | (else |#f))))) |
|000028c0| 20 20 20 20 20 20 3b 20 | 43 61 6c 6c 20 74 6f 20 | ; |Call to |
|000028d0| 65 72 72 6f 72 20 73 68 | 6f 75 6c 64 20 67 6f 20 |error sh|ould go |
|000028e0| 68 65 72 65 2e 0a 20 20 | 20 20 20 20 20 20 20 28 |here.. | (|
|000028f0| 63 6f 70 79 2d 63 6f 6d | 6d 65 6e 74 2d 61 66 74 |copy-com|ment-aft|
|00002900| 65 72 2d 73 65 78 70 72 | 0a 20 20 20 20 20 20 20 |er-sexpr|. |
|00002910| 20 20 20 28 6c 61 6d 62 | 64 61 20 28 29 20 20 20 | (lamb|da () |
|00002920| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002930| 20 3b 20 48 61 6e 64 6c | 65 20 74 72 61 69 6c 69 | ; Handl|e traili|
|00002940| 6e 67 20 63 6f 6d 6d 65 | 6e 74 2e 0a 20 20 20 20 |ng comme|nt.. |
|00002950| 20 20 20 20 20 20 20 20 | 28 64 69 73 70 6c 61 79 | |(display|
|00002960| 20 62 65 67 69 6e 2d 63 | 6f 6d 6d 65 6e 74 20 74 | begin-c|omment t|
|00002970| 65 78 2d 70 6f 72 74 29 | 0a 20 20 20 20 20 20 20 |ex-port)|. |
|00002980| 20 20 20 20 20 28 77 72 | 69 74 65 2d 63 68 61 72 | (wr|ite-char|
|00002990| 20 23 5c 3b 20 74 65 78 | 2d 70 6f 72 74 29 0a 20 | #\; tex|-port). |
|000029a0| 20 20 20 20 20 20 20 20 | 20 20 20 28 6c 65 74 20 | | (let |
|000029b0| 28 28 73 61 77 2d 65 6f | 66 20 28 63 6f 70 79 2d |((saw-eo|f (copy-|
|000029c0| 6c 69 6e 65 2d 73 61 77 | 2d 65 6f 66 29 29 29 0a |line-saw|-eof))).|
|000029d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 28 77 | | (w|
|000029e0| 72 69 74 65 2d 63 68 61 | 72 20 23 5c 7d 20 74 65 |rite-cha|r #\} te|
|000029f0| 78 2d 70 6f 72 74 29 0a | 20 20 20 20 20 20 20 20 |x-port).| |
|00002a00| 20 20 20 20 20 20 28 6e | 65 77 6c 69 6e 65 20 74 | (n|ewline t|
|00002a10| 65 78 2d 70 6f 72 74 29 | 0a 20 20 20 20 20 20 20 |ex-port)|. |
|00002a20| 20 20 20 20 20 20 20 28 | 61 6e 64 20 28 6e 6f 74 | (|and (not|
|00002a30| 20 73 61 77 2d 65 6f 66 | 29 20 28 73 63 68 65 6d | saw-eof|) (schem|
|00002a40| 65 2d 6d 6f 64 65 2d 6d | 65 72 67 65 29 29 29 29 |e-mode-m|erge))))|
|00002a50| 29 0a 20 20 20 20 20 20 | 20 20 20 28 73 63 68 65 |). | (sche|
|00002a60| 6d 65 2d 6d 6f 64 65 2d | 6d 65 72 67 65 20 20 20 |me-mode-|merge |
|00002a70| 20 20 20 20 20 20 20 20 | 20 20 3b 20 44 6f 6e 27 | | ; Don'|
|00002a80| 74 20 63 68 61 6e 67 65 | 20 6d 6f 64 65 20 69 66 |t change| mode if|
|00002a90| 20 6e 65 78 74 0a 20 20 | 20 20 20 20 20 20 20 20 | next. | |
|00002aa0| 28 6c 61 6d 62 64 61 20 | 28 29 20 20 20 20 20 20 |(lambda |() |
|00002ab0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 | | ; |
|00002ac0| 6c 69 6e 65 20 69 73 20 | 63 6f 64 65 2e 0a 20 20 |line is |code.. |
|00002ad0| 20 20 20 20 20 20 20 20 | 20 20 28 6c 65 74 20 28 | | (let (|
|00002ae0| 28 63 68 20 28 67 65 74 | 2d 63 68 61 72 29 29 29 |(ch (get|-char)))|
|00002af0| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 28 |. | (|
|00002b00| 63 6f 6e 64 20 28 28 65 | 6f 66 2d 6f 62 6a 65 63 |cond ((e|of-objec|
|00002b10| 74 3f 20 63 68 29 20 23 | 74 29 0a 20 20 20 20 20 |t? ch) #|t). |
|00002b20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 28 | | (|
|00002b30| 28 63 68 61 72 3d 3f 20 | 63 68 20 23 5c 28 29 20 |(char=? |ch #\() |
|00002b40| 20 20 20 3b 20 53 74 61 | 79 20 69 6e 20 73 63 68 | ; Sta|y in sch|
|00002b50| 65 6d 65 20 6d 6f 64 65 | 2e 0a 20 20 20 20 20 20 |eme mode|.. |
|00002b60| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 28 | | (|
|00002b70| 77 72 69 74 65 2d 63 68 | 61 72 20 63 68 20 74 65 |write-ch|ar ch te|
|00002b80| 78 2d 70 6f 72 74 29 0a | 20 20 20 20 20 20 20 20 |x-port).| |
|00002b90| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 28 73 65 | | (se|
|00002ba0| 78 70 72 20 31 29 29 0a | 20 20 20 20 20 20 20 20 |xpr 1)).| |
|00002bb0| 20 20 20 20 20 20 20 20 | 20 20 20 20 28 65 6c 73 | | (els|
|00002bc0| 65 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |e | |
|00002bd0| 3b 20 45 6e 74 65 72 20 | 74 65 78 20 6d 6f 64 65 |; Enter |tex mode|
|00002be0| 2e 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.. | |
|00002bf0| 20 20 20 20 20 20 20 28 | 64 69 73 70 6c 61 79 20 | (|display |
|00002c00| 65 6e 64 2d 63 6f 64 65 | 20 74 65 78 2d 70 6f 72 |end-code| tex-por|
|00002c10| 74 29 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |t). | |
|00002c20| 20 20 20 20 20 20 20 20 | 28 6e 65 77 6c 69 6e 65 | |(newline|
|00002c30| 20 74 65 78 2d 70 6f 72 | 74 29 0a 20 20 20 20 20 | tex-por|t). |
|00002c40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002c50| 28 77 72 69 74 65 2d 63 | 68 61 72 20 63 68 20 74 |(write-c|har ch t|
|00002c60| 65 78 2d 70 6f 72 74 29 | 0a 20 20 20 20 20 20 20 |ex-port)|. |
|00002c70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 28 69 | | (i|
|00002c80| 66 20 28 63 68 61 72 3d | 3f 20 63 68 20 23 5c 6e |f (char=|? ch #\n|
|00002c90| 65 77 6c 69 6e 65 29 0a | 20 20 20 20 20 20 20 20 |ewline).| |
|00002ca0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002cb0| 20 28 74 65 78 2d 6d 6f | 64 65 2d 61 6e 64 2d 73 | (tex-mo|de-and-s|
|00002cc0| 61 77 2d 6e 65 77 6c 69 | 6e 65 29 0a 20 20 20 20 |aw-newli|ne). |
|00002cd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002ce0| 20 20 20 20 20 28 74 65 | 78 2d 6d 6f 64 65 2d 77 | (te|x-mode-w|
|00002cf0| 69 74 68 69 6e 2d 61 2d | 6c 69 6e 65 29 29 29 29 |ithin-a-|line))))|
|00002d00| 29 29 29 29 0a 20 20 20 | 20 20 20 28 74 65 78 2d |)))). | (tex-|
|00002d10| 6d 6f 64 65 2d 61 6e 64 | 2d 73 61 77 2d 6e 65 77 |mode-and|-saw-new|
|00002d20| 6c 69 6e 65 29 29 29 29 | 0a |line))))|. |
+--------+-------------------------+-------------------------+--------+--------+