<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>

<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage 2.0">
<title>See Also</title>
</head>

<body bgcolor="#FFFFFF">

<table border="0" width="100%">
    <tr>
        <td><font size="6"><strong>See Also</strong></font></td>
        <td align="right"><a href="limitations.html"><img
        src="../image/previous.gif" alt="Previous" border="0"
        width="40" height="40"></a><a href="index.html"><img
        src="../image/next.gif" alt="Next" border="0" width="40"
        height="40"></a></td>
    </tr>
</table>

<hr size="1">

<h2>Bibliographical References</h2>

<table border="0" cellpadding="5">
    <tr>
        <td valign="top"><img src="../image/book/bison.gif"
        align="top" border="1" width="80" height="100"></td>
        <td valign="top"><a
        href="http://www.gnu.org/software/bison/manual/"><em><strong>The
        Bison Manual</strong></em></a>, by C. Donnelly and R.
        Stallman. <a href="http://www.fsf.org">Free
        Software Foundation</a>, 1995.<br>
        This is the definitive reference on <em>bison</em> and is
        part of the <em>bison</em> distribution as the file <em>bison.textinfo</em>.
        The manual includes both tutorial and reference sections
        and is of great help for novice and experienced
        programmers. The documentation of <em>geyacc</em> is
        based on this manual.</td>
    </tr>
    <tr>
        <td valign="top"><img src="../image/book/lex_yacc.gif"
        align="top" border="1" width="80" height="100"></td>
        <td valign="top"><a
        href="http://www.oreilly.com/catalog/lex/"><em><strong>Lex
        &amp; Yacc</strong></em></a>, second edition, by J. R.
        Levine, T. Mason, D. Brown. <a href="http://www.oreilly.com/">O'Reilly
        &amp; Associates, Inc.</a>, 1992. ISBN 1-56592-000-7.<br>
        This book is both a reference manual for <em>lex</em> and
        <em>yacc</em> with a thorough description of the various
        flavors of these tools, and a tutorial with well-written
        examples explained in details.</td>
    </tr>
    <tr>
        <td valign="top"><img src="../image/book/compilers.gif"
        align="top" border="1" width="80" height="100"></td>
        <td valign="top"><a
        href="http://www.amazon.com/exec/obidos/ASIN/0201100886/104-0124030-2507123"><em><strong>Compilers:
        Principles, Techniques, and Tools</strong></em></a>, by
        A. V. Aho, R. Sethi, J. D. Ullman. <a
        href="http://www.aw.com/cseng">Addison-Wesley</a>, 1986.
        ISBN 0-201-10088-6.<br>
        The classic compiler text, also known as the <em>Dragon
        Book</em> because of its cover. It includes detailed
        discussions of the theory behind syntax analysis along
        with sketches of possible implementations (see chapter 4,
        page 159).</td>
    </tr>
    <tr>
        <td valign="top"><img
        src="../image/book/compiler_design.gif" align="top"
        border="1" width="80" height="100"></td>
        <td valign="top"><a
        href="http://www.amazon.com/exec/obidos/ASIN/0201422905/104-0124030-2507123l/104-9545289-7922301"><em><strong>Compiler
        Design</strong></em></a>, by R. Wilhelm, D. Maurer. <a
        href="http://www.aw.com/cseng">Addison-Wesley</a>, 1995.
        ISBN 0-201-42290-5.<br>
        This book provides a comprehensive, modern approach to
        the design and construction of compilers, with a chapter
        devoted to syntax analysis (see chapter 8, page 265).</td>
    </tr>
</table>

<h2>Related Resources</h2>

<p>The <a href="http://www.eiffelzone.com">Eiffel Zone</a> <a
href="http://www.eiffelzone.com/esd/index.html">Software Directory</a> contains
links to many Eiffel libraries sorted by category. Also of
interest is the <a
href="http://www.cetus-links.org/oo_eiffel.html">Cetus Links
Eiffel</a> page and its <a
href="http://www.cetus-links.org/oo_eiffel_libraries.html">library
section</a> which provides links to numerous open-source and
commercial Eiffel libraries.</p>

<p><a href="http://www.object-tools.com">Object Tools</a>
developed Eiffel wrappers and support for Eiffel/S that allow <em>Flex</em>
and <em>Bison</em> to be used for the generation of lexical
analyzers and parsers using Eiffel under MS-DOS. This package is
distributed under the GNU <a
href="http://www.fsf.org/licensing/licenses/gpl.html">GPL license</a> and
includes the DOS versions of <em>Flex</em> and <em>Bison</em>.
This package can be <a
href="http://www.eiffelzone.com/esd/flex-ot/index.html">downloaded</a>
from the <a href="http://www.eiffelzone.com">Eiffel Zone</a> <a
href="http://www.eiffelzone.com/esd/index.html">Software Directory</a> page.</p>

<p>Pirmin Kalberer
ported the above package to ISE Eiffel 3. The <em>bison</em>
distribution can be downloaded from Pirmin's <a
href="http://eiffelzone.com/esd/bison-pk/index.html">Bison for
Eiffel</a> page.</p>

