more rearrangement
parent
1476c8e631
commit
5fb626cd7f
@ -0,0 +1,267 @@
|
|||||||
|
#reader(lib"read.ss""wxme")WXME0108 ##
|
||||||
|
#|
|
||||||
|
This file uses the GRacket editor format.
|
||||||
|
Open this file in DrRacket version 6.4.0.15 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/
|
||||||
|
|#
|
||||||
|
22 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 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 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 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 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 1 6 #"wxloc\0"
|
||||||
|
0 0 63 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 15 #"Triplicate T3c\0"
|
||||||
|
0 16 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 1 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 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 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 119 34 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 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 136 17 17 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 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 34 119 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 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 34 119 0 0 0 -1 -1 2 38
|
||||||
|
#"framework:syntax-color:scheme:keyword\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 34 34 119 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 119 34 119 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 34 119 34 0 0 0 -1 -1 2 35
|
||||||
|
#"framework:syntax-color:scheme: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 34 119 34 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 34 119 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 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 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 119 34 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 178 178 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 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 136 17 17 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 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 34 119 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 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 136 17 17 0 0 0 -1 -1 2 37
|
||||||
|
#"drracket:check-syntax:unused-require\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 136 17 17 0 0 0 -1 -1 2 36
|
||||||
|
#"drracket:check-syntax:free-variable\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 136 17 17 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
|
||||||
|
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 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 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 4 1 #"\0"
|
||||||
|
0 -1 1 #"\0"
|
||||||
|
1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 255 255 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 1
|
||||||
|
#"\0"
|
||||||
|
0 75 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 1 #"\0"
|
||||||
|
0 75 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 1 #"\0"
|
||||||
|
0 75 1 #"\0"
|
||||||
|
1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1
|
||||||
|
2 1 #"\0"
|
||||||
|
0 75 1 #"\0"
|
||||||
|
1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 34 139 34 255 255 255 -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 36 36 140 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 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
|
||||||
|
-1 -1 2 1 #"\0"
|
||||||
|
0 -1 1 #"\0"
|
||||||
|
0 4 -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 1 #"\0"
|
||||||
|
0 75 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 36 36 140 0 0 0 -1
|
||||||
|
-1 2 1 #"\0"
|
||||||
|
0 75 1 #"\0"
|
||||||
|
1.0 0 92 -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 1 #"\0"
|
||||||
|
0 75 1 #"\0"
|
||||||
|
0 4 -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 0 33 0 26 3 11 #"#lang reade"
|
||||||
|
0 0 26 3 2 #"r "
|
||||||
|
0 0 26 3 8 #"\"bf.rkt\""
|
||||||
|
0 0 24 29 1 #"\n"
|
||||||
|
0 0 14 3 6 #"++++++"
|
||||||
|
0 0 24 3 1 #"["
|
||||||
|
0 0 14 3 15 #">++++++++++++<-"
|
||||||
|
0 0 24 3 1 #"]"
|
||||||
|
0 0 14 3 2 #">."
|
||||||
|
0 0 24 29 1 #"\n"
|
||||||
|
0 0 14 3 11 #">++++++++++"
|
||||||
|
0 0 24 3 1 #"["
|
||||||
|
0 0 14 3 13 #">++++++++++<-"
|
||||||
|
0 0 24 3 1 #"]"
|
||||||
|
0 0 14 3 3 #">+."
|
||||||
|
0 0 24 29 1 #"\n"
|
||||||
|
0 0 14 3 18 #"+++++++..+++.>++++"
|
||||||
|
0 0 24 3 1 #"["
|
||||||
|
0 0 14 3 14 #">+++++++++++<-"
|
||||||
|
0 0 24 3 1 #"]"
|
||||||
|
0 0 14 3 2 #">."
|
||||||
|
0 0 24 29 1 #"\n"
|
||||||
|
0 0 14 3 4 #"<+++"
|
||||||
|
0 0 24 3 1 #"["
|
||||||
|
0 0 14 3 7 #">----<-"
|
||||||
|
0 0 24 3 1 #"]"
|
||||||
|
0 0 14 3 10 #">.<<<<<+++"
|
||||||
|
0 0 24 3 1 #"["
|
||||||
|
0 0 14 3 8 #">+++++<-"
|
||||||
|
0 0 24 3 1 #"]"
|
||||||
|
0 0 14 3 2 #">."
|
||||||
|
0 0 24 29 1 #"\n"
|
||||||
|
0 0 14 3 27 #">>.+++.------.--------.>>+."
|
||||||
|
0 0
|
@ -1,2 +1,2 @@
|
|||||||
#lang br/bf
|
#lang reader "bf.rkt"
|
||||||
+++++++[>+++++<-]>.
|
+++++++[>+++++<-]>.
|
||||||
|
@ -1,24 +1,43 @@
|
|||||||
#lang br
|
#lang br
|
||||||
|
(require parser-tools/lex ragg/support "parser.rkt")
|
||||||
|
|
||||||
(module reader br
|
(define (tokenize src-port)
|
||||||
(provide read-syntax)
|
(define (next-token)
|
||||||
(require "bf/tokenizer.rkt" "bf/parser.rkt")
|
(define get-token
|
||||||
(define (read-syntax src-path src-port)
|
(lexer
|
||||||
(define parsed-syntax (parse src-path (tokenize src-port)))
|
[(char-set "><-.,+[]") lexeme]
|
||||||
;; `strip-context` because `read-syntax` promises
|
[(char-complement (char-set "><-.,+[]")) (token 'OTHER #:skip? #t)]
|
||||||
;; a "clean" syntax object without context
|
[(eof) eof]))
|
||||||
;; (so later operations can add it)
|
(get-token src-port))
|
||||||
(strip-context
|
next-token)
|
||||||
(inject-syntax ([parsed-syntax])
|
|
||||||
#'(module bf-interpreter br/bf
|
|
||||||
parsed-syntax)))))
|
(define+provide (read-syntax src-path src-port)
|
||||||
|
(define parsed-syntax (parse src-path (tokenize src-port)))
|
||||||
|
(strip-context
|
||||||
|
(inject-syntax ([parsed-syntax])
|
||||||
|
#'(module bf-interpreter br/bf
|
||||||
|
parsed-syntax))))
|
||||||
|
|
||||||
|
#;(module reader br
|
||||||
|
(provide read-syntax)
|
||||||
|
(require "bf/tokenizer.rkt" "bf/parser.rkt")
|
||||||
|
(define (read-syntax src-path src-port)
|
||||||
|
(define parsed-syntax (parse src-path (tokenize src-port)))
|
||||||
|
;; `strip-context` because `read-syntax` promises
|
||||||
|
;; a "clean" syntax object without context
|
||||||
|
;; (so later operations can add it)
|
||||||
|
(strip-context
|
||||||
|
(inject-syntax ([parsed-syntax])
|
||||||
|
#'(module bf-interpreter br/bf
|
||||||
|
parsed-syntax)))))
|
||||||
|
|
||||||
;; compact version
|
;; compact version
|
||||||
#;(module reader br
|
#;(module reader br
|
||||||
(require br/reader-utils "tokenizer.rkt" "parser.rkt")
|
(require br/reader-utils "tokenizer.rkt" "parser.rkt")
|
||||||
(define-read-and-read-syntax (src-path src-port)
|
(define-read-and-read-syntax (src-path src-port)
|
||||||
#`(module bf-interpreter br/bf
|
#`(module bf-interpreter br/bf
|
||||||
#,(parse src-path (tokenize src-port)))))
|
#,(parse src-path (tokenize src-port)))))
|
||||||
|
|
||||||
(provide (rename-out [bf-module-begin #%module-begin])
|
(provide (rename-out [bf-module-begin #%module-begin])
|
||||||
#%top-interaction bf-program op loop)
|
#%top-interaction bf-program op loop)
|
Loading…
Reference in New Issue