private/compiler.ss
#lang scheme/base
(require scheme/contract
         "../ast.ss"
         (for-syntax scheme/base))
(require (for-template scheme/base
                       "../eval.ss"))

(define (compile-module asts)
  (with-syntax ([(s ...) asts])
    (syntax
     (begin (eval-statement s) ...))))

(define (compile-stmt ast)
  (with-syntax ([s ast])
    (syntax
     (eval-statement s))))

(provide/contract
 [compile-module (list? . -> . syntax?)]
 [compile-stmt (statement/c . -> . syntax?)])