<p><a href="http://www.eiffel.com">ISE</a>'s <a
href="http://www.eiffel.com/products/parse.html"><em>EiffelParse</em></a>
library provides a set of object-oriented mechanisms for parsing,
based on simple principles allowing a direct mapping from a
BNF-like syntax specification to Eiffel classes. However this
library is cumbersome to use since one has to write an Eiffel
class per syntactic construct. This can be solved by using <em>YOOCC</em>
to generate these classes automatically. Similar classes are also
provided in <a href="http://www.halstenbach.com">Halstenbach</a>'s 
<em>iss-baselib</em> library.</p>

<p><a href="http://eiffelzone.com/esd/yoocc/index.html"><em>YOOCC</em></a>
(Yes! An Object-Oriented Compiler Compiler) provides a Compiler
Compiler written entirely in Eiffel that utilises an extended
parse library which evolved from the ISE <em>EiffelParse</em>
library. <em>YOOCC</em> presents the programmer with a tool for
automatically generating a processor framework (Eiffel source
code) from a grammar. The approach reconciles object-oriented
principles, processor generation, and an object-oriented language
(Eiffel). <em>YOOCC</em> has been developed by Jon Avotins and
Glenn Maughan from <a href="http://www.sd.monash.edu.au/">Monash
University</a>, Melbourne, Australia. It works with ISE Eiffel
3.2.8 and can be <a
href="http://eiffelzone.com/esd/yoocc/index.html">downloaded</a>
from the <a href="http://www.eiffelzone.com">Eiffel Zone</a> <a
href="http://www.eiffelzone.com/esd/index.html">Software Directory</a> page.</p>

<p><a href="http://eiffelzone.com/esd/trooper/index.html"><em>TROOPER</em></a>
(Truly Reusable OO Parser for Eiffel Re-engineering) encapsulates
the complexities of lexical analysis and parsing of Eiffel texts
using an extended parse library which evolved from the ISE <em>EiffelParse</em>
library. It provides a complete working parser written entirely
in Eiffel. Semantic actions can be added to the parsing
constructs to develop different tools such as pretty-printers,
compilers, etc. <em>TROOPER</em> has been developed by Jon Avotins and
Glenn Maughan from <a href="http://www.sd.monash.edu.au/">Monash
University</a>, Melbourne, Australia. It works with ISE Eiffel
3.2.8 and can be <a
href="http://eiffelzone.com/esd/trooper/index.html">downloaded</a>
from the <a href="http://www.eiffelzone.com">Eiffel Zone</a> <a
href="http://www.eiffelzone.com/esd/index.html">Software Directory</a> page.</p>

<p><em>Epg: an Eiffel Parser Generator</em> is a wrapper and
supporting classes to use standard Unix tools to generate Eiffel
parsers. <em>Epg</em> is a freeware developed by Christoph
Zenger. This package requires <em>lex</em>/<em>yacc</em>/<em>sed</em>
etc. and works with Eiffel/S 1.3. More information about <a
href="http://www.eiffelzone.com/esd/epg/index.html"><em>epg</em></a>,
including downloading instructions, can be found at the <a
href="http://www.eiffelzone.com">Eiffel Zone</a> <a
href="http://www.eiffelzone.com/esd/index.html">Software Directory</a> page.</p>

<h2>Acknowledgements</h2>

<p><em>Geyacc</em> has been written in Eiffel after
reverse-engineering the <em>GNU Bison</em> utility (version 1.25)
distributed by the <a href="http://www.fsf.org/">Free
Software Foundation</a>. The C source code of the <em>Bison</em>
utility can be downloaded from <a
href="ftp://prep.ai.mit.edu/pub/gnu"><tt>ftp://prep.ai.mit.edu/pub/gnu</tt></a>.</p>

<hr size="1">

<table border="0" width="100%">
    <tr>
        <td><address>
            <font size="2"><b>Copyright © 1999-2005</b></font><font
            size="1"><b>, </b></font><font size="2"><strong>Eric
            Bezault</strong></font><strong> </strong><font
            size="2"><br>
            <strong>mailto:</strong></font><a
            href="mailto:ericb@gobosoft.com"><font size="2">ericb@gobosoft.com</font></a><font
            size="2"><br>
            <strong>http:</strong></font><a
            href="http://www.gobosoft.com"><font size="2">//www.gobosoft.com</font></a><font
            size="2"><br>
            <strong>Last Updated:</strong> 23 February 2005</font><br>
            <!--webbot bot="PurpleText"
            preview="
$Date$ 
$Revision$"
            --> 
        </address>
        </td>
        <td align="right" valign="top"><a
        href="http://www.gobosoft.com"><img
        src="../image/home.gif" alt="Home" border="0" width="40"
        height="40"></a><a href="index.html"><img
        src="../image/toc.gif" alt="Toc" border="0" width="40"
        height="40"></a><a href="limitations.html"><img
        src="../image/previous.gif" alt="Previous" border="0"
        width="40" height="40"></a><a href="index.html"><img
        src="../image/next.gif" alt="Next" border="0" width="40"
        height="40"></a></td>
    </tr>
</table>
</body>
</html>
