forked from bldl/magnolisp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
2014.rkt
41 lines (30 loc) · 1.28 KB
/
2014.rkt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#lang racket/base
#|
Defines a Racket module language for Magnolisp, but with the 2014
edition of the surface syntax. Exists for backward compatibility.
We export racket/base as the macro programming language, and we also
provide racket/base as runtime language at present as well. Such
language may be used, but it will not be compiled into C++.
The idea is not to use Magnolisp as the macro programming language, as
Racket ought to be better for that purpose. We will not provide any
Magnolisp for-syntax.
|#
(module reader syntax/module-reader
magnolisp/2014
#:wrapper1 (lambda (t)
;; No need to replace reader altogether, just override
;; readtable.
(with-magnolisp-readtable
(t)))
;; Import readtable. Note that it needs to be in the `reader`
;; submodule scope, not the outer one.
(require magnolisp/2014/reader-ext))
(provide (except-out (all-from-out racket/base) #%module-begin))
(require (for-syntax racket/base))
(provide (for-syntax (all-from-out racket/base)))
(require (submod "2014/base.rkt" modbeg))
(provide (rename-out [module-begin/2014 #%module-begin]))
(require "2014/prelude.rkt")
(provide (all-from-out "2014/prelude.rkt"))
(require "2014/surface.rkt")
(provide (all-from-out "2014/surface.rkt"))