test: Add syntax tests.
[mes.git] / module / mes / base-0.mes
index 0334cc2871e8f963065b3251732c8c1bec45787f..7db153e508e1c8f7a773f93817234afc68600f64 100644 (file)
@@ -1,7 +1,7 @@
 ;;; -*-scheme-*-
 
 ;;; Mes --- Maxwell Equations of Software
-;;; Copyright © 2016,2017 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2016,2017,2018 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of Mes.
 ;;;
 (define else #t)
 
 (define (cadr x) (car (cdr x)))
-(define-macro (simple-let bindings . rest)
-  (cons (cons 'lambda (cons (map1 car bindings) rest))
-        (map1 cadr bindings)))
 
 (define-macro (let bindings . rest)
-  (cons 'simple-let (cons bindings rest)))
+  (cons (cons 'lambda (cons (map1 car bindings) rest))
+        (map1 cadr bindings)))
 
 (define *input-ports* '())
 (define-macro (push! stack o)
   (if (null? (cdr lst)) (car lst)
       (string-append (car lst) infix (string-join (cdr lst) infix))))
 
-(define (module->file o)
-  (string-append (string-join (map1 symbol->string o) "/") ".mes"))
-
-(define *modules* '(mes/base-0.mes))
-(define (mes-load-module-env module a)
-  (push! *input-ports* (current-input-port))
-  (set-current-input-port (open-input-file (string-append %moduledir (module->file module))))
-  (let ((x (core:eval (append2 (cons 'begin (read-input-file-env a))
-                               '((current-module)))
-                      a)))
-    (set-current-input-port (pop! *input-ports*))
-    x))
-(define (not x)
-  (if x #f #t))
-(define-macro (mes-use-module module)
-  (list
-   'begin
-   (list 'if (list 'not (list 'memq (list string->symbol (module->file module)) '*modules*))
-         (list
-          'begin
-          (list 'set! '*modules* (list cons (list string->symbol (module->file module)) '*modules*))
-          (list 'load (list string-append '%moduledir (module->file module)))))))
+(include-from-path "mes/module.mes")
 
 (mes-use-module (mes base))
 (mes-use-module (srfi srfi-0))
 (mes-use-module (mes quasiquote))
 (mes-use-module (mes let))
+
 (mes-use-module (mes scm))
+
 (mes-use-module (srfi srfi-13))
-(mes-use-module (mes display))
 (mes-use-module (mes catch))
+
 (mes-use-module (mes posix))
+