Related articles |
---|
Parser generator that supports regular expressions? stickler@utrio.helsinki.fi (1992-06-12) |
lex and yacc for C++ ubacw00@ucl.ac.uk (1992-06-16) |
Re: lex and yacc for C++ dkoosis@aristotle.sbi.com (1992-06-17) |
Re: Parser generator that supports regular expressions? N.Chapman@cs.ucl.ac.uk (Nigel Chapman) (1992-06-22) |
Re: Parser generator that supports regular expressions? compres!bz@primerd.prime.com (1992-06-29) |
Newsgroups: | comp.compilers,comp.lang.c++,comp.lang.c |
From: | compres!bz@primerd.prime.com (Chris Clark) |
Organization: | Compilers Central |
Date: | Mon, 29 Jun 1992 12:21:03 GMT |
Keywords: | C++, yacc |
References: | 92-06-064 92-06-074 |
While I hate to correct someone whose papers I hold in high esteem, (In
fact, his paper on ELR parsing helped inspire our work.) Nigel made a
slight mistake when he answered the following question.
>> Does anyone know of a YACC-like parse generator that allows regular
>> expressions in rules (i.e. iteration, optionality, disjunction, grouping,
>> etc.).
>
> Not exactly, but I know why you're unlikely to find one in a hurry, if you
> specially want to use an LR parser generator. . . .
>
> I think some of these people produced prototypes at least. (I know I did,
> but since it was written in BCPL it isn't likely to be much use to anyone
> any more. Anyway, it certainly wasn't lex compatible.)
As the LADE people have pointed out, there are parser generators which are
LR and also support regular expressions. The generators do yield fewer
conflicts and additionally have fewer states.
"Yacc++(R) and the Language Objects Library" has been commercially
available since 1990. It uses the common Yacc notation extended with the
typical operators, * for Kleene closure, + for positive closure, and ?
for optional items. Parenthesis are available for grouping and | can be
used for alternatives. [Although unrelated, the same notation was used by
Judith Grass of AT&T in her parser generator Ryacc. As far as I know, she
has not released it. I believe Karsten Nyblad also produced an ELR parser
generator.]
Yacc++ works with LEX if you want it to or includes its own integrated
lexer generator which uses the same notation as the parser. Having
productions in the lexer makes things like nested comments easy.
I won't post a summary of Yacc++'s other features as this group has
already seen them and the postings have been archived.
For people who want to receive the technical marketing literature, send
your snail-mail address to:
Compiler Resources, Inc.
3 Proctor St.
Hopkinton, MA 01748
USA
(508) 435-5016 fax: (508) 435-4847
email: primerd.prime.com!compres!bz
or crackers.clearpoint.com!compres!bz
Disclaimer: I work for the above.
Best Regards to All,
Chris (Clark)
[See messages 91-12-061, 91-09-005, 91-08-132, 91-04-071, and 91-03-095,
for more about yacc++. -John]
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.