#reader(lib"read.ss""wxme")WXME0108 ## #| This file uses the GRacket editor format. Open this file in DrRacket version 7.0 or later to read it. Most likely, it was created by saving a program in DrRacket, and it probably contains a program with non-text elements (such as images or comment boxes). http://racket-lang.org/ |# 33 7 #"wxtext\0" 3 1 6 #"wxtab\0" 1 1 8 #"wximage\0" 2 0 8 #"wxmedia\0" 4 1 34 #"(lib \"syntax-browser.ss\" \"mrlib\")\0" 1 0 36 #"(lib \"cache-image-snip.ss\" \"mrlib\")\0" 1 0 68 ( #"((lib \"image-core.ss\" \"mrlib\") (lib \"image-core-wxme.rkt\" \"mr" #"lib\"))\0" ) 1 0 16 #"drscheme:number\0" 3 0 44 #"(lib \"number-snip.ss\" \"drscheme\" \"private\")\0" 1 0 36 #"(lib \"comment-snip.ss\" \"framework\")\0" 1 0 93 ( #"((lib \"collapsed-snipclass.ss\" \"framework\") (lib \"collapsed-sni" #"pclass-wxme.ss\" \"framework\"))\0" ) 0 0 43 #"(lib \"collapsed-snipclass.ss\" \"framework\")\0" 0 0 19 #"drscheme:sexp-snip\0" 0 0 29 #"drscheme:bindings-snipclass%\0" 1 0 101 ( #"((lib \"ellipsis-snip.rkt\" \"drracket\" \"private\") (lib \"ellipsi" #"s-snip-wxme.rkt\" \"drracket\" \"private\"))\0" ) 2 0 88 ( #"((lib \"pict-snip.rkt\" \"drracket\" \"private\") (lib \"pict-snip.r" #"kt\" \"drracket\" \"private\"))\0" ) 0 0 55 #"((lib \"snip.rkt\" \"pict\") (lib \"snip-wxme.rkt\" \"pict\"))\0" 1 0 34 #"(lib \"bullet-snip.rkt\" \"browser\")\0" 0 0 25 #"(lib \"matrix.ss\" \"htdp\")\0" 1 0 22 #"drscheme:lambda-snip%\0" 1 0 29 #"drclickable-string-snipclass\0" 0 0 26 #"drracket:spacer-snipclass\0" 0 0 57 #"(lib \"hrule-snip.rkt\" \"macro-debugger\" \"syntax-browser\")\0" 1 0 26 #"drscheme:pict-value-snip%\0" 0 0 45 #"(lib \"image-snipr.ss\" \"slideshow\" \"private\")\0" 1 0 38 #"(lib \"pict-snipclass.ss\" \"slideshow\")\0" 2 0 55 #"(lib \"vertical-separator-snip.ss\" \"stepper\" \"private\")\0" 1 0 18 #"drscheme:xml-snip\0" 1 0 31 #"(lib \"xml-snipclass.ss\" \"xml\")\0" 1 0 21 #"drscheme:scheme-snip\0" 2 0 34 #"(lib \"scheme-snipclass.ss\" \"xml\")\0" 1 0 10 #"text-box%\0" 1 0 32 #"(lib \"text-snipclass.ss\" \"xml\")\0" 1 0 1 6 #"wxloc\0" 0 0 56 0 1 #"\0" 0 75 1 #"\0" 0 12 90 -1 90 -1 3 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 0 9 #"Standard\0" 0 75 30 #"Source Code Pro for Powerline\0" 0 13 90 -1 90 -1 3 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 24 #"framework:default-color\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 150 0 150 0 0 0 -1 -1 2 15 #"text:ports out\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 150 0 150 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 255 0 0 0 0 0 -1 -1 2 15 #"text:ports err\0" 0 -1 1 #"\0" 1 0 -1 -1 93 -1 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 175 0 0 0 -1 -1 2 17 #"text:ports value\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 175 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 34 139 34 0 0 0 -1 -1 2 27 #"Matching Parenthesis Style\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 34 139 34 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 38 38 128 0 0 0 -1 -1 2 37 #"framework:syntax-color:scheme:symbol\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 38 38 128 0 0 0 -1 -1 2 38 #"framework:syntax-color:scheme:keyword\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 38 38 128 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 194 116 31 0 0 0 -1 -1 2 38 #"framework:syntax-color:scheme:comment\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 194 158 31 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 41 128 38 0 0 0 -1 -1 2 37 #"framework:syntax-color:scheme:string\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 211 72 255 0 0 0 -1 -1 2 35 #"framework:syntax-color:scheme:text\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 41 128 38 0 0 0 -1 -1 2 39 #"framework:syntax-color:scheme:constant\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 211 72 255 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 2 49 #"framework:syntax-color:scheme:hash-colon-keyword\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 2 42 #"framework:syntax-color:scheme:parenthesis\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 150 255 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 36 #"framework:syntax-color:scheme:error\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 36 #"framework:syntax-color:scheme:other\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 16 #"Misspelled Text\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 81 112 203 0 0 0 -1 -1 2 38 #"drracket:check-syntax:lexically-bound\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 81 112 203 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 2 28 #"drracket:check-syntax:set!d\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 2 37 #"drracket:check-syntax:unused-require\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 36 #"drracket:check-syntax:free-variable\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 68 0 203 0 0 0 -1 -1 2 31 #"drracket:check-syntax:imported\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 68 0 203 0 0 0 -1 -1 2 47 #"drracket:check-syntax:my-obligation-style-pref\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 116 0 0 0 0 -1 -1 2 50 #"drracket:check-syntax:their-obligation-style-pref\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 116 0 0 0 0 -1 -1 2 48 #"drracket:check-syntax:unk-obligation-style-pref\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 139 142 28 0 0 0 -1 -1 2 49 #"drracket:check-syntax:both-obligation-style-pref\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 139 142 28 0 0 0 -1 -1 2 26 #"plt:htdp:test-coverage-on\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 255 165 0 0 0 0 -1 -1 2 27 #"plt:htdp:test-coverage-off\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 255 165 0 0 0 0 -1 -1 4 1 #"\0" 0 70 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 -1 -1 4 4 #"XML\0" 0 70 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 -1 -1 2 37 #"plt:module-language:test-coverage-on\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 38 #"plt:module-language:test-coverage-off\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 255 165 0 0 0 0 -1 -1 4 1 #"\0" 0 71 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 -1 -1 4 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 255 0 0 0 -1 -1 4 1 #"\0" 0 71 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 255 0 0 0 -1 -1 4 1 #"\0" 0 71 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 100 0 0 0 0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 200 0 0 0 0 0 -1 -1 0 945 0 28 3 16 #"#lang racket/gui" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 7 #"require" 0 0 24 3 1 #" " 0 0 19 3 17 #"\"interpreter.rkt\"" 0 0 24 29 1 #"\n" 0 0 24 3 9 #" " 0 0 14 3 9 #"framework" 0 0 24 29 1 #"\n" 0 0 24 3 9 #" " 0 0 14 3 10 #"racket/set" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 17 3 28 #"; The editor width in pixels" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 12 #"EDITOR-WIDTH" 0 0 24 3 1 #" " 0 0 21 3 3 #"600" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 13 #"EDITOR-HEIGHT" 0 0 24 3 1 #" " 0 0 21 3 3 #"600" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 17 3 49 #"; The frame racket/gui base object for the editor" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 1 #"f" 0 0 24 3 2 #" (" 0 0 14 3 3 #"new" 0 0 24 3 1 #" " 0 0 14 3 6 #"frame%" 0 0 24 29 1 #"\n" 0 0 24 3 16 #" [" 0 0 14 3 5 #"label" 0 0 24 3 1 #" " 0 0 19 3 13 #"\"DrBrainf*ck\"" 0 0 24 3 1 #"]" 0 0 24 29 1 #"\n" 0 0 24 3 16 #" [" 0 0 14 3 5 #"width" 0 0 24 3 1 #" " 0 0 14 3 12 #"EDITOR-WIDTH" 0 0 24 3 1 #"]" 0 0 24 29 1 #"\n" 0 0 24 3 16 #" [" 0 0 14 3 6 #"height" 0 0 24 3 1 #" " 0 0 14 3 13 #"EDITOR-HEIGHT" 0 0 24 3 3 #"]))" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 17 3 52 #"; execute-content: ((ProgState) -> Any) -> ProgState" 0 0 24 29 1 #"\n" 0 0 17 3 78 ( #"; Given a callback, calls the callback with the last state of execut" #"ion of the" ) 0 0 24 29 1 #"\n" 0 0 17 3 9 #"; program" 0 0 17 3 1 #" " 0 0 17 3 6 #"loaded" 0 0 17 3 1 #" " 0 0 17 3 2 #"in" 0 0 17 3 1 #" " 0 0 17 3 3 #"the" 0 0 17 3 7 #" editor" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 2 #" (" 0 0 14 3 15 #"execute-content" 0 0 24 3 1 #" " 0 0 14 3 4 #"done" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 3 3 #" (" 0 0 14 3 7 #"execute" 0 0 24 29 1 #"\n" 0 0 24 3 4 #" (" 0 0 14 3 19 #"program->prog-state" 0 0 24 29 1 #"\n" 0 0 24 3 5 #" (" 0 0 14 3 15 #"string->program" 0 0 24 29 1 #"\n" 0 0 24 3 6 #" (" 0 0 14 3 4 #"send" 0 0 24 3 1 #" " 0 0 14 3 6 #"editor" 0 0 24 3 1 #" " 0 0 14 3 18 #"get-flattened-text" 0 0 24 3 4 #"))) " 0 0 14 3 4 #"done" 0 0 24 3 2 #"))" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 17 3 45 #"; run-program: Button ControlEvent -> Nothing" 0 0 24 29 1 #"\n" 0 0 17 3 79 ( #"; Given a button and an event, runs the program currently loaded in " #"the editor." ) 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 2 #" (" 0 0 14 3 11 #"run-program" 0 0 24 3 1 #" " 0 0 14 3 6 #"button" 0 0 24 3 1 #" " 0 0 14 3 5 #"event" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 3 2 #" " 0 0 17 3 44 #"; empty output text and set color to running" 0 0 24 29 1 #"\n" 0 0 24 3 3 #" (" 0 0 14 3 4 #"send" 0 0 24 3 1 #" " 0 0 14 3 10 #"run-output" 0 0 24 3 1 #" " 0 0 14 3 9 #"set-value" 0 0 24 3 1 #" " 0 0 19 3 2 #"\"\"" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 3 3 #" (" 0 0 14 3 4 #"send" 0 0 24 3 1 #" " 0 0 14 3 10 #"run-output" 0 0 24 3 1 #" " 0 0 14 3 20 #"set-field-background" 0 0 24 3 1 #" " 0 0 14 3 7 #"run-col" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 24 3 2 #" " 0 0 17 3 17 #"; run the program" 0 0 24 29 1 #"\n" 0 0 24 3 3 #" (" 0 0 14 3 15 #"execute-content" 0 0 24 29 1 #"\n" 0 0 24 3 4 #" (" 0 0 15 3 6 #"lambda" 0 0 24 3 2 #" (" 0 0 14 3 2 #"ps" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 3 6 #" (" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 3 #"out" 0 0 24 3 2 #" (" 0 0 14 3 17 #"prog-state-output" 0 0 24 3 1 #" " 0 0 14 3 2 #"ps" 0 0 24 3 2 #"))" 0 0 24 29 1 #"\n" 0 0 24 3 5 #" " 0 0 24 29 1 #"\n" 0 0 24 3 5 #" " 0 0 17 3 38 #"; set output and change color to ended" 0 0 24 29 1 #"\n" 0 0 24 3 6 #" (" 0 0 14 3 4 #"send" 0 0 24 3 1 #" " 0 0 14 3 10 #"run-output" 0 0 24 3 1 #" " 0 0 14 3 9 #"set-value" 0 0 24 3 1 #" " 0 0 14 3 3 #"out" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 3 6 #" (" 0 0 14 3 4 #"send" 0 0 24 3 1 #" " 0 0 14 3 10 #"run-output" 0 0 24 3 1 #" " 0 0 14 3 20 #"set-field-background" 0 0 24 3 1 #" " 0 0 14 3 7 #"end-col" 0 0 24 3 4 #"))))" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 17 3 37 #"; Definition of the run button widget" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 7 #"run-btn" 0 0 24 3 2 #" (" 0 0 14 3 3 #"new" 0 0 24 3 1 #" " 0 0 14 3 7 #"button%" 0 0 24 3 2 #" [" 0 0 14 3 6 #"parent" 0 0 24 3 1 #" " 0 0 14 3 1 #"f" 0 0 24 3 1 #"]" 0 0 24 29 1 #"\n" 0 0 24 3 22 #" [" 0 0 14 3 5 #"label" 0 0 24 3 1 #" " 0 0 19 3 5 #"\"Run\"" 0 0 24 3 1 #"]" 0 0 24 29 1 #"\n" 0 0 24 3 21 #" " 0 0 17 3 40 #"; Callback procedure for a button click:" 0 0 24 29 1 #"\n" 0 0 24 3 22 #" [" 0 0 14 3 8 #"callback" 0 0 24 3 1 #" " 0 0 14 3 11 #"run-program" 0 0 24 3 3 #"]))" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 17 3 33 #"; Definition of the editor canves" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 1 #"c" 0 0 24 3 2 #" (" 0 0 14 3 3 #"new" 0 0 24 3 1 #" " 0 0 14 3 14 #"editor-canvas%" 0 0 24 3 2 #" [" 0 0 14 3 6 #"parent" 0 0 24 3 1 #" " 0 0 14 3 1 #"f" 0 0 24 3 3 #"]))" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 17 3 36 #"; Definition of editor text object. " 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 9 #"text-pro%" 0 0 24 3 2 #" (" 0 0 14 3 23 #"text:line-numbers-mixin" 0 0 24 29 1 #"\n" 0 0 24 3 20 #" (" 0 0 14 3 32 #"editor:standard-style-list-mixin" 0 0 24 29 1 #"\n" 0 0 24 3 21 #" (" 0 0 14 3 16 #"color:text-mixin" 0 0 24 29 1 #"\n" 0 0 24 3 22 #" (" 0 0 14 3 16 #"text:basic-mixin" 0 0 24 29 1 #"\n" 0 0 24 3 23 #" (" 0 0 14 3 18 #"editor:basic-mixin" 0 0 24 3 1 #" " 0 0 14 3 5 #"text%" 0 0 24 3 6 #"))))))" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 6 #"editor" 0 0 24 3 2 #" (" 0 0 14 3 3 #"new" 0 0 24 3 1 #" " 0 0 14 3 9 #"text-pro%" 0 0 24 3 2 #"))" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 17 3 29 #"; Show line numbers in editor" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 14 3 4 #"send" 0 0 24 3 1 #" " 0 0 14 3 6 #"editor" 0 0 24 3 1 #" " 0 0 14 3 18 #"show-line-numbers!" 0 0 24 3 1 #" " 0 0 21 3 2 #"#t" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 17 3 22 #"; A BFToken is one of:" 0 0 24 29 1 #"\n" 0 0 17 3 12 #"; - 'comment" 0 0 24 29 1 #"\n" 0 0 17 3 16 #"; - 'instruction" 0 0 24 29 1 #"\n" 0 0 17 3 10 #"; - 'shift" 0 0 24 29 1 #"\n" 0 0 17 3 9 #"; - 'loop" 0 0 24 29 1 #"\n" 0 0 17 3 40 #"; Interp: category of a bf program token" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 17 3 22 #"; A BFStyle is one of:" 0 0 24 29 1 #"\n" 0 0 17 3 13 #"; - \"Comment\"" 0 0 24 29 1 #"\n" 0 0 17 3 17 #"; - \"Instruction\"" 0 0 24 29 1 #"\n" 0 0 17 3 11 #"; - \"Shift\"" 0 0 24 29 1 #"\n" 0 0 17 3 10 #"; - \"Loop\"" 0 0 24 29 1 #"\n" 0 0 17 3 50 #"; Interp: name of the style for a bf program token" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 17 3 40 #"; bf-token->bf-style: BFToken -> BFStyle" 0 0 24 29 1 #"\n" 0 0 17 3 53 #"; Given a BFToken, returns the corresponding BFStyle." 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 2 #" (" 0 0 14 3 18 #"bf-token->bf-style" 0 0 24 3 1 #" " 0 0 14 3 5 #"token" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 3 9 #" (" 0 0 15 3 4 #"cond" 0 0 24 3 3 #" [(" 0 0 14 3 8 #"symbol=?" 0 0 24 3 1 #" " 0 0 14 3 5 #"token" 0 0 24 3 1 #" " 0 0 21 3 1 #"'" 0 0 14 3 7 #"comment" 0 0 24 3 2 #") " 0 0 19 3 9 #"\"Comment\"" 0 0 24 3 1 #"]" 0 0 24 29 1 #"\n" 0 0 24 3 16 #" [(" 0 0 14 3 8 #"symbol=?" 0 0 24 3 1 #" " 0 0 14 3 5 #"token" 0 0 24 3 1 #" " 0 0 21 3 1 #"'" 0 0 14 3 4 #"loop" 0 0 24 3 2 #") " 0 0 19 3 6 #"\"Loop\"" 0 0 24 3 1 #"]" 0 0 24 29 1 #"\n" 0 0 24 3 16 #" [(" 0 0 14 3 8 #"symbol=?" 0 0 24 3 1 #" " 0 0 14 3 5 #"token" 0 0 24 3 1 #" " 0 0 21 3 1 #"'" 0 0 14 3 5 #"shift" 0 0 24 3 2 #") " 0 0 19 3 7 #"\"Shift\"" 0 0 24 3 1 #"]" 0 0 24 29 1 #"\n" 0 0 24 3 16 #" [(" 0 0 14 3 8 #"symbol=?" 0 0 24 3 1 #" " 0 0 14 3 5 #"token" 0 0 24 3 1 #" " 0 0 21 3 1 #"'" 0 0 14 3 11 #"instruction" 0 0 24 3 2 #") " 0 0 19 3 13 #"\"Instruction\"" 0 0 24 3 3 #"]))" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 17 3 77 ( #"; bf-lexer: InputPort -> (values 1String BFToken #f Option Opti" #"on) " ) 0 0 24 29 1 #"\n" 0 0 17 3 76 ( #"; Given an input port, returns the BFToken of the instruction pointe" #"d by the" ) 0 0 24 29 1 #"\n" 0 0 17 3 7 #"; port." 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 2 #" (" 0 0 14 3 8 #"bf-lexer" 0 0 24 3 1 #" " 0 0 14 3 4 #"port" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 3 3 #" (" 0 0 15 3 13 #"define-values" 0 0 24 3 2 #" (" 0 0 14 3 1 #"_" 0 0 24 3 1 #" " 0 0 14 3 2 #"__" 0 0 24 3 1 #" " 0 0 14 3 3 #"pos" 0 0 24 3 3 #") (" 0 0 14 3 18 #"port-next-location" 0 0 24 3 1 #" " 0 0 14 3 4 #"port" 0 0 24 3 2 #"))" 0 0 24 29 1 #"\n" 0 0 24 3 3 #" (" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 1 #"c" 0 0 24 3 2 #" (" 0 0 14 3 9 #"read-char" 0 0 24 3 1 #" " 0 0 14 3 4 #"port" 0 0 24 3 2 #"))" 0 0 24 29 1 #"\n" 0 0 24 3 3 #" (" 0 0 15 3 4 #"cond" 0 0 24 3 3 #" [(" 0 0 14 3 11 #"eof-object?" 0 0 24 3 1 #" " 0 0 14 3 1 #"c" 0 0 24 3 3 #") (" 0 0 14 3 6 #"values" 0 0 24 3 1 #" " 0 0 14 3 1 #"c" 0 0 24 3 1 #" " 0 0 21 3 1 #"'" 0 0 14 3 3 #"eof" 0 0 24 3 1 #" " 0 0 21 3 2 #"#f" 0 0 24 3 1 #" " 0 0 21 3 2 #"#f" 0 0 24 3 1 #" " 0 0 21 3 2 #"#f" 0 0 24 3 2 #")]" 0 0 24 29 1 #"\n" 0 0 24 3 9 #" [" 0 0 14 3 4 #"else" 0 0 24 29 1 #"\n" 0 0 24 3 10 #" (" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 4 #"1str" 0 0 24 3 2 #" (" 0 0 14 3 6 #"string" 0 0 24 3 1 #" " 0 0 14 3 1 #"c" 0 0 24 3 2 #"))" 0 0 24 29 1 #"\n" 0 0 24 3 10 #" (" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 8 #"bf-token" 0 0 24 29 1 #"\n" 0 0 24 3 12 #" (" 0 0 15 3 4 #"cond" 0 0 24 3 3 #" [(" 0 0 14 3 11 #"set-member?" 0 0 24 3 2 #" (" 0 0 14 3 3 #"set" 0 0 24 3 1 #" " 0 0 19 3 3 #"\"+\"" 0 0 24 3 1 #" " 0 0 19 3 3 #"\"-\"" 0 0 24 3 1 #" " 0 0 19 3 3 #"\",\"" 0 0 24 3 1 #" " 0 0 19 3 3 #"\".\"" 0 0 24 3 2 #") " 0 0 14 3 4 #"1str" 0 0 24 3 2 #") " 0 0 21 3 1 #"'" 0 0 14 3 11 #"instruction" 0 0 24 3 1 #"]" 0 0 24 29 1 #"\n" 0 0 24 3 19 #" [(" 0 0 14 3 11 #"set-member?" 0 0 24 3 2 #" (" 0 0 14 3 3 #"set" 0 0 24 3 1 #" " 0 0 19 3 3 #"\"<\"" 0 0 24 3 1 #" " 0 0 19 3 3 #"\">\"" 0 0 24 3 2 #") " 0 0 14 3 4 #"1str" 0 0 24 3 2 #") " 0 0 21 3 1 #"'" 0 0 14 3 5 #"shift" 0 0 24 3 1 #"]" 0 0 24 29 1 #"\n" 0 0 24 3 19 #" [(" 0 0 14 3 11 #"set-member?" 0 0 24 3 2 #" (" 0 0 14 3 3 #"set" 0 0 24 3 1 #" " 0 0 19 3 3 #"\"[\"" 0 0 24 3 1 #" " 0 0 19 3 3 #"\"]\"" 0 0 24 3 2 #") " 0 0 14 3 4 #"1str" 0 0 24 3 2 #") " 0 0 21 3 1 #"'" 0 0 14 3 4 #"loop" 0 0 24 3 1 #"]" 0 0 24 29 1 #"\n" 0 0 24 3 18 #" [" 0 0 14 3 4 #"else" 0 0 24 3 1 #" " 0 0 21 3 1 #"'" 0 0 14 3 7 #"comment" 0 0 24 3 3 #"]))" 0 0 24 29 1 #"\n" 0 0 24 3 10 #" (" 0 0 14 3 6 #"values" 0 0 24 3 1 #" " 0 0 14 3 4 #"1str" 0 0 24 3 1 #" " 0 0 14 3 8 #"bf-token" 0 0 24 3 1 #" " 0 0 21 3 2 #"#f" 0 0 24 3 2 #" (" 0 0 14 3 1 #"+" 0 0 24 3 1 #" " 0 0 14 3 3 #"pos" 0 0 24 3 3 #") (" 0 0 14 3 1 #"+" 0 0 24 3 1 #" " 0 0 14 3 3 #"pos" 0 0 24 3 1 #" " 0 0 21 3 1 #"1" 0 0 24 3 5 #"))]))" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 17 3 35 #"; Syntax highlighting for brainf*ck" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 14 3 4 #"send" 0 0 24 3 1 #" " 0 0 14 3 6 #"editor" 0 0 24 3 1 #" " 0 0 14 3 13 #"start-colorer" 0 0 24 3 1 #" " 0 0 14 3 18 #"bf-token->bf-style" 0 0 24 3 1 #" " 0 0 14 3 8 #"bf-lexer" 0 0 24 3 1 #" " 0 0 21 3 1 #"'" 0 0 24 3 3 #"())" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 17 3 47 #"; Define basic style for instructions (+ - , .)" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 5 #"delta" 0 0 24 3 2 #" (" 0 0 15 3 11 #"make-object" 0 0 24 3 1 #" " 0 0 14 3 12 #"style-delta%" 0 0 24 3 2 #"))" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 14 3 4 #"send" 0 0 24 3 1 #" " 0 0 14 3 5 #"delta" 0 0 24 3 1 #" " 0 0 14 3 20 #"set-delta-foreground" 0 0 24 3 1 #" " 0 0 19 3 6 #"\"blue\"" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 14 3 36 #"editor:set-standard-style-list-delta" 0 0 24 3 1 #" " 0 0 19 3 13 #"\"Instruction\"" 0 0 24 3 1 #" " 0 0 14 3 5 #"delta" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 17 3 44 #"; Define style for shifting operations (< >)" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 14 3 4 #"send" 0 0 24 3 1 #" " 0 0 14 3 5 #"delta" 0 0 24 3 1 #" " 0 0 14 3 20 #"set-delta-foreground" 0 0 24 3 1 #" " 0 0 19 3 5 #"\"red\"" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 14 3 36 #"editor:set-standard-style-list-delta" 0 0 24 3 1 #" " 0 0 19 3 7 #"\"Shift\"" 0 0 24 3 1 #" " 0 0 14 3 5 #"delta" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 17 3 51 #"; Define basic style for looping instructions ([ ])" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 14 3 4 #"send" 0 0 24 3 1 #" " 0 0 14 3 5 #"delta" 0 0 24 3 1 #" " 0 0 14 3 20 #"set-delta-foreground" 0 0 24 3 1 #" " 0 0 19 3 13 #"\"forestgreen\"" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 14 3 36 #"editor:set-standard-style-list-delta" 0 0 24 3 1 #" " 0 0 19 3 6 #"\"Loop\"" 0 0 24 3 1 #" " 0 0 14 3 5 #"delta" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 17 3 26 #"; Define style of comments" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 14 3 4 #"send" 0 0 24 3 1 #" " 0 0 14 3 5 #"delta" 0 0 24 3 1 #" " 0 0 14 3 20 #"set-delta-foreground" 0 0 24 3 1 #" " 0 0 19 3 8 #"\"orange\"" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 14 3 36 #"editor:set-standard-style-list-delta" 0 0 24 3 1 #" " 0 0 19 3 9 #"\"Comment\"" 0 0 24 3 1 #" " 0 0 14 3 5 #"delta" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 17 3 22 #"; Running output color" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 7 #"run-col" 0 0 24 3 2 #" (" 0 0 15 3 11 #"make-object" 0 0 24 3 1 #" " 0 0 14 3 6 #"color%" 0 0 24 3 1 #" " 0 0 21 3 3 #"250" 0 0 24 3 1 #" " 0 0 21 3 3 #"250" 0 0 24 3 1 #" " 0 0 21 3 3 #"200" 0 0 24 3 2 #"))" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 17 3 24 #"; Output completed color" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 7 #"end-col" 0 0 24 3 2 #" (" 0 0 15 3 11 #"make-object" 0 0 24 3 1 #" " 0 0 14 3 6 #"color%" 0 0 24 3 1 #" " 0 0 21 3 3 #"200" 0 0 24 3 1 #" " 0 0 21 3 3 #"250" 0 0 24 3 1 #" " 0 0 21 3 3 #"200" 0 0 24 3 2 #"))" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 2 #"mb" 0 0 24 3 2 #" (" 0 0 14 3 3 #"new" 0 0 24 3 1 #" " 0 0 14 3 9 #"menu-bar%" 0 0 24 3 2 #" [" 0 0 14 3 6 #"parent" 0 0 24 3 1 #" " 0 0 14 3 1 #"f" 0 0 24 3 3 #"]))" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 6 #"m-file" 0 0 24 3 2 #" (" 0 0 14 3 3 #"new" 0 0 24 3 1 #" " 0 0 14 3 5 #"menu%" 0 0 24 3 2 #" [" 0 0 14 3 5 #"label" 0 0 24 3 1 #" " 0 0 19 3 6 #"\"File\"" 0 0 24 3 3 #"] [" 0 0 14 3 6 #"parent" 0 0 24 3 1 #" " 0 0 14 3 2 #"mb" 0 0 24 3 3 #"]))" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 6 #"m-edit" 0 0 24 3 2 #" (" 0 0 14 3 3 #"new" 0 0 24 3 1 #" " 0 0 14 3 5 #"menu%" 0 0 24 3 2 #" [" 0 0 14 3 5 #"label" 0 0 24 3 1 #" " 0 0 19 3 6 #"\"Edit\"" 0 0 24 3 3 #"] [" 0 0 14 3 6 #"parent" 0 0 24 3 1 #" " 0 0 14 3 2 #"mb" 0 0 24 3 3 #"]))" 0 0 24 29 1 #"\n" 0 0 24 29 1 #"\n" 0 0 17 3 28 #"; The run output text object" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 10 #"run-output" 0 0 24 3 2 #" (" 0 0 14 3 3 #"new" 0 0 24 3 1 #" " 0 0 14 3 11 #"text-field%" 0 0 24 29 1 #"\n" 0 0 24 3 25 #" [" 0 0 14 3 5 #"style" 0 0 24 3 2 #" (" 0 0 14 3 4 #"list" 0 0 24 3 1 #" " 0 0 21 3 1 #"'" 0 0 14 3 8 #"multiple" 0 0 24 3 1 #" " 0 0 21 3 1 #"'" 0 0 14 3 14 #"vertical-label" 0 0 24 3 2 #")]" 0 0 24 29 1 #"\n" 0 0 24 3 25 #" [" 0 0 14 3 5 #"label" 0 0 24 3 1 #" " 0 0 19 3 19 #"\"Execution output:\"" 0 0 24 3 1 #"]" 0 0 24 29 1 #"\n" 0 0 24 3 25 #" [" 0 0 14 3 6 #"parent" 0 0 24 3 1 #" " 0 0 14 3 1 #"f" 0 0 24 3 3 #"]))" 0 0 24 29 1 #"\n" 0 0 24 3 2 #" " 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 7 #"mi-open" 0 0 24 29 1 #"\n" 0 0 24 3 3 #" (" 0 0 14 3 3 #"new" 0 0 24 3 1 #" " 0 0 14 3 10 #"menu-item%" 0 0 24 29 1 #"\n" 0 0 24 3 8 #" [" 0 0 14 3 5 #"label" 0 0 24 3 1 #" " 0 0 19 3 6 #"\"Open\"" 0 0 24 3 1 #"]" 0 0 24 29 1 #"\n" 0 0 24 3 8 #" [" 0 0 14 3 6 #"parent" 0 0 24 3 1 #" " 0 0 14 3 6 #"m-file" 0 0 24 3 1 #"]" 0 0 24 29 1 #"\n" 0 0 24 3 8 #" [" 0 0 14 3 8 #"callback" 0 0 24 29 1 #"\n" 0 0 24 3 9 #" (" 0 0 15 3 6 #"lambda" 0 0 24 3 2 #" (" 0 0 14 3 1 #"i" 0 0 24 3 1 #" " 0 0 14 3 1 #"e" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 3 11 #" (" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 4 #"path" 0 0 24 3 2 #" (" 0 0 14 3 8 #"get-file" 0 0 24 3 1 #" " 0 0 21 3 2 #"#f" 0 0 24 3 1 #" " 0 0 14 3 1 #"f" 0 0 24 3 2 #"))" 0 0 24 29 1 #"\n" 0 0 24 3 11 #" (" 0 0 15 3 4 #"when" 0 0 24 3 1 #" " 0 0 14 3 4 #"path" 0 0 24 29 1 #"\n" 0 0 24 3 13 #" (" 0 0 14 3 4 #"send" 0 0 24 3 1 #" " 0 0 14 3 6 #"editor" 0 0 24 3 1 #" " 0 0 14 3 9 #"load-file" 0 0 24 3 1 #" " 0 0 14 3 4 #"path" 0 0 24 3 1 #" " 0 0 21 3 1 #"'" 0 0 14 3 4 #"text" 0 0 24 3 4 #")))]" 0 0 24 29 1 #"\n" 0 0 24 3 8 #" [" 0 0 14 3 8 #"shortcut" 0 0 24 3 1 #" " 0 0 21 3 3 #"#\\o" 0 0 24 3 1 #"]" 0 0 24 29 1 #"\n" 0 0 24 3 8 #" [" 0 0 14 3 15 #"shortcut-prefix" 0 0 24 3 1 #" " 0 0 21 3 1 #"'" 0 0 24 3 1 #"(" 0 0 14 3 3 #"ctl" 0 0 24 3 4 #")]))" 0 0 24 29 1 #"\n" 0 0 24 3 2 #" " 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 15 3 6 #"define" 0 0 24 3 1 #" " 0 0 14 3 7 #"mi-save" 0 0 24 29 1 #"\n" 0 0 24 3 3 #" (" 0 0 14 3 3 #"new" 0 0 24 3 1 #" " 0 0 14 3 10 #"menu-item%" 0 0 24 29 1 #"\n" 0 0 24 3 8 #" [" 0 0 14 3 5 #"label" 0 0 24 3 1 #" " 0 0 19 3 6 #"\"Save\"" 0 0 24 3 1 #"]" 0 0 24 29 1 #"\n" 0 0 24 3 8 #" [" 0 0 14 3 6 #"parent" 0 0 24 3 1 #" " 0 0 14 3 6 #"m-file" 0 0 24 3 1 #"]" 0 0 24 29 1 #"\n" 0 0 24 3 8 #" [" 0 0 14 3 8 #"callback" 0 0 24 29 1 #"\n" 0 0 24 3 9 #" (" 0 0 15 3 6 #"lambda" 0 0 24 3 2 #" (" 0 0 14 3 1 #"i" 0 0 24 3 1 #" " 0 0 14 3 1 #"e" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 3 11 #" (" 0 0 14 3 4 #"send" 0 0 24 3 1 #" " 0 0 14 3 6 #"editor" 0 0 24 3 1 #" " 0 0 14 3 9 #"save-file" 0 0 24 3 1 #" " 0 0 21 3 2 #"#f" 0 0 24 3 1 #" " 0 0 21 3 1 #"'" 0 0 14 3 4 #"text" 0 0 24 3 3 #"))]" 0 0 24 29 1 #"\n" 0 0 24 3 8 #" [" 0 0 14 3 8 #"shortcut" 0 0 24 3 1 #" " 0 0 21 3 3 #"#\\s" 0 0 24 3 1 #"]" 0 0 24 29 1 #"\n" 0 0 24 3 8 #" [" 0 0 14 3 15 #"shortcut-prefix" 0 0 24 3 1 #" " 0 0 21 3 1 #"'" 0 0 24 3 1 #"(" 0 0 14 3 3 #"ctl" 0 0 24 3 4 #")]))" 0 0 24 29 1 #"\n" 0 0 24 3 2 #" " 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 14 3 34 #"append-editor-operation-menu-items" 0 0 24 3 1 #" " 0 0 14 3 6 #"m-edit" 0 0 24 3 1 #" " 0 0 21 3 2 #"#f" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 14 3 4 #"send" 0 0 24 3 1 #" " 0 0 14 3 6 #"editor" 0 0 24 3 1 #" " 0 0 14 3 20 #"set-max-undo-history" 0 0 24 3 1 #" " 0 0 21 3 3 #"100" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 14 3 4 #"send" 0 0 24 3 1 #" " 0 0 14 3 1 #"c" 0 0 24 3 1 #" " 0 0 14 3 10 #"set-editor" 0 0 24 3 1 #" " 0 0 14 3 6 #"editor" 0 0 24 3 1 #")" 0 0 24 29 1 #"\n" 0 0 24 3 1 #"(" 0 0 14 3 4 #"send" 0 0 24 3 1 #" " 0 0 14 3 1 #"f" 0 0 24 3 1 #" " 0 0 14 3 4 #"show" 0 0 24 3 1 #" " 0 0 21 3 2 #"#t" 0 0 24 3 1 #")" 0 0