unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Stefan Israelsson Tampe <stefan.itampe@gmail.com>
To: guile-devel <guile-devel@gnu.org>
Subject: syntax parse link
Date: Tue, 8 May 2012 17:46:24 +0200	[thread overview]
Message-ID: <CAGua6m3PF32mHVa28RLqCmmPcXv_iAqXdCbaOXt2JUJcr++y4w@mail.gmail.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 1384 bytes --]

Hi,

I would like to add a link to the syntax-parse repo from guile's home page.
I was told to try get
the rights to do this myself. If that doesn't work I will need help from
any of the maintainers
to make the linkage.

NEWS: for syntax parse

I have written a fresh module using syntax parse to do racket's for,
for/list, etc. interface.
And have also started to work with an implementation of racket's match. It
has indeed been
a pleasure to work with the syntax parse framework and these two examples
can be studied
to see syntax-parse in action. It has also been a test-bed and I found that
racket's syntax parse
is lacking with respect to mutual recursive syntax-classes. Hence I added a
sane support for
this feature. E.g.

First prepend the code by declarations e.g.

(define-syntax-class ...)
Here the declaration has to be rich enough to contain all of the interface
that is later used for the syntax-class.

(syntax-class-set! ...) (New)
Has the same format as define-syntax-class but modifies the old
syntax-class in such a way
that a new parser function is added. To do this the interfaces has to match
or else a helpful message
will be supplied.

Ergo the idea follows closely the define/set! method in scheme

The procedure is a little clunky due to the expressiveness of the
syntax-class macro but still straightforward
and the code is easy to debug.

Have fun
Stefan

[-- Attachment #2: Type: text/html, Size: 1517 bytes --]

             reply	other threads:[~2012-05-08 15:46 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-08 15:46 Stefan Israelsson Tampe [this message]
2012-05-15 20:33 ` syntax parse link Andy Wingo
2012-05-16 20:14   ` Stefan Israelsson Tampe
2012-05-16 21:12     ` Ludovic Courtès
2012-05-20 20:26       ` Stefan Israelsson Tampe
2012-05-22 16:18         ` Ludovic Courtès
2012-05-22 16:41           ` Stefan Israelsson Tampe
2012-05-23  2:28           ` Alex Shinn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAGua6m3PF32mHVa28RLqCmmPcXv_iAqXdCbaOXt2JUJcr++y4w@mail.gmail.com \
    --to=stefan.itampe@gmail.com \
    --cc=guile-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).