finish dedottifying
authorAndy Wingo <wingo@pobox.com>
Sun, 4 May 2008 14:25:36 +0000 (16:25 +0200)
committerAndy Wingo <wingo@pobox.com>
Sun, 4 May 2008 14:25:36 +0000 (16:25 +0200)
* module/system/base/compile.scm: Dedottify.

* module/system/base/language.scm: Export language accessors.

* module/system/repl/common.scm: Dedottify. It's ugly, I know.

module/system/base/compile.scm
module/system/base/language.scm
module/system/repl/common.scm

index f7a820b..06936d5 100644 (file)
 ;;;
 
 (define-public (read-file-in file lang)
-  (call-with-input-file file lang.read-file))
+  (call-with-input-file file (language-read-file lang)))
 
 (define-public (compile-in x e lang . opts)
   (catch 'result
     (lambda ()
       ;; expand
-      (set! x (lang.expander x e))
+      (set! x ((language-expander lang) x e))
       (if (memq :e opts) (throw 'result x))
       ;; translate
-      (set! x (lang.translator x e))
+      (set! x ((language-translator lang) x e))
       (if (memq :t opts) (throw 'result x))
       ;; compile
       (set! x (apply compile x e opts))
index 57396e3..87ca077 100644 (file)
 
 (define-module (system base language)
   :use-syntax (system base syntax)
-  :export (define-language lookup-language))
+  :export (define-language lookup-language
+           language-name language-title language-version language-reader
+           language-printer language-read-file language-expander
+           language-translator language-evaluator language-environment))
 
 \f
 ;;;
index 7e4aae8..baca86e 100644 (file)
                 :options repl-default-options
                 :tm-stats (times)
                 :gc-stats (gc-stats)
-                :vm-stats (vm-stats cenv.vm))))
+                :vm-stats (vm-stats (cenv-vm cenv)))))
 
 (define-public (repl-welcome repl)
-  (format #t "~A interpreter ~A on Guile ~A\n"
-         repl.env.language.title repl.env.language.version (version))
+  (let ((language (cenv-language (repl-env repl))))
+    (format #t "~A interpreter ~A on Guile ~A\n"
+            (language-title language) (language-version language) (version)))
   (display "Copyright (C) 2001 Free Software Foundation, Inc.\n\n")
   (display "Enter `,help' for help.\n"))
 
 (define-public (repl-prompt repl)
-  (let ((module-name (car (last-pair (module-name repl.env.module)))))
-    (format #t "~A@~A> " repl.env.language.name module-name)
-    (force-output)))
+  (format #t "~A@~A> " (language-name (cenv-language (repl-env repl)))
+          (module-name (cenv-module (repl-env repl))))
+  (force-output))
 
 (define-public (repl-read repl)
-  (repl.env.language.reader))
+  ((language-reader (cenv-language (repl-env repl)))))
 
 (define-public (repl-compile repl form . opts)
-  (apply compile-in form repl.env.module repl.env.language opts))
+  (apply compile-in form (cenv-module (repl-env repl))
+         (cenv-language (repl-env repl)) opts))
 
 (define-public (repl-eval repl form)
-  (let ((eval repl.env.language.evaluator))
+  (let ((eval (language-evaluator (cenv-language (repl-env repl)))))
     (if eval
-       (eval form repl.env.module)
-       (vm-load repl.env.vm (repl-compile repl form)))))
+       (eval form (cenv-module (repl-env repl)))
+       (vm-load (cenv-vm (repl-env repl)) (repl-compile repl form)))))
 
 (define-public (repl-print repl val)
   (if (not (eq? val *unspecified*))
       (begin
-       (repl.env.language.printer val)
+       ((language-printer (cenv-language (repl-env repl))) val)
        (newline))))
 
 (define-public (repl-option-ref repl key)
-  (assq-ref repl.options key))
+  (assq-ref (repl-options repl) key))
 
 (define-public (repl-option-set! repl key val)
-  (set! repl.options (assq-set! repl.options key val)))
+  (set! (repl-options repl) (assq-set! (repl-options repl) key val)))
 
 \f
 ;;;