Add new functions to evaluator.
This commit is contained in:
parent
97dba9b99a
commit
7da97dca3c
|
@ -1,11 +1,22 @@
|
|||
#lang racket/base
|
||||
;; Allow evaluation at phase1
|
||||
(require (for-syntax racket/base syntax/parse))
|
||||
(provide phase1-eval)
|
||||
(provide phase1-eval phase1-phase0-eval phase1-phase0-run)
|
||||
|
||||
(define-namespace-anchor anchor)
|
||||
(define namespace (namespace-anchor->empty-namespace anchor))
|
||||
|
||||
(define-syntax phase1-phase0-run
|
||||
(syntax-parser
|
||||
[(_ form:expr ...)
|
||||
#'(let-syntax ([go (lambda (stx) form ...)]) (go))]))
|
||||
|
||||
(define-syntax phase1-phase0-eval
|
||||
(syntax-parser
|
||||
[(_ form:expr ...)
|
||||
#'(eval-syntax (quote-syntax (phase1-phase0-run form ...)) namespace)]))
|
||||
|
||||
(define-syntax phase1-eval
|
||||
(syntax-parser
|
||||
[(_ form:expr ...)
|
||||
#'(eval-syntax (quote-syntax (begin-for-syntax form ...)) namespace)]))
|
||||
#'(phase1-phase0-eval form ... #'(void))]))
|
||||
|
|
Loading…
Reference in New Issue
Block a user