From: Daniel de Rauglaudre <daniel.de_rauglaudre@inria.fr>
To: caml-list@inria.fr
Subject: Re: [Caml-list] LL, LR, and camlp4 (was Re: syntax change)
Date: Tue, 5 Feb 2002 10:31:26 +0100 [thread overview]
Message-ID: <20020205103126.E23442@verdot.inria.fr> (raw)
In-Reply-To: <4.3.2.7.2.20020205005831.03799740@arda.pair.com>; from checker@d6.com on Tue, Feb 05, 2002 at 01:09:11AM -0800
Hi,
On Tue, Feb 05, 2002 at 01:09:11AM -0800, Chris Hecker wrote:
> My question is just why did you hand-write the parser, rather than
> using a tool like yacc?
To preserve the extensibility with a simple way. I could not do that
with a yacc parser except revisiting the whole grammar and rebuiding
the whole table when extensions are done.
In Camlp4, when you extend an "entry level", only the entry level is
modified: an extension is just adding a rule in a tree, like adding a
case in a function. It is simple and I want to keep that simplicity.
> Are parser generators not all they're cracked up to be? If so, why
> does caml use yacc?
I don't know: when I arrived 10 years ago, there was nothing by yacc.
and for most people:
parsing <=> yacc
Not for me. I don't agree with that. I discovered parsing by learning
Pascal, 25 years ago and I found amazing the rules:
expression ::= term + term
| term - term
term ::= factor + factor
| factor - factor
factor ::= integer
| variable
| ( expression )
I found this recursivity with "expression between parentheses" as a
marvelous thing... :-)
When I arrived here, I just combined this idea with the Caml language
and its polymorphism, and I wrote the stream parsers, using Michel
Mauny's ideas.
Extensible grammars of Camlp4 are just improved stream parsers.
--
Daniel de RAUGLAUDRE
daniel.de_rauglaudre@inria.fr
http://cristal.inria.fr/~ddr/
-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
next prev parent reply other threads:[~2002-02-05 9:31 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-02-02 0:12 [Caml-list] otags problem Shivkumar Chandrasekaran
2002-02-04 14:11 ` [Caml-list] camlp4o problem (was: otags problem) Hendrik Tews
2002-02-04 14:52 ` Daniel de Rauglaudre
2002-02-04 15:08 ` Markus Mottl
2002-02-04 15:41 ` Daniel de Rauglaudre
2002-02-04 15:57 ` Christophe Raffalli
2002-02-04 17:06 ` Daniel de Rauglaudre
2002-02-04 16:25 ` [Caml-list] syntax change (was: camlp4o problem) Markus Mottl
2002-02-04 17:01 ` Daniel de Rauglaudre
2002-02-04 17:46 ` Markus Mottl
2002-02-04 18:08 ` Daniel de Rauglaudre
2002-02-06 8:19 ` M E Leypold @ labnet
2002-02-04 18:28 ` Mattias Waldau
2002-02-04 20:11 ` Markus Mottl
2002-02-04 22:52 ` Chris Hecker
2002-02-04 23:04 ` Benjamin C. Pierce
2002-02-04 23:28 ` Markus Mottl
2002-02-04 23:20 ` Markus Mottl
2002-02-05 2:39 ` Daniel de Rauglaudre
2002-02-05 2:55 ` Chris Hecker
2002-02-05 2:01 ` Brian Rogoff
2002-02-05 10:33 ` Markus Mottl
2002-02-05 11:53 ` Remi VANICAT
2002-02-05 12:05 ` Daniel de Rauglaudre
2002-02-05 17:23 ` Stefano Zacchiroli
2002-02-22 10:15 ` [Caml-list] Emacs mode for revised syntax? Johan Georg Granström
2002-02-22 10:21 ` Christian Gillot
2002-02-06 8:23 ` [Caml-list] syntax change (was: camlp4o problem) M E Leypold @ labnet
2002-02-04 23:04 ` Chris Hecker
2002-02-05 2:47 ` Daniel de Rauglaudre
2002-02-05 2:59 ` Chris Hecker
2002-02-05 8:42 ` Daniel de Rauglaudre
2002-02-05 9:09 ` [Caml-list] LL, LR, and camlp4 (was Re: syntax change) Chris Hecker
2002-02-05 9:31 ` Daniel de Rauglaudre [this message]
2002-02-05 9:33 ` Xavier Leroy
2002-02-05 12:17 ` Diego olivier FERNANDEZ PONS
2002-02-05 3:40 ` [Caml-list] camlp4o problem (was: otags problem) Patrick M Doane
2002-02-05 8:57 ` Daniel de Rauglaudre
2002-02-06 4:00 ` Patrick M Doane
2002-02-05 15:08 ` Hendrik Tews
2002-02-05 16:13 ` Daniel de Rauglaudre
2002-02-06 19:17 ` Yaron M. Minsky
2002-02-06 20:02 ` [Caml-list] Re: bug (was: camlp4o problem) Daniel de Rauglaudre
2002-02-04 22:15 ` [Caml-list] camlp4o problem (was: otags problem) Shivkumar Chandrasekaran
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20020205103126.E23442@verdot.inria.fr \
--to=daniel.de_rauglaudre@inria.fr \
--cc=caml-list@inria.fr \
/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