guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

PEG Parser Updates/Questions


From: Michael Lucy
Subject: PEG Parser Updates/Questions
Date: Wed, 28 Jul 2010 00:13:44 -0500

I've officially eliminated the last define-macro expression.

However, I get the feeling that things may not be exactly as desired.
The original program made extensive use of functions in building the
macros, and I originally tried to replace these with macros.  This
turned out to be a little difficult to debug, however (read: I was
unable to make the code actually work).  I eventually abandoned this
and just made datum->syntax calls.

On the one hand, this works.  I also find it easier to debug, and I
think it looks cleaner.

The downside is that one doesn't get all the same benefits of
referential transparency, so I still have gensyms in the functions
etc.  Is this a problem?

If so, I can definitely replace everything with macros, but I might
not be able to do that and get everything else done by the GSOC
project deadline.  I'd like to hang around after the project is
officially done from Google's point of view to polish things up, so I
could also do it then.

Another question about module namespaces:  I have some syntax that I'd
like to be available to code generated by macros in my module, but
which I'd rather not export to the user (to avoid clobbering their
functions).  Is there a standard way of doing this?  I can't seem to
find anything in the module documentation regarding giving namespaces
to things in modules except for :renamer, which has to be done by the
user--the only options appear to be not exporting it at all, or
exporting it straight into the user's namespace.  The best fix I can
think of is naming the syntax things the user is unlikely to ever take
(or maybe using gensyms to make sure it isn't a name they take).



reply via email to

[Prev in Thread] Current Thread [Next in Thread]