This is the mail archive of the
guile@sourceware.cygnus.com
mailing list for the Guile project.
Re: more module system wishlist blathering
- To: Michael Livshin <mlivshin at bigfoot dot com>
- Subject: Re: more module system wishlist blathering
- From: Jost Boekemeier <jostobfe at linux dot zrz dot TU-Berlin dot DE>
- Date: 15 Feb 2000 08:41:09 +0100
- Cc: guile at sourceware dot cygnus dot com
- References: <s3emahx770.fsf@verisity.com>
Michael Livshin <mlivshin@bigfoot.com> writes:
> * readtable extensions. so a module can extend the readtable to grok,
> for example, things that look like '#,(<stuff>)', etc., and the
> module system will combine such extensions at link time.
Read table or reader extensions? [From the Bigloo manual]:
- bigloo procedure: read/rp GRAMMAR PORT
- bigloo procedure: read/lalrp LALRG RG PORT [EMPTYP]
These functions are fully explained in the Subsections *note
Regular Parsing::. and *note Lalr Parsing::..
[...]
A new way of reading
--------------------
There is only one way in Bigloo to read text, *regular reading*,
which is done by the new form:
- bigloo procedure: read/rp REGULAR-PARSER INPUT-PORT
The first argument is a regular parser and the second a Scheme
port. This way of reading is almost the same as the Lex's one.
The reader tries to match the longest input, from the stream
pointed to by INPUT-PORT, with one of several regular expressions
contained in REGULAR-PARSER. If many rules match, the reader takes
the first one defined in the grammar. When the regular rule has
been found the corresponding Scheme expression is evaluated.
*remark: * The traditional `read' Scheme function is implemented
as:
(define-inline (read port)
(read/rp scheme-grammar port))
[...]
Mikael wanted to send me his bison/flex hack some time ago...
> * [ redundant item ] generics.
Sure thing. BTW: generic functions are only a special form of
generics. What we really need are generic classes.
Jost