diff --git a/collects/honu/core/main.rkt b/collects/honu/core/main.rkt index 34300067ad..a2a9b211f0 100644 --- a/collects/honu/core/main.rkt +++ b/collects/honu/core/main.rkt @@ -3,10 +3,14 @@ (require "private/honu-typed-scheme.rkt" "private/honu2.rkt" "private/macro2.rkt" - (for-syntax (only-in "private/macro2.rkt" honu-syntax)) + (for-syntax "private/honu2.rkt") + (for-syntax (only-in "private/macro2.rkt" honu-syntax mergeSyntax)) "private/class.rkt" + (for-meta 2 (prefix-in racket: racket/base)) + (for-syntax (prefix-in racket: racket/base)) (for-syntax (prefix-in class: syntax/parse)) (for-syntax (only-in "private/parse2.rkt" honu-expression honu-identifier)) + (for-syntax (prefix-in literal: "private/literals.rkt")) (prefix-in literal: "private/literals.rkt")) (provide #%top @@ -14,7 +18,16 @@ print printf true false (for-syntax (rename-out [honu-expression expression] [honu-identifier identifier] - [honu-syntax syntax])) + [honu-function function] + [literal:#%parens #%parens] + [literal:#%braces #%braces] + [literal:#%brackets #%brackets] + [literal:honu-comma %comma] + [honu--> %arrow] + [honu-syntax syntax]) + (rename-out [racket:#%datum #%datum]) + withSyntax + mergeSyntax) (rename-out [#%dynamic-honu-module-begin #%module-begin] [honu-top-interaction #%top-interaction] [honu-with-input-from-file with_input_from_file] @@ -23,6 +36,7 @@ [honu-function function] [honu-require require] [honu-macro macro] + [define-make-honu-operator operator] [honu-syntax syntax] [honu-while while] [honu-match match] diff --git a/collects/honu/core/private/macro2.rkt b/collects/honu/core/private/macro2.rkt index 2f42d2f3f2..66e249a316 100644 --- a/collects/honu/core/private/macro2.rkt +++ b/collects/honu/core/private/macro2.rkt @@ -8,8 +8,11 @@ "literals.rkt" "parse2.rkt" "debug.rkt" - "compile.rkt" racket/base) + (for-meta 2 syntax/parse + racket/base + "parse2.rkt" + "compile.rkt") "literals.rkt" #; (for-syntax "honu-typed-scheme.rkt") @@ -45,10 +48,11 @@ [(thing:pattern-type ...) (filter (lambda (x) (syntax-e x)) (syntax->list #'(thing.result ...)))])) +(begin-for-syntax (define-syntax (parse-stuff stx) (syntax-parse stx [(_ stuff ...) - (honu->racket (parse-all #'(stuff ...)))])) + (honu->racket (parse-all #'(stuff ...)))]))) (provide honu-macro) (define-honu-syntax honu-macro