Boost logo

Boost :

From: danl_miller (danl_miller_at_[hidden])
Date: 2002-02-26 13:23:12


--- In boost_at_y..., "Kevin S. Van Horn" <kevin.vanhorn_at_n...> wrote:
> Doees anyone know of a C++-friendly version of yacc, or, better
yet, a
> version of yacc that produces a generic algorithm (e.g., take as
input a
> pair of InputIterators)? Yacc / bison as it stands is quite
unfriendly to
> C++, as you cannot put C++ objects on the evaluation stack, which
means
> that you can't always get objects properly destroyed.

  There is an experimental (somewhat orphaned) academic-experimental
language called Prop which contains Lex functionality, Yacc
functionality, and a whole bunch more.

  http://cs1.cs.nyu.edu/leunga/www/prop.html

  Prop is not exactly what you are looking for as it is a generator of
_ARM_-defined C++ which accepts an extrapolation of _ARM_-defined C++
as its input. But it is a lex/yacc/etc-variant which is so friendly
with C++ that it has become one with C++.

  I have never used Prop for anything. I admire its multiparadigm
philosophy enough to read about it and ponder it. The author of Prop
is now pursuing other topics. Prop's source code has been enterred
into the public domain, as I understand it (but I could be
misinterpreting, so check with the author: Allen Leung).

  ARM = Ellis & Stroustrup's _Annotated C++ Reference Manual_

  Prop should not be confused with GNU's prep which is a vintage
(1980s, if I remember correctly) alternative to BSD's flex. Before
bison & flex were cool, bison & prep were the open-source/GPL thing to
have for C as a superior alternative to System V UNIX's yacc & lex.
For some reason GNU abandoned development of prep and adopted BSD's
flex.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk