add parsers and unparser for ghil; ,language ghil works now
authorAndy Wingo <wingo@pobox.com>
Tue, 11 Nov 2008 21:52:24 +0000 (22:52 +0100)
committerAndy Wingo <wingo@pobox.com>
Tue, 11 Nov 2008 21:52:24 +0000 (22:52 +0100)
commitf38624b349c29e3e5b3e6518959f33803af45558
tree3c7cc7f464ed1696964ebdb07d6d613399ff31a2
parentf698d111b4e6cc763c01e157c291358152a18ec3
add parsers and unparser for ghil; ,language ghil works now

* module/system/repl/common.scm (repl-print): Slightly refine the meaning
  of "language-printer": a language printer prints an expression of a
  language, not the result of evaluation. `write' prints values.

* module/language/ghil/spec.scm (ghil): Define a language printer, and a
  translator for turning s-expressions (not scheme, mind you) into GHIL.

* module/language/scheme/translate.scm (quote, quasiquote): Add some
  #:keyword action, so that we can (quote #:keywords).

* module/system/base/language.scm (<language>):
* module/system/base/compile.scm (read-file-in): Don't require that a
  language have a read-file; instead error when read-file is called.
  (compile-passes, compile-in): Refactor to call a helper method to turn
  the language + set of options into a set of compiler passes.

* module/system/base/syntax.scm (define-type): Allow the type to be a
  list, with the car being the name and the cdr being keyword options.
  Interpret #:printer as a printer, and pass it down to...
  (define-record): Here.

* module/system/il/ghil.scm (print-ghil, <ghil>): New printer for GHIL,
  yay!
  (parse-ghil, unparse-ghil): New lovely functions. Will document them in
  the manual.
module/language/ghil/spec.scm
module/language/scheme/translate.scm
module/system/base/compile.scm
module/system/base/language.scm
module/system/base/syntax.scm
module/system/il/ghil.scm
module/system/repl/common.scm