summaryrefslogtreecommitdiff
path: root/module/system/base/language.scm
diff options
context:
space:
mode:
authorKeisuke Nishida <kxn30@po.cwru.edu>2001-04-16 03:43:48 +0000
committerKeisuke Nishida <kxn30@po.cwru.edu>2001-04-16 03:43:48 +0000
commit8f5cfc810fb19fdfbeaa55d59d47dc5ab50c416b (patch)
treeb5435b4d55e8645240fdb0f555599ae3c4038491 /module/system/base/language.scm
parent78591ef5c3c4dd44cac912704696cf77c2cbbf73 (diff)
downloadguile-8f5cfc810fb19fdfbeaa55d59d47dc5ab50c416b.tar.gz
*** empty log message ***
Diffstat (limited to 'module/system/base/language.scm')
-rw-r--r--module/system/base/language.scm51
1 files changed, 2 insertions, 49 deletions
diff --git a/module/system/base/language.scm b/module/system/base/language.scm
index 83014584e..5ac1eb3ee 100644
--- a/module/system/base/language.scm
+++ b/module/system/base/language.scm
@@ -22,12 +22,7 @@
(define-module (system base language)
:use-module (oop goops)
:use-syntax (system base syntax)
- :use-module (system il compile)
- :use-module (system vm core)
- :use-module (system vm assemble)
- :use-module (ice-9 regex)
- :export (define-language lookup-language read-in compile-in print-in
- compile-file-in))
+ :export (define-language lookup-language))
;;;
@@ -36,12 +31,10 @@
(define-vm-class <language> ()
name title version environment
- (reader)
+ reader printer read-file
(expander (lambda (x e) x))
(translator (lambda (x e) x))
(evaluator #f)
- (printer)
- (compiler)
)
(define-method (write (lang <language>) port)
@@ -57,43 +50,3 @@
(if (module-bound? m name)
(module-ref m name)
(error "No such language:" name))))
-
-
-;;;
-;;; Evaluation interface
-;;;
-
-(define (read-in lang . port)
- (lang.reader (if (null? port) (current-input-port) (car port))))
-
-(define (compile-in x e lang . opts)
- (catch 'result
- (lambda ()
- ;; expand
- (set! x (lang.expander x e))
- (if (memq :e opts) (throw 'result x))
- ;; translate
- (set! x (lang.translator x e))
- (if (memq :t opts) (throw 'result x))
- ;; compile
- (set! x (apply compile x e opts))
- (if (memq :c opts) (throw 'result x))
- ;; assemble
- (apply assemble x e opts))
- (lambda (key val) val)))
-
-(define (print-in val lang . port)
- (lang.printer val (if (null? port) (current-output-port) (car port))))
-
-(define (compile-file-in file lang . opts)
- (call-with-input-file file
- (lambda (port) (apply lang.compiler port (current-module) opts))))
-
-(define-public (syntax-error loc msg exp)
- (throw 'syntax-error loc msg exp))
-
-(define-public (call-with-compile-error-catch thunk)
- (catch 'syntax-error
- thunk
- (lambda (key loc msg exp)
- (format #t "~A:~A: ~A: ~A" (car loc) (cdr loc) msg exp))))