File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2929 [(var-e v) (cons i (list (label (symbol->string v) i)))]
3030 [(char-e c) (cons i (list (label (~a c) i)))]
3131 [(fun-e f) (cons i (list (label (~a "fun " f) i)))]
32- [(call-e f es) (cons i (render-subs i (~a "(call " f " ...) " ) es))]
33- [(app-e f es) (cons i (render-subs i (~a "( " f " ...) " ) es))]
34- [(prim-e p es) (cons i (render-subs i (~a "( " (symbol->string p) " ...) " ) es))]
35- [(if-e e t f) (cons i (render-subs i "if " (list e t f)))]
32+ [(call-e f es)
33+ (cons i (let ((l (label (~a "(call " (fname f) " ...) " ) i)))
34+ (render-subs i l es)))]
35+ [(app-e f es)
36+ (cons i (let ((l (label (~a "( " f " ...) " ) i)))
37+ (render-subs i l es)))]
38+ [(prim-e p es)
39+ (cons i (let* ((l (label (~a "( " (symbol->string p) " ...) " ) i))
40+ (l2 (color "red " l)))
41+ (render-subs i l2 es)))]
42+ [(if-e e t f)
43+ (cons i (let ((l (label "if " i)))
44+ (render-subs i l (list e t f))))]
3645 [(let-e bs b) (cons i (render-let i "let " bs b))])))
3746
3847; On big programs this will be bad (it's n^2, I think)
39- (define (render-subs pid str es)
48+ (define (render-subs pid parent es)
4049 (let* ((subps (map render-expr es))
4150 (subs (append* (map cdr subps)))
42- (parent (label str pid))
4351 (ids (map car subps)))
4452 `(,@subs
4553 ,parent
6371 (bn (render-expr body))
6472 (cid (car bn)))
6573 (cons i `(,@(cdr bn) ,vn ,(color "deeppink2 " (e i cid)))))]))
74+
75+ (define (fname f)
76+ (match f
77+ [(fun-e f) f]
78+ [_ f]))
You can’t perform that action at this time.
0 commit comments