Mercurial > ~dholland > hg > ag > index.cgi
diff doc/misc/html/examples/index.html @ 0:13d2b8934445
Import AnaGram (near-)release tree into Mercurial.
author | David A. Holland |
---|---|
date | Sat, 22 Dec 2007 17:52:45 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/misc/html/examples/index.html Sat Dec 22 17:52:45 2007 -0500 @@ -0,0 +1,192 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<TITLE>AnaGram Examples</TITLE> +</HEAD> + + +<BODY BGCOLOR="#ffffff" BACKGROUND="tilbl6h.gif" + TEXT="#000000" LINK="#0033CC" + VLINK="#CC0033" ALINK="#CC0099"> + +<P> + +<IMG ALIGN="right" SRC="../images/agrsl6c.gif" ALT="AnaGram" + WIDTH=124 HEIGHT=30 > +<BR CLEAR="all"> +Back to <A HREF="../index.html">Index</A> +<P> +<IMG ALIGN="bottom" SRC="../images/rbline6j.gif" ALT="----------------------" + WIDTH=1010 HEIGHT=2 > + +<BR CLEAR="all"> + +<H1>AnaGram Examples</H1> + +<IMG ALIGN="bottom" SRC="../images/rbline6j.gif" ALT="----------------------" + WIDTH=1010 HEIGHT=2 > +<P> +<BR> + +<H2>Introduction</H2> +<P> + The <tt>examples</tt> directory contains a number of subdirectories, + each of which contains one or more examples of the use of + AnaGram. These examples vary from trivial to moderately + complex. +<P> + The purpose of these examples is twofold: to provide a quick + introduction to AnaGram, and to suggest methods of using + AnaGram to solve problems. The examples are open source, with a + zlib-type license, and thus provided as is, + with no guarantees of any sort. You may freely copy + portions of these examples for your own use. However, in + doing so, you take on the responsibility of verifying their + performance and reliability. +<P> + Some of the examples provided use C; others use C++. Some + of the C++ examples make use of an old + <A HREF="../oldclasslib/index.html">class library</A>, found + in the <tt>oldclasslib</tt> directory of the AnaGram + distribution. This class library is deprecated and is + expected to be removed in a future release of AnaGram, once + the examples have been migrated away from it. It too is open + source; however, using it is not recommended. +<P> + The <tt>examples</tt> directory also contains the file + <tt>sbb-doc.txt</tt>. + This file contains productions and explanations for a number of + <A HREF="sbb-doc.html">syntactic building blocks</A>. These + are commonly used + syntactic constructs which appear over and over in AnaGram + programs. You may prefer to read this material in its HTML + form or as the + Syntactic Building Blocks appendix of the AnaGram User's Guide, but + <tt>sbb-doc.txt</tt> is easier to use if you wish to copy + parts of it + into your own grammars. +<P> +<BR> + +<H2>Getting Started with the Examples</H2> + To get started with AnaGram examples, you should begin by looking + at <tt>ffcalc</tt>, <A HREF=ffcex.html>annotated</A> in the + <A HREF=../start.html>Getting Started</A> document. The + source file is found in the <tt>examples/ffcalc</tt> directory. +<P> + If you are already quite familiar with syntax directed + parsing, you may need to do little more than glance at + <tt>ffcalc</tt> to begin using AnaGram effectively. +<P> + Otherwise, you should look at the examples in <tt>hw</tt> + and <tt>fc</tt>, and + read their documentation. These examples provide a tutorial + introduction to AnaGram through a graded sequence of + examples. +<P> + The remaining examples are provided largely as illustrations + of how to use AnaGram to deal with particular, practical + problems. +<P> + You can use this page as a starting point to navigate through + the hypertext documentation for the examples and class + libraries. +<P> + These examples only begin to illustrate the power of + AnaGram. Do not overlook the AnaGram User's Guide. It will + show you even more things you can do with AnaGram. +<P> +<BR> + + +<H2><A HREF="hw.html">HW</A></H2> + + The <tt>hw</tt> directory contains two versions of the traditional + "Hello, world!" program. One version, <tt>hw1.syn</tt>, uses C for + its reduction procedure. The other, <tt>hw2.syn</tt>, uses C++. + Both programs print "Hello, world!" These programs are + utterly trivial, but useful for getting started with the + mechanics of using AnaGram. +<P> +<BR> + +<H2><A HREF="ffcalc.html">FFCALC</A> +or <A HREF=ffcex.html>annotated version</A></H2> + A four function calculator is a traditional example + for parser generators. The <tt>ffcalc</tt> directory contains two + four function calculator examples, <tt>ffcalc.syn</tt> and + <tt>ffcalcx.syn</tt>. <tt>ffcalc.syn</tt> implements + expression syntax + using the conventional approach. <tt>ffcalcx.syn</tt> is + functionally equivalent, but uses a + deliberately ambiguous grammar with precedence declarations + to resolve the conflicts. +<P> +<BR> + +<H2><A HREF="fc.html">FC</A></H2> + +<!-- "graded"? --> + The <tt>fc</tt> directory contains six graded Fahrenheit to Celsius + conversion programs. These programs introduce a number of + the most important features of AnaGram. The document is + designed to be a tutorial, to lead you into using AnaGram by + simple steps. It includes an example of how to find and + fix the conflicts in an ambiguous grammar. All of the <tt>fc</tt> + examples use C. +<P> +<BR> + +<H2><A HREF="rcalc.html">RCALC</A></H2> + <tt>rcalc.syn</tt> is a simple four function desk calculator that + takes its input and displays its output using Roman + numerals. <tt>rcalc</tt> uses C. +<P> +<BR> + +<H2><A HREF="dsl.html">DSL</A></H2> + <tt>dsl.syn</tt> is a DOS script language, used in the past to + create an install program for AnaGram. It is now quite obsolete + but does illustrate some features of AnaGram. <tt>dsl</tt> is + largely composed of grammar elements copied from other + programs. <tt>dsl</tt> uses C++. +<P> +<BR> + +<H2><A HREF="mpp/index.html">MPP</A></H2> + The <tt>mpp</tt> directory contains a complete, working C macro + preprocessor together with your choice of two C grammars. + The preprocessor uses four distinct AnaGram grammars and + illustrates many of the ways you can interface parsers to + other modules. <tt>mpp</tt> uses C++. + <!-- + For an overview of the macro + preprocessor and how it works, read the <tt>README</tt> file + in <tt>mpp</tt>. + --> + Each grammar and each support module is separately described + in its own documentation file. +</P> + +<BR> + +<IMG ALIGN="bottom" SRC="../images/rbline6j.gif" ALT="----------------------" + WIDTH=1010 HEIGHT=2 > +<P> +<IMG ALIGN="right" SRC="../images/pslrb6d.gif" ALT="Parsifal Software" + WIDTH=181 HEIGHT=25> +<BR CLEAR="right"> +<P> + +Back to <A HREF="../index.html">Index</A> +<P> +<ADDRESS><FONT SIZE="-1"> + AnaGram parser generator - examples<BR> + AnaGram Examples<BR> + Copyright © 1993-1999, Parsifal Software. <BR> + All Rights Reserved.<BR> +</FONT></ADDRESS> + +</BODY> +</HTML> +