git @ Cat's Eye Technologies Pixley / develop-2023-1
Format the launch script to be more readable, no super long lines. Chris Pressey 1 year, 11 months ago
1 changed file(s) with 127 addition(s) and 1 deletion(s). Raw diff Collapse all Expand all
5757 yoob.makeParagraph(depictionPanel, "Depiction:");
5858 var depictionCanvas = yoob.makeCanvas(depictionPanel);
5959
60 var pixleyInterpreter = (
61 "(lambda (program)" +
62 " (let* ((interpreter (lambda (interpret program env)" +
63 " (let* ((cadr (lambda (alist)" +
64 " (car (cdr alist))))" +
65 " (null? (lambda (expr)" +
66 " (equal? expr (quote ()))))" +
67 " (find (lambda (self elem alist)" +
68 " (cond" +
69 " ((null? alist)" +
70 " (quote nothing))" +
71 " (else" +
72 " (let* ((entry (car alist))" +
73 " (key (car entry))" +
74 " (rest (cdr alist)))" +
75 " (cond" +
76 " ((equal? elem key)" +
77 " entry)" +
78 " (else" +
79 " (self self elem rest))))))))" +
80 " (interpret-args (lambda (interpret-args args env)" +
81 " (cond" +
82 " ((null? args)" +
83 " args)" +
84 " (else" +
85 " (let* ((arg (car args))" +
86 " (rest (cdr args)))" +
87 " (cons (interpret interpret arg env) (interpret-args interpret-args rest env)))))))" +
88 " (expand-args (lambda (expand-args formals argvals)" +
89 " (cond" +
90 " ((null? formals)" +
91 " formals)" +
92 " (else" +
93 " (let* ((formal (car formals))" +
94 " (rest-formals (cdr formals))" +
95 " (argval (car argvals))" +
96 " (rest-argvals (cdr argvals)))" +
97 " (cons (cons formal (cons argval (quote ()))) (expand-args expand-args rest-formals rest-argvals)))))))" +
98 " (concat-envs (lambda (concat-envs new-env old-env)" +
99 " (cond" +
100 " ((null? new-env)" +
101 " old-env)" +
102 " (else" +
103 " (let* ((entry (car new-env))" +
104 " (rest (cdr new-env)))" +
105 " (cons entry (concat-envs concat-envs rest old-env)))))))" +
106 " (call-lambda (lambda (func args env)" +
107 " (let* ((arg-vals (interpret-args interpret-args args env)))" +
108 " (func arg-vals)))))" +
109 " (cond" +
110 " ((null? program)" +
111 " program)" +
112 " ((list? program)" +
113 " (let* ((tag (car program))" +
114 " (args (cdr program))" +
115 " (entry (find find tag env)))" +
116 " (cond" +
117 " ((list? entry)" +
118 " (call-lambda (cadr entry) args env))" +
119 " ((equal? tag (quote lambda))" +
120 " (let* ((formals (car args))" +
121 " (body (cadr args)))" +
122 " (lambda (arg-vals)" +
123 " (let* ((arg-env (expand-args expand-args formals arg-vals))" +
124 " (new-env (concat-envs concat-envs arg-env env)))" +
125 " (interpret interpret body new-env)))))" +
126 " ((equal? tag (quote cond))" +
127 " (cond" +
128 " ((null? args)" +
129 " args)" +
130 " (else" +
131 " (let* ((branch (car args))" +
132 " (test (car branch))" +
133 " (expr (cadr branch)))" +
134 " (cond" +
135 " ((equal? test (quote else))" +
136 " (interpret interpret expr env))" +
137 " ((interpret interpret test env)" +
138 " (interpret interpret expr env))" +
139 " (else" +
140 " (let* ((branches (cdr args))" +
141 " (newprog (cons (quote cond) branches)))" +
142 " (interpret interpret newprog env))))))))" +
143 " ((equal? tag (quote let*))" +
144 " (let* ((bindings (car args))" +
145 " (body (cadr args)))" +
146 " (cond" +
147 " ((null? bindings)" +
148 " (interpret interpret body env))" +
149 " (else" +
150 " (let* ((binding (car bindings))" +
151 " (rest (cdr bindings))" +
152 " (ident (car binding))" +
153 " (expr (cadr binding))" +
154 " (value (interpret interpret expr env))" +
155 " (new-bi (cons ident (cons value (quote ()))))" +
156 " (new-env (cons new-bi env))" +
157 " (newprog (cons (quote let*) (cons rest (cons body (quote ()))))))" +
158 " (interpret interpret newprog new-env))))))" +
159 " ((equal? tag (quote list?))" +
160 " (list? (interpret interpret (car args) env)))" +
161 " ((equal? tag (quote quote))" +
162 " (car args))" +
163 " ((equal? tag (quote car))" +
164 " (car (interpret interpret (car args) env)))" +
165 " ((equal? tag (quote cdr))" +
166 " (cdr (interpret interpret (car args) env)))" +
167 " ((equal? tag (quote cons))" +
168 " (cons (interpret interpret (car args) env) (interpret interpret (cadr args) env)))" +
169 " ((equal? tag (quote equal?))" +
170 " (equal? (interpret interpret (car args) env) (interpret interpret (cadr args) env)))" +
171 " ((null? tag)" +
172 " tag)" +
173 " ((list? tag)" +
174 " (call-lambda (interpret interpret tag env) args env))" +
175 " (else" +
176 " (call-lambda tag args env)))))" +
177 " (else" +
178 " (let* ((entry (find find program env)))" +
179 " (cond" +
180 " ((list? entry)" +
181 " (cadr entry))" +
182 " (else" +
183 " (quote illegal-program-error))))))))))" +
184 " (interpreter interpreter program (quote ()))))"
185 );
60186
61187 /* --- Make Controller --- */
62188
67193 startButton: startButton,
68194 stopButton: stopButton,
69195 wrapButton: wrapButton,
70 pixleyInterpreter: "(lambda (program)\n (let* ((interpreter (lambda (interpret program env)\n (let* ((cadr (lambda (alist)\n (car (cdr alist))))\n (null? (lambda (expr)\n (equal? expr (quote ()))))\n (find (lambda (self elem alist)\n (cond\n ((null? alist)\n (quote nothing))\n (else\n (let* ((entry (car alist))\n (key (car entry))\n (rest (cdr alist)))\n (cond\n ((equal? elem key)\n entry)\n (else\n (self self elem rest))))))))\n (interpret-args (lambda (interpret-args args env)\n (cond\n ((null? args)\n args)\n (else\n (let* ((arg (car args))\n (rest (cdr args)))\n (cons (interpret interpret arg env) (interpret-args interpret-args rest env)))))))\n (expand-args (lambda (expand-args formals argvals)\n (cond\n ((null? formals)\n formals)\n (else\n (let* ((formal (car formals))\n (rest-formals (cdr formals))\n (argval (car argvals))\n (rest-argvals (cdr argvals)))\n (cons (cons formal (cons argval (quote ()))) (expand-args expand-args rest-formals rest-argvals)))))))\n (concat-envs (lambda (concat-envs new-env old-env)\n (cond\n ((null? new-env)\n old-env)\n (else\n (let* ((entry (car new-env))\n (rest (cdr new-env)))\n (cons entry (concat-envs concat-envs rest old-env)))))))\n (call-lambda (lambda (func args env)\n (let* ((arg-vals (interpret-args interpret-args args env)))\n (func arg-vals)))))\n (cond\n ((null? program)\n program)\n ((list? program)\n (let* ((tag (car program))\n (args (cdr program))\n (entry (find find tag env)))\n (cond\n ((list? entry)\n (call-lambda (cadr entry) args env))\n ((equal? tag (quote lambda))\n (let* ((formals (car args))\n (body (cadr args)))\n (lambda (arg-vals)\n (let* ((arg-env (expand-args expand-args formals arg-vals))\n (new-env (concat-envs concat-envs arg-env env)))\n (interpret interpret body new-env)))))\n ((equal? tag (quote cond))\n (cond\n ((null? args)\n args)\n (else\n (let* ((branch (car args))\n (test (car branch))\n (expr (cadr branch)))\n (cond\n ((equal? test (quote else))\n (interpret interpret expr env))\n ((interpret interpret test env)\n (interpret interpret expr env))\n (else\n (let* ((branches (cdr args))\n (newprog (cons (quote cond) branches)))\n (interpret interpret newprog env))))))))\n ((equal? tag (quote let*))\n (let* ((bindings (car args))\n (body (cadr args)))\n (cond\n ((null? bindings)\n (interpret interpret body env))\n (else\n (let* ((binding (car bindings))\n (rest (cdr bindings))\n (ident (car binding))\n (expr (cadr binding))\n (value (interpret interpret expr env))\n (new-bi (cons ident (cons value (quote ()))))\n (new-env (cons new-bi env))\n (newprog (cons (quote let*) (cons rest (cons body (quote ()))))))\n (interpret interpret newprog new-env))))))\n ((equal? tag (quote list?))\n (list? (interpret interpret (car args) env)))\n ((equal? tag (quote quote))\n (car args))\n ((equal? tag (quote car))\n (car (interpret interpret (car args) env)))\n ((equal? tag (quote cdr))\n (cdr (interpret interpret (car args) env)))\n ((equal? tag (quote cons))\n (cons (interpret interpret (car args) env) (interpret interpret (cadr args) env)))\n ((equal? tag (quote equal?))\n (equal? (interpret interpret (car args) env) (interpret interpret (cadr args) env)))\n ((null? tag)\n tag)\n ((list? tag)\n (call-lambda (interpret interpret tag env) args env))\n (else\n (call-lambda tag args env)))))\n (else\n (let* ((entry (find find program env)))\n (cond\n ((list? entry)\n (cadr entry))\n (else\n (quote illegal-program-error))))))))))\n (interpreter interpreter program (quote ()))))\n",
196 pixleyInterpreter: pixleyInterpreter,
71197 depictionCanvas: depictionCanvas,
72198 editPanel: editPanel,
73199 editor: editor,