diff --git a/src/ast.scm b/src/ast.scm index 88965751c624f..c31f30ea741d9 100644 --- a/src/ast.scm +++ b/src/ast.scm @@ -23,7 +23,7 @@ (string #\( (deparse (caddr e)) #\))))) ((memq (car e) '(... |'| |.'|)) (string (deparse (cadr e)) (car e))) - ((syntactic-op? (car e)) + ((or (syntactic-op? (car e)) (eq? (car e) '|<:|) (eq? (car e) '|>:|)) (string (deparse (cadr e)) (car e) (deparse (caddr e)))) ((memq (car e) '($ &)) (string (car e) (deparse (cadr e)))) @@ -44,7 +44,8 @@ (if (symbol? (cadr e)) (string ":" (deparse (cadr e))) (string ":(" (deparse (cadr e)) ")"))) - ((vcat) (string #\[ (deparse-arglist (cdr e)) #\])) + ((vect) (string #\[ (deparse-arglist (cdr e)) #\])) + ((vcat) (string #\[ (deparse-arglist (cdr e) ";") #\])) ((hcat) (string #\[ (deparse-arglist (cdr e) " ") #\])) ((global local const) (string (car e) " " (deparse (cadr e)))) @@ -65,6 +66,10 @@ (cdr e)) "\n") "\nend")) + ((comprehension) + (string "[ " (deparse (cadr e)) " for " (deparse-arglist (cddr e) ", ") " ]")) + ((generator) + (string "(" (deparse (cadr e)) " for " (deparse-arglist (cddr e) ", ") ")")) (else (string e))))))