diff --git a/collects/honu/core/main.rkt b/collects/honu/core/main.rkt index e42b2d45da..f473939e39 100644 --- a/collects/honu/core/main.rkt +++ b/collects/honu/core/main.rkt @@ -76,8 +76,7 @@ [literal:colon %colon] [literal:honu-in in] [literal:semicolon %semicolon] - [literal:honu-comma %comma] - [literal:honu-comma %comma] + [literal:honu-comma honu-comma] [literal:honu-$ $] [literal:honu-<- <-] [literal:honu-in-lines inLines] diff --git a/collects/honu/core/private/honu2.rkt b/collects/honu/core/private/honu2.rkt index f64e9b3f31..48bc872eb3 100644 --- a/collects/honu/core/private/honu2.rkt +++ b/collects/honu/core/private/honu2.rkt @@ -334,9 +334,8 @@ (syntax-parse code #:literal-sets (cruft) [(var:honu-declaration . rest) (define result - (with-syntax ([var.expression (honu->racket #'var.expression)]) - ;; wrap the expression in a let so that we can insert new `define-syntax'es - (racket-syntax (define-values (var.name ...) (let () var.expression))))) + ;; wrap the expression in a let so that we can insert new `define-syntax'es + (racket-syntax (define-values (var.name ...) (let () var.expression)))) (values result #'rest #t)]))) (provide (rename-out [honu-with-syntax withSyntax])) diff --git a/collects/honu/core/private/parse2.rkt b/collects/honu/core/private/parse2.rkt index 51cec21c59..1a4be366f7 100644 --- a/collects/honu/core/private/parse2.rkt +++ b/collects/honu/core/private/parse2.rkt @@ -303,6 +303,7 @@ #; (debug "Reparsed output ~a\n" (pretty-format (syntax->datum re-parse))) (define terminate (definition? re-parse)) + (debug "Terminate? ~a\n" terminate) (if terminate? (values (left re-parse) #'rest) @@ -606,12 +607,12 @@ (define-values (parsed unparsed) (parse stx)) (debug "[~a] expression parsed ~a\n" context (if parsed (syntax->datum parsed) parsed)) - (debug "[~a] Parsed things ~a\n" context (parsed-things stx unparsed)) - (list (parsed-things stx unparsed) - (parsed-syntax parsed) - #; - (with-syntax ([parsed parsed]) - #'(%racket parsed))))))) + (debug 2 "[~a] Parsed things ~a\n" context (parsed-things stx unparsed)) + (if (parsed-syntax? parsed) + (list (parsed-things stx unparsed) + (parsed-syntax parsed)) + (list (parsed-things stx unparsed) + (parse-all parsed))))))) (provide honu-expression-list) (define-splicing-syntax-class (honu-expression-list) diff --git a/collects/honu/core/read.rkt b/collects/honu/core/read.rkt index 4d9871ca9f..97581ddc7f 100644 --- a/collects/honu/core/read.rkt +++ b/collects/honu/core/read.rkt @@ -71,7 +71,7 @@ ["/*" (token-block-comment)] ["..." (token-identifier '...)] ["." (token-identifier '%dot)] - ["," (token-identifier '%comma)] + ["," (token-identifier 'honu-comma)] [":" (token-identifier '%colon)] ["'" (token-identifier 'quote)] ["`" (token-identifier 'quasiquote)]