34 lines
800 B
Racket
34 lines
800 B
Racket
#lang racket/base
|
|
|
|
(require syntax/parse
|
|
"debug.rkt"
|
|
"literals.rkt"
|
|
(for-syntax racket/base
|
|
"debug.rkt"))
|
|
|
|
;; to get syntax as a literal
|
|
(require (for-template racket/base))
|
|
|
|
(provide (all-defined-out))
|
|
|
|
; (define parsed-property (gensym 'honu-parsed))
|
|
(define parsed-property 'honu-parsed)
|
|
|
|
(define (parsed-syntax syntax)
|
|
(debug "Add parsed syntax property to ~a\n" (syntax->datum syntax))
|
|
(if syntax
|
|
(syntax-property syntax parsed-property #t)
|
|
syntax))
|
|
|
|
(define (parsed-syntax? syntax)
|
|
(if syntax
|
|
(syntax-property syntax parsed-property)
|
|
syntax))
|
|
|
|
(define-syntax (racket-syntax stx)
|
|
(syntax-case stx ()
|
|
[(_ form)
|
|
(begin
|
|
(debug 2 "Racket syntax ~a\n" (syntax->datum #'form))
|
|
#'(parsed-syntax #'form))]))
|