www-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

www/software/grg .symlinks grg.README grg.html ...


From: Karl Berry
Subject: www/software/grg .symlinks grg.README grg.html ...
Date: Wed, 21 Jun 2006 19:00:36 +0000

CVSROOT:        /web/www
Module name:    www
Changes by:     Karl Berry <karl>       06/06/21 19:00:35

Removed files:
        software/grg   : .symlinks grg.README grg.html grg.tgz 
        software/grg/doc/grg: README grg_1.html grg_10.html grg_100.html 
                              grg_101.html grg_102.html grg_103.html 
                              grg_104.html grg_105.html grg_106.html 
                              grg_107.html grg_108.html grg_11.html 
                              grg_12.html grg_13.html grg_14.html 
                              grg_15.html grg_16.html grg_17.html 
                              grg_18.html grg_19.html grg_2.html 
                              grg_20.html grg_21.html grg_22.html 
                              grg_23.html grg_24.html grg_25.html 
                              grg_26.html grg_27.html grg_28.html 
                              grg_29.html grg_3.html grg_30.html 
                              grg_31.html grg_32.html grg_33.html 
                              grg_34.html grg_35.html grg_36.html 
                              grg_37.html grg_38.html grg_39.html 
                              grg_4.html grg_40.html grg_41.html 
                              grg_42.html grg_43.html grg_44.html 
                              grg_45.html grg_46.html grg_47.html 
                              grg_48.html grg_49.html grg_5.html 
                              grg_50.html grg_51.html grg_52.html 
                              grg_53.html grg_54.html grg_55.html 
                              grg_56.html grg_57.html grg_58.html 
                              grg_59.html grg_6.html grg_60.html 
                              grg_61.html grg_62.html grg_63.html 
                              grg_64.html grg_65.html grg_66.html 
                              grg_67.html grg_68.html grg_69.html 
                              grg_7.html grg_70.html grg_71.html 
                              grg_72.html grg_73.html grg_74.html 
                              grg_75.html grg_76.html grg_77.html 
                              grg_78.html grg_79.html grg_8.html 
                              grg_80.html grg_81.html grg_82.html 
                              grg_83.html grg_84.html grg_85.html 
                              grg_86.html grg_87.html grg_88.html 
                              grg_89.html grg_9.html grg_90.html 
                              grg_91.html grg_92.html grg_93.html 
                              grg_94.html grg_95.html grg_96.html 
                              grg_97.html grg_98.html grg_99.html 
                              grg_toc.html 

Log message:
        redirect to current gurgle page, delete all old files

CVSWeb URLs:
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/.symlinks?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/grg.README?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/grg.html?cvsroot=www&r1=1.3&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/grg.tgz?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/README?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_1.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_10.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_100.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_101.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_102.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_103.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_104.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_105.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_106.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_107.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_108.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_11.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_12.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_13.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_14.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_15.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_16.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_17.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_18.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_19.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_2.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_20.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_21.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_22.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_23.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_24.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_25.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_26.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_27.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_28.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_29.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_3.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_30.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_31.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_32.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_33.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_34.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_35.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_36.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_37.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_38.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_39.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_4.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_40.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_41.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_42.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_43.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_44.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_45.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_46.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_47.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_48.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_49.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_5.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_50.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_51.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_52.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_53.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_54.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_55.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_56.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_57.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_58.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_59.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_6.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_60.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_61.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_62.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_63.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_64.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_65.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_66.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_67.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_68.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_69.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_7.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_70.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_71.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_72.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_73.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_74.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_75.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_76.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_77.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_78.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_79.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_8.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_80.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_81.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_82.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_83.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_84.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_85.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_86.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_87.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_88.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_89.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_9.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_90.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_91.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_92.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_93.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_94.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_95.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_96.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_97.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_98.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_99.html?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/grg/doc/grg/grg_toc.html?cvsroot=www&r1=1.1&r2=0

Patches:
Index: .symlinks
===================================================================
RCS file: .symlinks
diff -N .symlinks
--- .symlinks   28 Feb 2001 00:18:42 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,2 +0,0 @@
-grg.html index.html
-grg.html grg.es.html

Index: grg.README
===================================================================
RCS file: grg.README
diff -N grg.README
--- grg.README  13 Feb 2001 01:01:20 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,145 +0,0 @@
-GRG - GNU Report Generator
-==========================
-
-This is the README for GRG (pronounced jee-arjee), the GNU Report Generator.
-If anyone can suggest a better name (humorous) please let me know (GROG, my
-first choice, is already used for another program).
-
-The GRG program reads record and field information from a dBase3+ file,
-delimited ascii text file or a SQL query to a RDBMS and produces a report
-listing. The program was loosely designed to produce TeX/LaTeX formatted
-output, but plain ascii text, troff, PostScript, HTML or any other kind
-of ascii based output format can be produced just as easily.
-
-The GRG program is ideal for generating large bodies of text where various
-parts of the text are substituted with information from a database.
-
-The formatting process of GRG is controlled by a definition file which holds
-the report, page, and record layouts, what fields to display, and where. Other
-useful functions supported in the definition file include sorting, filtering,
-and data manipulation of records in the databases. Below is a summary of the
-main features that can be used in the definition file.
-
-  *   Multiple input databases
-  *   Support for ASCII text, dBase3+, CA-Ingres and GNU SQL Server databases
-  *   Sorting of database records
-  *   Automatic banner placement at the start of each sorted group
-  *   Filters using regular expressions or GRG equates
-  *   Five main text bodies - header, footer, record, 1st page, and Nth page
-  *   User defined macros and text bodies
-  *   User defined equations on field contents, including conditionals
-  *   User configurable input parsing patterns (default is like awk)
-  *   Include files
-  *   Environment variables
-  *   System variables
-  *   General purpose processing language
-  *   Optional GUILE support
-
-Getting it
-----------
-
-The current release of GRG can be got from:
-
-  ftp://ftp.dai.ed.ac.uk/pub/daidb/grg/grg-1.43.tar.gz
-
-or goto the home page at:
-
-  http://www.dai.ed.ac.uk/daidb/grg/
-
-To prepare do:
-
-  gunzip -c grg-1.43.tar.gz | tar xvf -
-  cd grg-1.43
-
-Default Installation
---------------------
-
-To compile and install the default version of GRG with support for delimited
-text file, dBase3+ (.dbf) and GNU SQL Server databases do the following:
-
-  ./configure
-  cd src
-  gsqlc gnusql.sc
-  cd ..
-  make
-  make install
-
-The "gsqlc" command is part of the GNU SQL Server distribution and it is used
-to convert "src/gnusql.ec" into "src/gnusql.c". The "libgss.a" library file
-(also part of the GNU SQL Server distribution) must be visible.
-
-If you do not want GNU SQL Server support, want support for the Ingres RDBMS
-or want support for GUILE see the Custom Installation section below.
-
-Documentation
--------------
-
-The user manual is available as:
-
-  PostScript:        doc/grg.ps
-  HTML:              doc/html and doc/html/grg.html
-  DVI:               doc/grg.dvi
-  Info:              doc/grg.info*
-  Texinfo (source):  doc/grg.texi
-
-or see the home page online documentation at:
-
-  http://www.dai.ed.ac.uk/daidb/grg/doc/
-
-Custom Installation
--------------------
-
-To configure GRG without GNU SQL Server support do the following:
-
-  ./configure --disable-gnusql
-
-To configure GRG with support for the CA-Ingres RDBMS do the following:
-
-  ./configure --enable-ingres
-  cd src
-  esqlc ingres.sc
-  cd ..
-
-The "esqlc" command is part of the Ingres distribution and it is used to
-convert "src/ingres.sc" into "src/ingres.c". The "libingres.a" library file
-(also part of the Ingres distribution) must be visible. The "ingres.sc" file
-has dependencies that cannot be determined until it has been converted into
-the "ingres.c" file (a site specific process). This may require some
-post-configuration tinkering.
-
-To configure GRG with support for GUILE equate processing do the following:
-
-  ./configure --enable-guile
-
-The "libguile.a" (part of the GUILE distribution) must be visible (possibly
-in LD_LIBRARY_PATH) as must the "guile/libguile" include files. To run with
-GUILE you will need the directory where the "libguile.so.2" file is in your
-LD_LIBARAY_PATH (if not setup by the system to be in a default place).
-
-To compile and install the configured version of GRG do the following:
-
-  make
-  make install
-
-The --enable-guile and the --enable-ingres options can both be used together
-to configure GRG with support for GUILE equate processing and the CA-Ingres
-RDBMS. However, only one RDBMS type can be supported.
-
-Supported Platforms
--------------------
-
-GRG has been most extensively tested under SunOS 5.4 and 5.5. GRG without RDBMS
-support compiles and runs under HP-UX B.10.20 and Linux 1.3.95 (Slakware) but
-has not been tested. The compilation was done with GCC in all cases. The Sun
-compiler is believed to work although it may throw warning messages. If you
-want to rebuild scanner.c from scanner.l you will need lex (flex is not
-supported). There is no particular reason why GRG should not work on other
-untested platforms and versions of the above OSes.
-
-The program has been running with Ingres Solaris 6.4/05. No other version has
-been tested. The program has been compiled with GNU SQL Server 0.7b5.3 but not
-tested. The program has been compiled with GUILE 1.2 but not tested.
-
-For RDBMS support you need some libraries and include files for Ingres or GNU
-SQL Server as they are not included in the distribution). Similarly for GUILE
-support.

Index: grg.html
===================================================================
RCS file: grg.html
diff -N grg.html
--- grg.html    23 Feb 2003 09:31:55 -0000      1.3
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,84 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<HTML>
-<HEAD>
-<TITLE>GRG - GNU Report Generator - GNU Project - Free Software Foundation 
(FSF)</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-<META NAME="keywords" CONTENT="grg">
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<H3>GRG - GNU Report Generator</H3>
-
-<A HREF="/graphics/agnuhead.html"><IMG SRC="/graphics/gnu-head-sm.jpg"
-   ALT=" [image of the Head of a GNU] "
-   WIDTH="129" HEIGHT="122"></A>
-
-<P>
-
-<!-- This was all caps and single spaced, and people did not
-     actually read it.  I hope now it is easer to read -- rms.  -->
-
-<P>
-The GRG program reads record and field information from a dBase3+ file,
-delimited ascii text file or a SQL query to a RDBMS and produces a report
-listing. The program was loosely designed to produce TeX/LaTeX formatted
-output, but plain ascii text, troff, PostScript, HTML or any other kind
-of ascii based output format can be produced just as easily.
-<P>
-The GRG program is ideal for generating large bodies of text where various
-parts of the text are substituted with information from a database.
-<P>
-The formatting process of GRG is controlled by a definition file which holds
-the report, page, and record layouts, what fields to display, and where. Other
-useful functions supported in the definition file include sorting, filtering,
-and data manipulation of records in the databases. Below is a summary of the
-main features that can be used in the definition file.
-<P>
-<OL>
-  <LI>Multiple input databases</LI>
-  <LI>Support for ASCII text, dBase3+, CA-Ingres and GNU SQL Server 
databases</LI>
-  <LI>Sorting of database records</LI>
-  <LI>Automatic banner placement at the start of each sorted group</LI>
-  <LI>Filters using regular expressions or GRG equates</LI>
-  <LI>Five main text bodies - header, footer, record, 1st page, and Nth 
page</LI>
-  <LI>User defined macros and text bodies</LI>
-  <LI>User defined equations on field contents, including conditionals</LI>
-  <LI>User configurable input parsing patterns (default is like awk)</LI>
-  <LI>Include files</LI>
-  <LI>Environment variables</LI>
-  <LI>System variables</LI>
-  <LI>General purpose processing language</LI>
-  <LI>Optional GUILE support</LI>
-</OL>
-<P>
-<UL>
-  <LI><A HREF="http://www.dai.ed.ac.uk/homes/timc/gurgle/";>Download Latest 
Version from http://www.dai.ed.ac.uk/homes/timc/gurgle/ </A></LI>
-  <LI><A HREF="/software/grg/grg.README">README</A></LI>
-  <LI><A HREF="/software/grg/doc/grg/index.html">User Manual</A></LI>
-</UL>
-<HR>
-Return to <A HREF="/home.html">GNU's home page</A>.
-<P>
-Please send FSF &amp; GNU inquiries &amp; questions to
-<A HREF="mailto:address@hidden";><EM>address@hidden</EM></A>.
-There are also <A HREF="/home.html#ContactInfo">other ways to
-contact</A> the FSF.
-<P>
-Please send comments on these web pages to
-<A HREF="mailto:address@hidden";><EM>address@hidden</EM></A>
-send other questions to
-<A HREF="mailto:address@hidden";><EM>address@hidden</EM></A>.
-<P>
-Copyright (C) 1997, 1998 Free Software Foundation, Inc.,
-59 Temple Place - Suite 330, Boston, MA  02111,  USA
-<P>
-Verbatim copying and distribution of this entire article is
-permitted in any medium, provided this notice is preserved.
-<P>
-Updated:
-
-<!-- hhmts start -->
-15 Oct 2000 neel
-<!-- hhmts end -->
-<HR>
-</BODY>
-</HTML>

Index: grg.tgz
===================================================================
RCS file: grg.tgz
diff -N grg.tgz
Binary files /tmp/cvsaWVJzf and /dev/null differ

Index: doc/grg/README
===================================================================
RCS file: doc/grg/README
diff -N doc/grg/README
--- doc/grg/README      13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,145 +0,0 @@
-GRG - GNU Report Generator
-==========================
-
-This is the README for GRG (pronounced jee-arjee), the GNU Report Generator.
-If anyone can suggest a better name (humorous) please let me know (GROG, my
-first choice, is already used for another program).
-
-The GRG program reads record and field information from a dBase3+ file,
-delimited ascii text file or a SQL query to a RDBMS and produces a report
-listing. The program was loosely designed to produce TeX/LaTeX formatted
-output, but plain ascii text, troff, PostScript, HTML or any other kind
-of ascii based output format can be produced just as easily.
-
-The GRG program is ideal for generating large bodies of text where various
-parts of the text are substituted with information from a database.
-
-The formatting process of GRG is controlled by a definition file which holds
-the report, page, and record layouts, what fields to display, and where. Other
-useful functions supported in the definition file include sorting, filtering,
-and data manipulation of records in the databases. Below is a summary of the
-main features that can be used in the definition file.
-
-  *   Multiple input databases
-  *   Support for ASCII text, dBase3+, CA-Ingres and GNU SQL Server databases
-  *   Sorting of database records
-  *   Automatic banner placement at the start of each sorted group
-  *   Filters using regular expressions or GRG equates
-  *   Five main text bodies - header, footer, record, 1st page, and Nth page
-  *   User defined macros and text bodies
-  *   User defined equations on field contents, including conditionals
-  *   User configurable input parsing patterns (default is like awk)
-  *   Include files
-  *   Environment variables
-  *   System variables
-  *   General purpose processing language
-  *   Optional GUILE support
-
-Getting it
-----------
-
-The current release of GRG can be got from:
-
-  ftp://ftp.dai.ed.ac.uk/pub/daidb/grg/grg-1.43.tar.gz
-
-or goto the home page at:
-
-  http://www.dai.ed.ac.uk/daidb/grg/
-
-To prepare do:
-
-  gunzip -c grg-1.43.tar.gz | tar xvf -
-  cd grg-1.43
-
-Default Installation
---------------------
-
-To compile and install the default version of GRG with support for delimited
-text file, dBase3+ (.dbf) and GNU SQL Server databases do the following:
-
-  ./configure
-  cd src
-  gsqlc gnusql.sc
-  cd ..
-  make
-  make install
-
-The "gsqlc" command is part of the GNU SQL Server distribution and it is used
-to convert "src/gnusql.ec" into "src/gnusql.c". The "libgss.a" library file
-(also part of the GNU SQL Server distribution) must be visible.
-
-If you do not want GNU SQL Server support, want support for the Ingres RDBMS
-or want support for GUILE see the Custom Installation section below.
-
-Documentation
--------------
-
-The user manual is available as:
-
-  PostScript:        doc/grg.ps
-  HTML:              doc/html and doc/html/grg.html
-  DVI:               doc/grg.dvi
-  Info:              doc/grg.info*
-  Texinfo (source):  doc/grg.texi
-
-or see the home page online documentation at:
-
-  http://www.dai.ed.ac.uk/daidb/grg/doc/
-
-Custom Installation
--------------------
-
-To configure GRG without GNU SQL Server support do the following:
-
-  ./configure --disable-gnusql
-
-To configure GRG with support for the CA-Ingres RDBMS do the following:
-
-  ./configure --enable-ingres
-  cd src
-  esqlc ingres.sc
-  cd ..
-
-The "esqlc" command is part of the Ingres distribution and it is used to
-convert "src/ingres.sc" into "src/ingres.c". The "libingres.a" library file
-(also part of the Ingres distribution) must be visible. The "ingres.sc" file
-has dependencies that cannot be determined until it has been converted into
-the "ingres.c" file (a site specific process). This may require some
-post-configuration tinkering.
-
-To configure GRG with support for GUILE equate processing do the following:
-
-  ./configure --enable-guile
-
-The "libguile.a" (part of the GUILE distribution) must be visible (possibly
-in LD_LIBRARY_PATH) as must the "guile/libguile" include files. To run with
-GUILE you will need the directory where the "libguile.so.2" file is in your
-LD_LIBARAY_PATH (if not setup by the system to be in a default place).
-
-To compile and install the configured version of GRG do the following:
-
-  make
-  make install
-
-The --enable-guile and the --enable-ingres options can both be used together
-to configure GRG with support for GUILE equate processing and the CA-Ingres
-RDBMS. However, only one RDBMS type can be supported.
-
-Supported Platforms
--------------------
-
-GRG has been most extensively tested under SunOS 5.4 and 5.5. GRG without RDBMS
-support compiles and runs under HP-UX B.10.20 and Linux 1.3.95 (Slakware) but
-has not been tested. The compilation was done with GCC in all cases. The Sun
-compiler is believed to work although it may throw warning messages. If you
-want to rebuild scanner.c from scanner.l you will need lex (flex is not
-supported). There is no particular reason why GRG should not work on other
-untested platforms and versions of the above OSes.
-
-The program has been running with Ingres Solaris 6.4/05. No other version has
-been tested. The program has been compiled with GNU SQL Server 0.7b5.3 but not
-tested. The program has been compiled with GUILE 1.2 but not tested.
-
-For RDBMS support you need some libraries and include files for Ingres or GNU
-SQL Server as they are not included in the distribution). Similarly for GUILE
-support.

Index: doc/grg/grg_1.html
===================================================================
RCS file: doc/grg/grg_1.html
diff -N doc/grg/grg_1.html
--- doc/grg/grg_1.html  13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,77 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Introduction</TITLE>
-</HEAD>
-<BODY>
-Go to the first, previous, <A HREF="grg_2.html">next</A>, <A 
HREF="grg_108.html">last</A> section, <A HREF="grg_toc.html">table of 
contents</A>.
-<P><HR><P>
-
-
-<H2><A NAME="SEC1" HREF="grg_toc.html#TOC1">Introduction</A></H2>
-
-<P>
-<A NAME="IDX1"></A>
-<A NAME="IDX2"></A>
-<A NAME="IDX3"></A>
-The <STRONG>grg</STRONG> program reads record and field information from a 
<STRONG>dBase3+</STRONG>
-file, delimited ascii text file or a SQL query to a RDBMS and produces a report
-listing. The program was loosely designed to produce <EM>TeX/LaTeX</EM> 
formatted
-output, but plain ascii text, <EM>troff</EM>, <EM>PostScript</EM>, HTML or any
-other kind of ascii based output format can be produced just as easily.
-The <STRONG>grg</STRONG> program is ideal for generating large bodies of text 
where
-various parts of the text are substituted with information from a database.
-
-</P>
-<P>
-The formatting process of <STRONG>grg</STRONG> is controlled by the GRG
-file. This defines the report, page, and record layouts, what fields to
-display, and where. Other useful facilities the GRG file
-provides include sorting, filtering, and data manipulation of records in the
-database. Below is a summary of the main features that can be used in a
-GRG file.
-
-</P>
-
-<UL>
-<LI>
-
-Sorting of database records
-<LI>
-
-Automatic banner placement at the start of each sorted group.
-<LI>
-
-Filtering using regular expressions.
-<LI>
-
-Five main text bodies -- header, footer, record, 1st page, and Nth page.
-<LI>
-
-User defined macros and text bodies.
-<LI>
-
-User defined equations on field contents, including conditional expressions.
-<LI>
-
-User configurable input parsing patterns (default is like <EM>awk</EM>).
-<LI>
-
-Include files.
-<LI>
-
-Environment variables.
-<LI>
-
-System variables.
-<LI>
-
-General purpose processing language.
-</UL>
-
-<P><HR><P>
-Go to the first, previous, <A HREF="grg_2.html">next</A>, <A 
HREF="grg_108.html">last</A> section, <A HREF="grg_toc.html">table of 
contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_10.html
===================================================================
RCS file: doc/grg/grg_10.html
diff -N doc/grg/grg_10.html
--- doc/grg/grg_10.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,36 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - DELIM</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_9.html">previous</A>, 
<A HREF="grg_11.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC10" HREF="grg_toc.html#TOC10">DELIM</A></H4>
-
-<P>
-<A NAME="IDX29"></A>
-<A NAME="IDX30"></A>
-<A NAME="IDX31"></A>
-<A NAME="IDX32"></A>
-The <STRONG>DELIM</STRONG> variable takes an argument each character of which 
is the
-value to use as a field delimiter in a database file which is delimited ascii
-text. The default is space and tab for <EM>awk</EM> style processing. Actually
-sets the contents of the <CODE>&#60;del&#62;</CODE> token. The example program 
fragment below sets
-the value to <CODE>~</CODE>. the first character of the <STRONG>DELIM</STRONG> 
value is also used as
-a field separator in the default header and record text bodies.
-
-</P>
-
-<PRE>
-%%DEFINE DELIM ~
-</PRE>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_9.html">previous</A>, 
<A HREF="grg_11.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_100.html
===================================================================
RCS file: doc/grg/grg_100.html
diff -N doc/grg/grg_100.html
--- doc/grg/grg_100.html        13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,25 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Miscellaneous</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_99.html">previous</A>, 
<A HREF="grg_101.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC100" HREF="grg_toc.html#TOC100">Miscellaneous</A></H3>
-
-<P>
-<A NAME="IDX343"></A>
-For the most part when you load a database from an SQL Query the maximum field
-width of 256 characters is relaxed and any length fields are supported. There
-may be some problems using equate processing with large text fields however.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_99.html">previous</A>, 
<A HREF="grg_101.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_101.html
===================================================================
RCS file: doc/grg/grg_101.html
diff -N doc/grg/grg_101.html
--- doc/grg/grg_101.html        13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,49 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Using GUILE</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_100.html">previous</A>, 
<A HREF="grg_102.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H2><A NAME="SEC101" HREF="grg_toc.html#TOC101">Using GUILE</A></H2>
-
-<P>
-<A NAME="IDX344"></A>
-<A NAME="IDX345"></A>
-<A NAME="IDX346"></A>
-If your version of GRG has been compiled with support for GUILE
-(you will get a banner saying so when you start it up) then you can define
-equates in the scheme language rather than the GRG language. The
-resulting equates can be used in exactly the same way as those defined in the
-native language - they can be called from native language equates and from text
-bodies. They cannot be used where a reversed equate is required. A native
-language equate can pass any number of arguments to the GUILE equate (the
-types of which will be silently mapped) and the GUILE equate can return a
-numeric or string argument to the native language equate. From the GUILE
-side any native language equate can be directly called if it takes no
-arguments or only one argument and if it returns one argument this will be
-returned as the result. There are also some additional functions that can be
-called from the GUILE side defined below. This support is relatively
-untested.
-
-</P>
-<P>
-A scheme equate is defined with the EQGUILE predefined macro. Arguments
-must currently be given as a white space separated list following the name of
-the equate (as seen from the native language side and the GUILE side).
-You should not include the <CODE>define</CODE> construct as this will be 
wrapped
-around automatically (to include the specified arguments). Any 
<CODE>define</CODE>
-commands used within the body of the scheme equate will only be visible from
-the GUILE side.
-
-</P>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_100.html">previous</A>, 
<A HREF="grg_102.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_102.html
===================================================================
RCS file: doc/grg/grg_102.html
diff -N doc/grg/grg_102.html
--- doc/grg/grg_102.html        13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,72 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - GRG Procedures</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_101.html">previous</A>, 
<A HREF="grg_103.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC102" HREF="grg_toc.html#TOC102">GRG Procedures</A></H3>
-
-<P>
-<A NAME="IDX347"></A>
-<A NAME="IDX348"></A>
-<A NAME="IDX349"></A>
-<A NAME="IDX350"></A>
-<A NAME="IDX351"></A>
-<A NAME="IDX352"></A>
-<A NAME="IDX353"></A>
-<A NAME="IDX354"></A>
-<A NAME="IDX355"></A>
-These are functions that can be called from the GUILE side code. They
-allow the GUILE side to read and manipulate GRG system variables
-and read database fields.
-
-</P>
-<P>
-The <CODE>grg_getstrsysvar(s)</CODE> procedure takes a string which is the 
name of
-a string valued system variable and returns its current value, eg. 
<CODE>(display
-grg_getstrsysvar("_eq_extn"))</CODE> to display the value of the 
<CODE>_eq_extn</CODE> variable.
-
-</P>
-<P>
-The <CODE>grg_getnumsysvar(s)</CODE> procedure takes a string which is the 
name of
-a numeric valued system variable and returns its current value, eg. 
<CODE>(display
-grg_getstrsysvar("_eq_verbose"))</CODE> to display the value of the 
<CODE>_eq_verbose</CODE>
-variable.
-
-</P>
-<P>
-The <CODE>grg_putstrsysvar(s,v)</CODE> procedure takes a string which is the 
name of
-a string valued system variable and a string which is the value to assign to
-that variable. It returns the assigned value, eg. <CODE>(display
-grg_putstrsysvar("_eq_extn",".html"))</CODE> to change the value of the file
-extension and to display the change to the user.
-
-</P>
-<P>
-The <CODE>grg_putnumsysvar(s,v)</CODE> procedure takes a string which is the 
name of
-a numeric valued system variable and a number which is the value to assign to
-that variable. It returns the assigned value, eg. <CODE>(display
-grg_putnumsysvar("_eq_verbose",0))</CODE> to reset the value of the verbose 
state.
-
-</P>
-<P>
-The <CODE>grg_getfield(f,r,d)</CODE> procedure takes three arguments: the name 
of
-a field (string), a record (number) from 1 to the number of records, and the
-name of a database (string) to which the field is defined in. It returns the
-value of the given field of the given record in the given database. For
-example, <CODE>(display grg_getfield("NAME",2,"people"))</CODE> would display 
the
-value of the "Name" field of the 2nd record of the "people" database. This is
-the equivalent of the fully dereferenced field mechanism in the native
-language, ie. the above would be <CODE>%people-&#62;NAME[2]</CODE>.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_101.html">previous</A>, 
<A HREF="grg_103.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_103.html
===================================================================
RCS file: doc/grg/grg_103.html
diff -N doc/grg/grg_103.html
--- doc/grg/grg_103.html        13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,717 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Errors</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_102.html">previous</A>, 
<A HREF="grg_104.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H2><A NAME="SEC103" HREF="grg_toc.html#TOC103">Errors</A></H2>
-
-<P>
-<A NAME="IDX356"></A>
-Any error is considered fatal by the preprocessor program. This means it will
-abort immediately. The debug mode (see section <A 
HREF="grg_2.html#SEC2">Running GRG</A>) can be
-used to provide a lot of additional information to track down the error, if
-it is not immediately obvious. The following is a list of all the errors with
-pointers to any relevant help in alphabetical order.
-
-</P>
-<P>
-grg: bad equate name (probably unescaped equate esc)
-<BR>
-Either an undefined equate name, or the equate escape character has been used
-inadvertently without escaping in a text body (the <CODE>\#</CODE> character 
sequence
-should be used in this case).
-
-</P>
-<P>
-grg: couldn't fill dynamic dbf file, '<EM>filename</EM>'
-<BR>
-Covers a number of possible errors that stem from not being able to transfer a
-delimited text input file into a growing dBase3+ file structure (used
-internally to hold databases).
-
-</P>
-<P>
-grg: couldn't open dbf file, '<EM>filename</EM>'
-<BR>
-The named file declared via a GRGDBFFILE predefined macro could not
-be opened as a dBase3+ file (either doesn't exist or incorrect permissions).
-
-</P>
-<P>
-grg: couldn't open dynamic SQL dbf file, '<EM>filename</EM>'
-<BR>
-Always generated when a SQL Query declared via a DATABASE
-predefined macro failed for some reason (check the SQL statement is correct via
-another means, ensure the physical database <STRONG>PHYSDB</STRONG> is 
defined).
-
-</P>
-<P>
-grg: couldn't open dynamic dbf file, '<EM>filename</EM>'
-<BR>
-The named file declared via a DATABASE predefined macro could not
-be opened as a delimited text file (either doesn't exist or incorrect 
permissions).
-
-</P>
-<P>
-grg: couldn't open file, '<EM>filename</EM>'
-<BR>
-The given filename could not be opened for some reason. Is the path correct,
-filename correct, and filename readable?
-
-</P>
-<P>
-grg: couldn't open include file, '<EM>filename</EM>'
-<BR>
-The specified include file couldn't be opened for some reason. Is the path
-correct, filename correct, and filename readable?
-
-</P>
-<P>
-grg: couldn't stop dynamic dbf file, '<EM>filename</EM>'
-<BR>
-Covers a number of possible errors that stem from not being able to restructure
-a delimited text input file that has been loaded into a growing dBase3+ file
-structure (used internally to hold databases). Check pattern definitions.
-
-</P>
-<P>
-grg: dfa.beg alloc failed
-<BR>
-Low level out of memory error during DFA construction from pattern definitions.
-
-</P>
-<P>
-grg: dfa.chr alloc failed
-<BR>
-Low level out of memory error during DFA construction from pattern definitions.
-
-</P>
-<P>
-grg: dfa.end alloc failed
-<BR>
-Low level out of memory error during DFA construction from pattern definitions.
-
-</P>
-<P>
-grg: dfa.end realloc failed
-<BR>
-Low level out of memory error during DFA construction from pattern definitions.
-
-</P>
-<P>
-grg: dfa.mid alloc failed
-<BR>
-Low level out of memory error during DFA construction from pattern definitions.
-
-</P>
-<P>
-grg: division by zero
-<BR>
-An attempt was made to divide a number by zero in an equate expression.
-
-</P>
-<P>
-grg: equate argument expected, '<EM>string</EM>'
-<BR>
-An invalid argument was given to an equate macro definition. See
-section <A HREF="grg_17.html#SEC17">Predefined Macros</A> on predefined macros 
in general and
-section <A HREF="grg_24.html#SEC24">EQUATE</A> on equate macros in particular.
-
-</P>
-<P>
-grg: equate definition too long, '<EM>string</EM>'
-<BR>
-The equate definition after reversing (or if entered as reversed) is too long
-and must be shortened. Splitting up into more than one equate is usually the
-best way to do this.
-
-</P>
-<P>
-grg: equate right operand expected, '<EM>string</EM>'
-<BR>
-Any situation during equate processing where the operator expected a right
-operand (generally a variable name) immediately following the operator.
-
-</P>
-<P>
-grg: equate stack overflow
-<BR>
-When returning from evaluation of an equate back to the text body, filter
-definition or pattern definition from which it was called has more than one
-value left on the stack.
-
-</P>
-<P>
-grg: equate stack underflow
-<BR>
-When returning from evaluation of an equate back to the text body, filter
-definition or pattern definition from which it was called has less than zero
-values left on the stack. Or when an operator requires an operand from the
-stack but the stack is empty.
-
-</P>
-<P>
-grg: equate var defined differently, '<EM>string</EM>'
-<BR>
-Occurs when assigning a value to a system variable that does not match the
-data type the system variable was declared with. Does not occur for local
-variables since they just coerce the value to match their type (if possible).
-
-</P>
-<P>
-grg: field argument expected, '<EM>string</EM>'
-<BR>
-A field argument was expected for either the SORTON or BANNER
-predefined macros. See section <A HREF="grg_17.html#SEC17">Predefined 
Macros</A> on field
-arguments and section <A HREF="grg_21.html#SEC21">SORTON</A> and section <A 
HREF="grg_28.html#SEC28">BANNER</A> on these macros in particular.
-
-</P>
-<P>
-grg: field name too long
-<BR>
-A field name is limited to ten characters (dBase3+ compatible).
-
-</P>
-<P>
-grg: field right operand expected
-<BR>
-A field operator has been used but the field name does not immediately follow
-the operator (or has not been given).
-
-</P>
-<P>
-grg: filter equate - number/string/date expected
-<BR>
-The data type returned by a filter definition based on an equate expression is
-not one of these.
-
-</P>
-<P>
-grg: group text body too big
-<BR>
-The definition of the text body of a group exceeded the maximum text body size.
-
-</P>
-<P>
-grg: illegal ARG character
-<BR>
-A character not allowed during the processing of the ARGS mode was seen.
-
-</P>
-<P>
-grg: illegal TXT character
-<BR>
-A character not allowed during the processing of the STANDARD mode
-was seen.
-
-</P>
-<P>
-grg: illegal character, '<EM>char</EM>'
-<BR>
-The preprocessor is very strict about characters that are not where they
-should be. Check that all predefined macros start at the beginning of a line
-and that they start with the double percent sequence. Check that comment
-starts at the beginning of a line with a double percent space sequence. Check
-that the arguments given to the predefined macros are correct (make sure that
-user macro definitions and equate definitions have been given a name and
-that string arguments start with a double character). Also check that there
-are not any spurious control characters in the file. See
-section <A HREF="grg_3.html#SEC3">GRG File Format</A> for an overview of the 
structure, syntax, and
-semantics of GRG files.
-
-</P>
-<P>
-grg: illegal character or operator in equate, '<EM>string</EM>'
-<BR>
-A character that is not valid in its current position in an equate definition
-has been identified.
-
-</P>
-<P>
-grg: index overflow
-<BR>
-Occurs when using the stroke operator and the index given to access a character
-of a string was greater than the length of the string.
-
-</P>
-<P>
-grg: index underflow
-<BR>
-Occurs when using the stroke operator and the index given to access a character
-of a string was less than zero.
-
-</P>
-<P>
-grg: inputs left bracket expected
-<BR>
-The <CODE>inputs</CODE> keyword requires brackets to immediately follow it 
(although
-they can have no content).
-
-</P>
-<P>
-grg: inputs right bracket expected
-<BR>
-The <CODE>inputs</CODE> keyword requires brackets to immediately follow it 
(although
-they can have no content).
-
-</P>
-<P>
-grg: invalid operand type
-<BR>
-The data type of the operand did not meet the requirements of the operation
-being applied at the time.
-
-</P>
-<P>
-grg: left token without right in pattern
-<BR>
-An error in a pattern definition, the token is enclosed within 
<CODE>&#60;...&#62;</CODE>
-bracket pairs, the closing one is missing.
-
-</P>
-<P>
-grg: local variable stack overflow
-<BR>
-The number of local variables on the stack (those of the current equate all
-equates back up the call chain to the first one) have overrun the general
-equate processing stack.
-
-</P>
-<P>
-grg: macro argument expected, '<EM>string</EM>'
-<BR>
-Something other than a macro argument was used with either the DEFINE
-or the EQUATE predefined macros. See section
-section <A HREF="grg_17.html#SEC17">Predefined Macros</A> on macro arguments 
and
-section <A HREF="grg_19.html#SEC19">DEFINE</A> and section <A 
HREF="grg_24.html#SEC24">EQUATE</A> on these
-particular macros.
-
-</P>
-<P>
-grg: maximum TeX block exceeded
-<BR>
-A text body definition has exceeded the maximum size given in
-section <A HREF="grg_80.html#SEC80">Hard Limits</A> on the hard limits of the 
preprocessor. There is no
-way to work around this, other than to reduce the size of the text body. This
-can be done by converting parts of the text body into user defined macros,
-user text bodies and equates.
-
-</P>
-<P>
-grg: mismatch in comment brackets
-<BR>
-One comment bracket (either { } or /* */ pairs) opening or closing is missing.
-
-</P>
-<P>
-grg: mismatch in index brackets
-<BR>
-One indexing bracket ([ ] pairs) opening or closing is missing.
-
-</P>
-<P>
-grg: mismatch in loop brackets
-<BR>
-One looping bracket ([ ] pairs) opening or closing is missing.
-
-</P>
-<P>
-grg: mismatch in loop/call brackets
-<BR>
-One looping/call bracket (( ) pairs) opening or closing is missing.
-
-</P>
-<P>
-grg: missing loop separator
-<BR>
-The loop separator ";" or "do" is missing.
-
-</P>
-<P>
-grg: no database defined
-<BR>
-Any GRG must declare at least one database file using the
-%%DATABASE predefined macro.
-
-</P>
-<P>
-grg: no such database
-<BR>
-Occurs when accessing a database with the <CODE>-&#62;</CODE> mechanism or the 
<CODE>:</CODE> mechanism
-on a roll/through loop and the named database has not been declared via the
-DATABASE predefined macro.
-
-</P>
-<P>
-grg: numeric argument expected, '<EM>string</EM>'
-<BR>
-One of the PAGE01 or PAGENN predefined macros expected a
-numeric argument. See section <A HREF="grg_17.html#SEC17">Predefined 
Macros</A> on numeric
-arguments and sections section <A HREF="grg_29.html#SEC29">PAGE01</A> and
-section <A HREF="grg_30.html#SEC30">PAGENN</A> on these two macros.
-
-</P>
-<P>
-grg: numeric operand expected
-<BR>
-An operation required a numeric data type.
-
-</P>
-<P>
-grg: numeric operands expected
-<BR>
-An operation required two numeric data types.
-
-</P>
-<P>
-grg: numeric or string operand expected
-<BR>
-An operation required a numeric or string data type.
-
-</P>
-<P>
-grg: operands types differ
-<BR>
-An operation requires two operands of any type but they must be of the same
-type.
-
-</P>
-<P>
-grg: out of place argument, '<EM>string</EM>'
-<BR>
-This should never happen. If it does don't panic, just call for help.
-
-</P>
-<P>
-grg: pattern parse error
-<BR>
-There was a syntax error in the pattern definitions.
-
-</P>
-<P>
-grg: premature end of pattern after escape sequence
-<BR>
-There was a syntax error in the pattern definitions.
-
-</P>
-<P>
-grg: pushback buffer exceeded
-<BR>
-The internal pushback buffer has overflowed. This is used to pushback and
-cause this resource to break. See section section <A 
HREF="grg_80.html#SEC80">Hard Limits</A> on the hard
-limits of the preprocessor. Break down include files into separate files and
-reduce the size of user macros to work around this problem.
-
-</P>
-<P>
-grg: record index out of range
-<BR>
-The given index in the <CODE>x[n]</CODE> or <CODE>x-&#62;y[n]</CODE> syntax 
was less than 1 or greater
-than the total number of records in the associated database.
-
-</P>
-<P>
-grg: record loop right operand expected
-<BR>
-The record loop has been given a ":" syntax to identify a loop through a named
-database but the database name has not been given or is not immediately
-adjacent to the colon character.
-
-</P>
-<P>
-grg: reg. exp. syntax error "%&#60;FLD&#62;=&#60;RE&#62;", '<EM>string</EM>'
-<BR>
-The syntax of a filter condition used with the FILTER predefined
-macro is wrong. The error message shows the correct syntax. See section
-section <A HREF="grg_23.html#SEC23">FILTER</A> on the construction of filter 
conditions.
-
-</P>
-<P>
-grg: stack overflow
-<BR>
-The stack overflowed during equate processing as there were too many items on
-it (note that the stack size is reduced both by operations pushing values
-onto it and by local variables).
-
-</P>
-<P>
-grg: stack underflow
-<BR>
-A value was required from the stack by an operation during equate processing
-but the stack was empty.
-
-</P>
-<P>
-grg: stack value out of range
-<BR>
-Similar to a stack overflow except that the overflow occured during the
-creation of a local variable rather than an operation pusing a value onto the
-stack.
-
-</P>
-<P>
-grg: string argument expected, '<EM>string</EM>'
-<BR>
-One of the INCLUDE, DATABASE, or FILTER  predefined macros
-expected a string argument. See section <A HREF="grg_17.html#SEC17">Predefined 
Macros</A> on
-string arguments and section <A HREF="grg_18.html#SEC18">INCLUDE</A>,
-section <A HREF="grg_20.html#SEC20">DATABASE</A>, and section <A 
HREF="grg_23.html#SEC23">FILTER</A> on these
-three macros.
-
-</P>
-<P>
-grg: text body too big
-<BR>
-The text body maximum size has been exceeded by the definition given for one of
-the predefined macros (such as a header, footer, record, equate etc).
-
-</P>
-<P>
-grg: too many arguments for texpage01, '<EM>string</EM>'
-<BR>
-This has a maximum of two numeric arguments.
-
-</P>
-<P>
-grg: too many arguments for texpagenn, '<EM>string</EM>'
-<BR>
-This has a maximum of two numeric arguments.
-
-</P>
-<P>
-grg: too many arguments for texpattern, '<EM>string</EM>'
-<BR>
-This has a maximum of 5 string arguments.
-
-</P>
-<P>
-grg: too many banner args, '<EM>string</EM>'
-<BR>
-The maximum number of field arguments to the BANNER predefined macro
-has been exceeded. See section <A HREF="grg_80.html#SEC80">Hard Limits</A> on 
the hard limits of
-the preprocessor and section <A HREF="grg_28.html#SEC28">BANNER</A> on this 
particular macro.
-
-</P>
-<P>
-grg: too many blocks, '<EM>string</EM>'
-<BR>
-The maximum number of user defined text blocks has been exceeded. See
-section <A HREF="grg_80.html#SEC80">Hard Limits</A> on the hard limits of the 
preprocessor and
-section <A HREF="grg_32.html#SEC32">BLOCK</A> on this particular macro.
-
-</P>
-<P>
-grg: too many equate defs, '<EM>string</EM>'
-<BR>
-The maximum number of equate definitions given by using the EQUATE
-predefined macro has been exceeded. See section <A 
HREF="grg_80.html#SEC80">Hard Limits</A> on
-the hard limits of the preprocessor and section <A 
HREF="grg_24.html#SEC24">EQUATE</A> on this
-particular macro.
-
-</P>
-<P>
-grg: too many equate vars
-<BR>
-The maximum number of local variables for an equate expression has been
-exceeded.
-
-</P>
-<P>
-grg: too many file args, '<EM>string</EM>'
-<BR>
-The maximum number of file arguments given with the DATABASE predefined
-macro has been exceeded. See section <A HREF="grg_80.html#SEC80">Hard 
Limits</A> on the hard limits
-of the preprocessor and section <A HREF="grg_20.html#SEC20">DATABASE</A> on 
this particular macro.
-
-</P>
-<P>
-grg: too many filter args, '<EM>string</EM>'
-<BR>
-The maximum number of filters specified by using the FILTER predefined
-macro has been exceeded. See section <A HREF="grg_80.html#SEC80">Hard 
Limits</A> on the hard limits
-of the preprocessor and section <A HREF="grg_23.html#SEC23">FILTER</A> on this 
particular macro.
-
-</P>
-<P>
-grg: too many group args, '<EM>string</EM>'
-<BR>
-Not implemented.
-
-</P>
-<P>
-grg: too many local vars
-<BR>
-The maximum number of equate local variables has been exceeded. The maximum
-size is determined by the local variable table not the equate stack size.
-
-</P>
-<P>
-grg: too many macro defs, '<EM>string</EM>'
-<BR>
-The maximum number of user macro definitions given by using the DEFINE
-predefined macro has been exceeded. See section <A 
HREF="grg_80.html#SEC80">Hard Limits</A> on
-the hard limits of the preprocessor and section <A 
HREF="grg_19.html#SEC19">DEFINE</A> on this
-particular macro.
-
-</P>
-<P>
-grg: too many sort args, '<EM>string</EM>'
-<BR>
-The maximum sort depth specified by using the SORTON predefined macro
-has been exceeded. See sections section <A HREF="grg_80.html#SEC80">Hard 
Limits</A> on the hard limits of
-the preprocessor and section <A HREF="grg_21.html#SEC21">SORTON</A> on this 
particular macro.
-
-</P>
-<P>
-grg: too many unique pattern characters
-<BR>
-The DFA limits a number of internal resources, this is one. Simplify the
-pattern definitions where possible.
-
-</P>
-<P>
-grg: too many unique pattern modes
-<BR>
-The DFA limits a number of internal resources, this is one. Simplify the
-pattern definitions where possible.
-
-</P>
-<P>
-grg: undefined equate variable, '<EM>string</EM>'
-<BR>
-A system variable is being used before it has been declared (by writing a value
-to it).
-
-</P>
-<P>
-grg: undefined local variable, '<EM>string</EM>'
-<BR>
-A local variable is being used before it has been declared (by writing a value
-to it).
-
-</P>
-<P>
-grg: undefined macro or equate, '<EM>string</EM>'
-<BR>
-An undefined user macro or equate definition has been used in a text body or
-in an equate (not user macros). See section <A 
HREF="grg_17.html#SEC17">Predefined Macros</A>
-on macro definitions and section <A HREF="grg_19.html#SEC19">DEFINE</A> and
-section <A HREF="grg_24.html#SEC24">EQUATE</A> on user macros and equate 
definitions respectively.
-
-</P>
-<P>
-grg: unknown banner field, '<EM>string</EM>'
-<BR>
-An unknown database field name argument has been given to the BANNER
-predefined macro. See section <A HREF="grg_17.html#SEC17">Predefined 
Macros</A> on field
-arguments and section <A HREF="grg_28.html#SEC28">BANNER</A> on this 
particular macro.
-
-</P>
-<P>
-grg: unknown character token, '<EM>token</EM>'
-<BR>
-A pattern definition has been given a character set token which is not one of
-the predefined ones and has not been defined by the user.
-
-</P>
-<P>
-grg: unknown dfa mode
-<BR>
-A jump has been made to a DFA mode which has not been defined (this may be a
-result of not correctly setting the initial value with 
<STRONG>DFAMODE</STRONG>).
-
-</P>
-<P>
-grg: unknown equate, '<EM>string</EM>'
-<BR>
-An undefined equate definition has been used in a text body or
-in an equate. See section <A HREF="grg_17.html#SEC17">Predefined Macros</A>
-on macro definitions and section <A HREF="grg_24.html#SEC24">EQUATE</A> on 
equate definitions.
-
-</P>
-<P>
-grg: unknown field name, '<EM>string</EM>'
-<BR>
-An unknown database field name has been used in a text body or
-in an equate. See section <A HREF="grg_17.html#SEC17">Predefined Macros</A>
-on text bodies and section <A HREF="grg_24.html#SEC24">EQUATE</A> on equate 
definitions.
-
-</P>
-<P>
-grg: unknown field type, '<EM>string</EM>'
-<BR>
-A field type defined in a dBase3+ database file has not been recognised as
-The valid recognised types are C, N, D and L.
-
-</P>
-<P>
-grg: unknown mode
-<BR>
-This should never happen. If it does don't panic, just call for help.
-
-</P>
-<P>
-grg: unknown predefined GRG macro, '<EM>string</EM>'
-<BR>
-A predefined macro name has not been recognised. All predefined macros start
-with the GRG or TEX sequence, followed by the rest of the
-name which must match one of the valid names. Same error as below.
-
-</P>
-<P>
-grg: unknown predefined tex macro, '<EM>string</EM>'
-<BR>
-An invalid predefined macro has been used. Check for spelling mistakes. See
-section <A HREF="grg_17.html#SEC17">Predefined Macros</A> for a list of 
predefined macros. Note
-that predefined macros are not case sensitive.
-
-</P>
-<P>
-grg: unknown sort field, '<EM>string</EM>'
-<BR>
-An unknown database field name argument has been given to the SORTON
-predefined macro. See section <A HREF="grg_17.html#SEC17">Predefined 
Macros</A> on field
-arguments and section <A HREF="grg_21.html#SEC21">SORTON</A> on this 
particular macro.
-
-</P>
-<P>
-grg: unknown token
-<BR>
-An error in a pattern definition, the resulting token should be one of the
-valid start of record, end of record, start of field, end of field, error or
-discard token values.
-
-</P>
-<P>
-grg: unseparated condition
-<BR>
-A condition construct has been used in an equate expression which is missing
-the "else" clause (or the "endif" clause if no "else" clause is given). Note
-that reversed expressions always require an "else" clause (the colon character)
-whereas unreversed expressions do not.
-
-</P>
-<P>
-grg: unterminated condition
-<BR>
-A condition construct has been used in an equate expression which is missing
-the "endif" or ";" terminator. All conditions require this terminator.
-
-</P>
-<P>
-grg: unterminated string, '<EM>string</EM>'
-<BR>
-A string has been given with a missing end quote.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_102.html">previous</A>, 
<A HREF="grg_104.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_104.html
===================================================================
RCS file: doc/grg/grg_104.html
diff -N doc/grg/grg_104.html
--- doc/grg/grg_104.html        13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,228 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Examples</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_103.html">previous</A>, 
<A HREF="grg_105.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H2><A NAME="SEC104" HREF="grg_toc.html#TOC104">Examples</A></H2>
-
-<P>
-<A NAME="IDX357"></A>
-<A NAME="IDX358"></A>
-Included below is a complete example GRG file of a reasonable
-complexity. This demonstrates how moderately complex output can be
-generated without doing any very complex equate work
-(ie. just by using basic conditions on fields).
-
-</P>
-
-<PRE>
-%% DAI Grants Awarded Report Form Template
-%%DEFINE    TITLE Grants Awarded
-%%DATABASE  "../research.dbf"
-%%FILTER    "%GRANT_STAT=ACTIVE" "%GRANT_STAT=AWARDED"
-%%SORTON    %AI_AREA %PI_SNAME
-%%EQUATE    GRANT_HOLDER ?CO_INVEST"; %CO_INVEST"
-%%EQUATE    DURATION ?START_DATE"%START_DATE--"%END_DATE
-%%EQUATE    ACCOUNT_NO ?ACCOUNT_NO"RR%ACCOUNT_NO"
-%%EQUATE    RAS_PER_YR ?RAS_PER_YR
-%%EQUATE    STAFF_AD ?STAFF_AD"%STAFF_AD "?AD_PERCENT"%AD_PERCENT\%; "
-%%EQUATE    STAFF_TG ?STAFF_TG"%STAFF_TG "?TG_PERCENT"%TG_PERCENT\%; "
-%%EQUATE    STAFF_CN ?STAFF_CN"%STAFF_CN "?CN_PERCENT"%CN_PERCENT\%"
-%%EQUATE    STAFF_AR ?STAFF_AR"%STAFF_AR "?AR_PERCENT"%AR_PERCENT\%"
-%%EQUATE    STAFF1 ?STAFF_NM1
-%%EQUATE    STAFF2 ?STAFF_NM2"; %STAFF_NM2"
-%%EQUATE    STAFF3 ?STAFF_NM3"; %STAFF_NM3"
-%%EQUATE    STAFF4 ?STAFF_NM4"; %STAFF_NM4"
-%%EQUATE    STAFF5 ?STAFF_NM5"; %STAFF_NM5"
-%%HEADER
-  \documentstyle[grants]{article}
-  \pagestyle{headings}
-  \markright{\noindent Department of Artificial Intelligence
-  \hfill %%TITLE as at \today{} \hfill}
-  \sloppy
-  \begin{document}
-  \begin{titlepage}
-  \mbox{}
-  \end{titlepage}
-%%PAGE01 3
-  \vspace*{1ex}
-  \centerline{{\bf DEPARTMENT OF ARTIFICIAL INTELLIGENCE}}
-  \centerline{{\bf %%TITLE as at \today}}
-  \vspace*{1ex}
-%%PAGENN 4
-  \vspace*{1ex}
-%%BANNER    %AI_AREA
-  \vspace*{1ex}
-  \flushleft{\underline{\bf %AI_AREA}}
-%%RECORD
-  \begin{list}{}{\leftmargin 2.15in
-  \renewcommand{\makelabel}[1]{\hfil \#1}\labelwidth 2.1in
-  \itemsep 0ex \parsep 0ex}
-  \item[{\bf Title:}] %GRANT_TITL
-  \item[{\bf Grantholder:}] %PI_SNAME, %PI_INITS%%GRANT_HOLDER
-  \item[{\bf Grant No:}] %GRANT_NO
-  \item[{\bf A/C No:}] %%ACCOUNT_NO
-  \item[{\bf Duration:}] %%DURATION
-  \item[{\bf Value:}] \pounds%TOTAL\\{\bf Staff} \pounds%STAFF_COST;
-  {\bf Travel} \pounds%TRAVEL; {\bf Consumables} \pounds%CONSUMABLE;
-  \\{\bf Equipment} \pounds%EQUIPMENT; {\bf Indirect} \pounds%INDIRECT
-  \item[{\bf RA Man Yrs/Ac Yr:}] %%RAS_PER_YR
-  \item[{\bf Research Posts:}] %%STAFF_AR
-  \item[{\bf Other Posts:}] %%STAFF_AD%%STAFF_TG%%STAFF_CN
-  \item[{\bf Staff:}] %%STAFF1%%STAFF2%%STAFF3%%STAFF4%%STAFF5
-  \item[{\bf Source Of Funding:}] %FUNDING
-  \end{list}
-%%FOOTER
-  \end{document}
-</PRE>
-
-<P>
-The example below is one of the simplest files that could be created. This
-makes an SQL query to a RDBMS and just dumps the output in delimited form using
-the default header and record text bodies.
-
-</P>
-
-<PRE>
-%%DATABASE "cat.sql"
-%%DEFINE PHYSDB animals
-%%DEFINE NAMCOL
-%%DEFINE DELIM |
-</PRE>
-
-<P>
-The example below shows a more complex SQL query which is then used to
-construct HTML for a web page in a fairly simple way. The file includes some
-other files for default setup which are not shown below.
-
-</P>
-
-<PRE>
-#!/usr/local/bin/grg
-%%INCLUDE   "../PTC/html.pt"
-%%INCLUDE   "../PTC/basic.grg"
-%%INCLUDE   "banner.html"
-%%EQUATE    eq_texinit "../testing/absences.html" &#62;&#62;_eq_outfile
-%%DEFINE    PHYSDB daidb
-%%DEFINE    NAMCOL
-
-%%DATABASE     "absence.sql"
-  select
-    lastname, firstname, reason, reason_oth, start_date as sdate,
-    return_date as rdate,
-    date_part('year',start_date) as year,
-    date_trunc('month',start_date) as month,
-    return_date - start_date as days
-  from
-    absence, person
-  where
-    person.person# = absence.person# and
-    ( ( start_date &#62;= date('today') and
-        start_date &#60; date('today') + '28 days' ) or
-      ( start_date &#60; date('today') and
-        return_date &#62;= date('today') ) )
-  order by
-    lastname
-
-%%HEADER
-  #BEGIN_INSERT
-  &#60;TABLE BORDER=0&#62;
-  &#60;TR ALIGN=LEFT&#62;
-    &#60;TH COLSPAN=2&#62;Name
-    &#60;TH COLSPAN=2&#62;Date(s)
-    &#60;TH COLSPAN=2&#62;Reason
-
-%%RECORD
-  &#60;TR&#62;
-    &#60;TD&#62;&#60;B&#62;%FIRSTNAME %LASTNAME&#60;/B&#62;&#60;TD&#62;
-    &#60;TD&#62;%SDATE #EVAL(%RDATE&#60;&#62;""?" to "+%RDATE:;) 
(%DAYS)&#60;TD&#62;
-    &#60;TD&#62;#EVAL(%REASON="Other"?%REASON_OTH:%REASON;)
-
-%%FOOTER
-  &#60;/TABLE&#62;
-  #END_INSERT
-
-%%END
-</PRE>
-
-<P>
-The example below just contains some useful equate definitions for commonly
-required functions (particularly string handling).
-
-</P>
-
-<PRE>
-%%EQUATE traceon
-  /* turn on equate tracing */
-  1 &#62;&#62; _eq_trace
-%%EQUATE traceoff
-  /* turn off equate tracing */
-  0 &#62;&#62; _eq_trace
-%%EQUATE datey
-  /* returns string with century and year part of date */
-  inputs(s)
-  outputs(substr(s,0,3))
-%%EQUATE datem
-  /* returns string with month part of date */
-  inputs(s)
-  outputs(substr(s,4,5))
-%%EQUATE dated
-  /* returns string with day part of date */
-  inputs(s)
-  outputs(substr(s,6,7))
-%%EQUATE bdate
-  /* returns string with date formatted to "dd/mm/ccyy" */
-  inputs(s)
-  outputs(dated(s)+"/"+datem(s)+"/"+datey(s))
-%%EQUATE ltou
-  /* converts lower case string s to upper case */
-  inputs(s)
-  if not (s = "") then
-    0 &#62;&#62; i
-    while s'i &#60;&#62; 0 do
-      if s'i &#62;= 97 and s'i &#60;= 122 then
-        s,(s'i - 32)`i &#62;&#62; s
-      endif
-      ++i &#62;&#62; i
-    wend
-  endif
-  outputs(s)
-%%EQUATE substr
-  /* returns substring of s1 starting at s and ending at e */
-  inputs(s1,s,e)
-  "" &#62;&#62; s2
-  0 &#62;&#62; x
-  while (s &#60;= e) do
-    s2,(s1's)`x &#62;&#62; s2
-    ++s &#62;&#62; s
-    ++x &#62;&#62; x
-  wend
-  outputs(s2,0`x)
-%%EQUATE strlen
-  /* returns length of string s */
-  inputs(s)
-  0 &#62;&#62; x while s'x &#60;&#62; 0 do ++x &#62;&#62; x wend
-  outputs(x)
-%%EQUATE nrecs
-  /* returns size (n records) of given database db */
-  /* note that for a quoted string keywords are not expanded within so
-  the raw reversed operators must be used instead */
-  inputs(db)
-  0 &#62;&#62; n
-  if db = "" then "" &#62;&#62; s else ":" + db &#62;&#62; s endif
-  "(n + 1 &#62;&#62; n)" + s &#62;&#62; s
-  exec(s)
-  outputs(n)
-</PRE>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_103.html">previous</A>, 
<A HREF="grg_105.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_105.html
===================================================================
RCS file: doc/grg/grg_105.html
diff -N doc/grg/grg_105.html
--- doc/grg/grg_105.html        13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,365 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Revision History</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_104.html">previous</A>, 
<A HREF="grg_106.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H2><A NAME="SEC105" HREF="grg_toc.html#TOC105">Revision History</A></H2>
-
-<P>
-<A NAME="IDX359"></A>
-This is from before it was called GRG.
-
-</P>
-
-<PRE>
-
-SCCS/s.gpp.l:
-
-D 1.38 97/08/20 13:42:37 timc 38 37    00002/00002/04391
-MRs:
-COMMENTS:
-Fixed overflow bug causing incompatibility with previous versions.
-
-D 1.37 97/08/19 21:58:35 timc 37 36    01294/00667/03099
-MRs:
-COMMENTS:
-Added: user text blocks, &#60;&#62; operator. Equates have bodies which 
-are auto-reversed. Bodies have keywords in place of some operator symbols 
-(for legibility). More user friendly. Auto-reversed arguments when called 
-from a text block. Processed under new EQU mode. The equate name can be 
-defined with argument specifiers. Max reversed equate size increased 
-to 1024.
-
-D 1.36 97/04/02 15:10:25 timc 36 35    00177/00087/03589
-MRs:
-COMMENTS:
-Generates default record and header bodys if not defined in gpp 
-file (as all columns and names of all columns) - may break some files. 
-Added REVSORT predefined macro to sort field in descending order. 
-Now ignores line starting with #! if occurs before any predefined macros, this
-allows gpp file to be self-executing. 
-Will now load file without .gpp extension if exists.
-
-D 1.35 97/03/23 15:46:34 timc 35 34    00084/00049/03592
-MRs:
-COMMENTS:
-Added SQL query mode when file extension is '.sql' as a separate
-command - 'gppsql' as it quadruples the size, 'gpp' ignores '.sql' extension.
-Added PHYSDB, NAMCOL, NULL defines to support SQL mode.
-Added support for interpreting '-' as the output file name as stdout.
-
-D 1.34 97/03/21 12:43:49 timc 34 33    00009/00001/03632
-MRs:
-COMMENTS:
-Set dbf equates before calling texinit equate and then update 
-them again afterwards in the same way that the output file is done.
-
-D 1.33 97/03/21 12:11:04 timc 33 32    00027/00010/03606
-MRs:
-COMMENTS:
-Added eq_version to toggle whether banner message is displayed.
-
-D 1.32 97/03/10 15:47:44 timc 32 31    00017/00004/03599
-MRs:
-COMMENTS:
-Added CONCAT mode to append to main output file, subsidiary files
-opened for output remain as create.
-
-D 1.31 97/02/28 19:07:39 timc 31 30    00510/00480/03093
-MRs:
-COMMENTS:
-Corrected copyright notice.
-Definition file extension is now '.gpp'. Will still recognise '.pt' when
-specified but if no extension is given adds '.gpp'.
-Recognises %%gpp macro leader as equivalent to %%tex in the definition file
-and on the command line.
-Fixed date setting to work for 2000.
-
-D 1.30 97/02/28 17:30:09 timc 30 29    00002/00001/03571
-MRs:
-COMMENTS:
-Localised version for TEC.
-
-D 1.29 96/03/07 17:04:33 timc 29 28    00006/00000/03566
-MRs:
-COMMENTS:
-Fix to previous fix :-)
-
-D 1.28 96/03/07 16:57:24 timc 28 27    00006/00006/03560
-MRs:
-COMMENTS:
-Shifted where eq_texinit is run to allow it to refer to and change
-the value of _eq_outfile
-
-D 1.27 96/03/07 15:58:05 timc 27 26    00001/00001/03565
-MRs:
-COMMENTS:
-Fixed bug, dynamic dbf file is now opened read-only (not read/write)
-
-D 1.26 96/03/04 14:29:33 timc 26 25    00034/00001/03532
-MRs:
-COMMENTS:
-Added some sysvars holding input and output file name components,
-and ability to change output file from an equate.
-
-D 1.25 95/06/01 11:30:45 timc 25 24    00004/00002/03529
-MRs:
-COMMENTS:
-Fixed bug where sortting on a field which was the first listed 
-field (offset 0) in a database failed
-
-D 1.24 95/06/01 10:58:16 timc 24 23    00001/00000/03530
-MRs:
-COMMENTS:
-Any more than one texdbffile (non dbf) was not working (for 
-example in a manual record loop). Fixed by resetting dynamic array pointer.
-
-D 1.23 95/05/19 10:43:26 timc 23 22    00004/00001/03526
-MRs:
-COMMENTS:
-Added flag so as DFA is only loaded once
-
-D 1.22 95/05/12 13:59:55 timc 22 21    00009/00009/03518
-MRs:
-COMMENTS:
-Fixed bug introduced by adding f.p. support (the -, * and /
-operators were broken)
-
-D 1.21 95/05/09 14:56:49 timc 21 20    00106/00021/03421
-MRs:
-COMMENTS:
-Added support for floating point numbers and the EQ_DEC type
-
-D 1.20 95/05/09 11:18:49 timc 20 19    00001/00001/03441
-MRs:
-COMMENTS:
-Fixed bug in filter field names as didn't accept numerics as part
-of the field name (alphabetic only)
-
-D 1.19 95/05/07 13:53:34 timc 19 18    00001/00001/03441
-MRs:
-COMMENTS:
-Fixed bug, the DFA begin array wasn't being allocated enough space
-since array elements were indexed starting from 1
-
-D 1.18 95/05/07 13:11:44 timc 18 17    00004/00004/03438
-MRs:
-COMMENTS:
-Fixed bug with calloc calls, didn't work when optimised
-
-D 1.17 95/05/05 18:18:18 timc 17 16    00896/00011/02546
-MRs:
-COMMENTS:
-Major change to add dynamic database functionality (so a DBF
-structure can grow), and handling of textual database files which get loaded
-into the dynamic DBF structure. This included a complete DFA module to parse
-the patterns defining the input text syntax. This is the first preliminary
-release of these new modules and as such they are still limited and
-buggy. A few other related and additional enhancements were also made.
-*** CHANGED *** 95/05/05 18:22:00 timc
-Major change to add dynamic database functionality (so a DBF
-structure can grow), and handling of textual database files which get loaded
-
-D 1.16 94/05/05 10:09:05 timc 16 15    00049/00009/02508
-MRs:
-COMMENTS:
-Extended the raw write operator (read operator and streams)
-
-D 1.15 94/05/04 16:09:55 timc 15 14    00003/00003/02514
-MRs:
-COMMENTS:
-Fixed bug with looping construct - didn't correctly set record number
-
-D 1.14 94/04/15 16:41:35 timc 14 13    00001/00000/02516
-MRs:
-COMMENTS:
-Fixed multiple "TEXPAGENN" and "TEXPAGE01" macros bug
-
-D 1.13 94/03/11 14:40:18 timc 13 12    00004/00001/02512
-MRs:
-COMMENTS:
-Work around limitation in SCCS
-
-D 1.12 94/03/09 10:44:13 timc 12 11    01460/00866/01053
-MRs:
-COMMENTS:
-Huge number of enhancements and fixes - see documentation for details
-
-D 1.11 93/11/30 12:01:17 timc 11 10    00001/00001/01918
-MRs:
-COMMENTS:
-Made texfilters apply on top of equate record loop
-
-D 1.10 93/11/30 11:43:17 timc 10 9     00006/00000/01913
-MRs:
-COMMENTS:
-Fixed exit code
-
-D 1.9 93/11/30 10:55:48 timc 9 8       01220/00128/00693
-MRs:
-COMMENTS:
-Lots, including wicked new expression handler
-
-D 1.8 93/11/24 15:34:30 timc 8 7       00010/00001/00811
-MRs:
-COMMENTS:
-Fixed equate recursion bug, added FESCSUB env var
-
-D 1.7 93/11/24 12:36:13 timc 7 6       00021/00014/00791
-MRs:
-COMMENTS:
-define/equates allow redefinitions and null args
-
-D 1.6 93/11/24 10:35:25 timc 6 5       00086/00021/00719
-MRs:
-COMMENTS:
-Added include macro, environment setting, and more debug output
-
-D 1.5 93/11/23 16:59:15 timc 5 4       00005/00005/00735
-MRs:
-COMMENTS:
-Switched mm/dd in date around, added numerals into field/macro names
-
-D 1.4 93/11/23 10:00:55 timc 4 3       00017/00007/00723
-MRs:
-COMMENTS:
-Fixed dates under equate, additional page bugs
-
-D 1.3 93/11/22 16:58:35 timc 3 2       00036/00002/00694
-MRs:
-COMMENTS:
-Improved equate handler, made dates print right, etc.
-
-D 1.2 93/11/18 17:27:00 timc 2 1       00165/00013/00531
-MRs:
-COMMENTS:
-Added filter and equate handling, other minor changes
-
-D 1.1 93/11/16 12:26:56 timc 1 0       00544/00000/00000
-MRs:
-COMMENTS:
-date and time created 93/11/16 12:26:56 by timc
-
-SCCS/s.gpp.h:
-
-D 1.20 97/08/19 21:58:37 timc 20 19    00165/00009/00321
-MRs:
-COMMENTS:
-Added: user text blocks, &#60;&#62; operator. Equates have bodies which 
-are auto-reversed. Bodies have keywords in place of some operator symbols 
-(for legibility). More user friendly. Auto-reversed arguments when called 
-from a text block. Processed under new EQU mode. The equate name can be 
-defined with argument specifiers. Max reversed equate size increased 
-to 1024.
-
-D 1.19 97/04/02 15:07:44 timc 19 18    00004/00000/00326
-MRs:
-COMMENTS:
-Added TEXREVSORT plus some other declarations.
-
-D 1.18 97/03/23 15:44:23 timc 18 17    00001/00000/00325
-MRs:
-COMMENTS:
-Support added for SQL query dbf file.
-
-D 1.17 97/03/21 12:11:02 timc 17 16    00001/00000/00324
-MRs:
-COMMENTS:
-Added eq_version to toggle whether banner message is displayed.
-
-D 1.16 97/03/10 15:47:45 timc 16 15    00000/00000/00324
-MRs:
-COMMENTS:
-Added CONCAT mode to append to main output file, subsidiary files
-opened for output remain as create.
-
-D 1.15 97/02/28 19:05:25 timc 15 14    00137/00131/00187
-MRs:
-COMMENTS:
-Corrected copyright notice.
-
-D 1.14 97/02/28 17:30:09 timc 14 13    00000/00002/00318
-MRs:
-COMMENTS:
-Localised version for TEC.
-
-D 1.13 97/02/26 12:50:05 timc 13 12    00002/00002/00318
-MRs:
-COMMENTS:
-Increased max equate vars (includes local vars) from 64 to 256.
-Increased number of equate definitions from 64 to 128.
-
-D 1.12 96/08/07 12:04:56 timc 12 11    00001/00001/00319
-MRs:
-COMMENTS:
-Reset STRMAX to 256 (Max dBase3+ field length = 254 characters)
-
-D 1.11 96/08/07 10:50:48 timc 11 10    00001/00001/00319
-MRs:
-COMMENTS:
-Doubled size of STRMAX to 512.
-
-D 1.10 96/06/10 22:18:14 timc 10 9     00001/00001/00319
-MRs:
-COMMENTS:
-Increased equate stack size from 64-&#62;256, this also increases the
-number of local vars and the number of text mode input fields.
-
-D 1.9 96/03/04 14:28:52 timc 9 8       00007/00000/00313
-MRs:
-COMMENTS:
-Support for changes to output file handling and additional sysvars.
-
-D 1.8 95/05/09 14:56:57 timc 8 7       00001/00000/00312
-MRs:
-COMMENTS:
-Added support for floating point numbers and the EQ_DEC type
-
-D 1.7 95/05/05 18:17:08 timc 7 6       00104/00001/00208
-MRs:
-COMMENTS:
-Support for dynamic dbf files and pattern input handling
-
-D 1.6 94/04/15 16:41:33 timc 6 5       00002/00000/00207
-MRs:
-COMMENTS:
-Fixed multiple "TEXPAGENN" and "TEXPAGE01" macros bug
-
-D 1.5 94/03/09 10:44:10 timc 5 4       00077/00003/00130
-MRs:
-COMMENTS:
-Huge number of enhancements and fixes - see documentation for details
-
-D 1.4 93/11/30 10:55:53 timc 4 3       00019/00003/00114
-MRs:
-COMMENTS:
-Lots, including wicked new expression handler
-
-D 1.3 93/11/24 10:35:23 timc 3 2       00006/00000/00111
-MRs:
-COMMENTS:
-Added include macro, environment setting, and more debug output
-
-D 1.2 93/11/18 17:27:03 timc 2 1       00033/00001/00078
-MRs:
-COMMENTS:
-Added filter and equate handling, other minor changes
-
-D 1.1 93/11/16 12:26:55 timc 1 0       00079/00000/00000
-MRs:
-COMMENTS:
-date and time created 93/11/16 12:26:55 by timc
-
-</PRE>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_104.html">previous</A>, 
<A HREF="grg_106.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_106.html
===================================================================
RCS file: doc/grg/grg_106.html
diff -N doc/grg/grg_106.html
--- doc/grg/grg_106.html        13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,196 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Function Index</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_105.html">previous</A>, 
<A HREF="grg_107.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H1><A NAME="SEC106" HREF="grg_toc.html#TOC106">Command Index</A></H1>
-
-<P>
-<H2>#</H2>
-<DIR>
-<LI><A HREF="grg_48.html#IDX227">#</A>
-</DIR>
-<H2>%</H2>
-<DIR>
-<LI><A HREF="grg_45.html#IDX192">%</A>
-<LI><A HREF="grg_45.html#IDX195">%#</A>
-<LI><A HREF="grg_45.html#IDX194">%$</A>
-<LI><A HREF="grg_45.html#IDX193">%%</A>
-</DIR>
-<H2>&#38;</H2>
-<DIR>
-<LI><A HREF="grg_51.html#IDX257">&#38; (bitwise and)</A>
-</DIR>
-<H2>'</H2>
-<DIR>
-<LI><A HREF="grg_52.html#IDX264">' (string index get)</A>
-</DIR>
-<H2>*</H2>
-<DIR>
-<LI><A HREF="grg_49.html#IDX236">* (multiply)</A>
-</DIR>
-<H2>+</H2>
-<DIR>
-<LI><A HREF="grg_49.html#IDX233">+ (add numeric)</A>
-<LI><A HREF="grg_52.html#IDX263">+ (string concatenate)</A>
-<LI><A HREF="grg_49.html#IDX237">++ (increment)</A>
-</DIR>
-<H2>-</H2>
-<DIR>
-<LI><A HREF="grg_49.html#IDX234">- (subtract)</A>
-<LI><A HREF="grg_49.html#IDX238">-- (decrement)</A>
-</DIR>
-<H2>/</H2>
-<DIR>
-<LI><A HREF="grg_49.html#IDX235">/ (divide)</A>
-<LI><A HREF="grg_56.html#IDX283">/* .. */ (comments)</A>
-</DIR>
-<H2>&#60;</H2>
-<DIR>
-<LI><A HREF="grg_50.html#IDX244">&#60; (less than)</A>
-<LI><A HREF="grg_50.html#IDX246">&#60;= (less than or equals)</A>
-<LI><A HREF="grg_50.html#IDX248">&#60;&#62; (not equals)</A>
-</DIR>
-<H2>=</H2>
-<DIR>
-<LI><A HREF="grg_50.html#IDX247">= (equals)</A>
-</DIR>
-<H2>&#62;</H2>
-<DIR>
-<LI><A HREF="grg_50.html#IDX243">&#62; (greater than)</A>
-<LI><A HREF="grg_50.html#IDX245">&#62;= (greater than or equals)</A>
-<LI><A HREF="grg_44.html#IDX185">&#62;&#62;</A>
-</DIR>
-<H2>^</H2>
-<DIR>
-<LI><A HREF="grg_51.html#IDX259">^ (bitwise xor)</A>
-</DIR>
-<H2>`</H2>
-<DIR>
-<LI><A HREF="grg_52.html#IDX265">` (string index put)</A>
-</DIR>
-<H2>a</H2>
-<DIR>
-<LI><A HREF="grg_51.html#IDX252">and</A>
-</DIR>
-<H2>b</H2>
-<DIR>
-<LI><A HREF="grg_28.html#IDX97">BANNER</A>
-<LI><A HREF="grg_32.html#IDX117">BLOCK</A>
-<LI><A HREF="grg_47.html#IDX219">break</A>
-</DIR>
-<H2>d</H2>
-<DIR>
-<LI><A HREF="grg_20.html#IDX66">DATABASE</A>
-<LI><A HREF="grg_19.html#IDX62">DEFINE</A>
-<LI><A HREF="grg_46.html#IDX211">do</A>
-</DIR>
-<H2>e</H2>
-<DIR>
-<LI><A HREF="grg_46.html#IDX208">elif</A>
-<LI><A HREF="grg_46.html#IDX207">else</A>
-<LI><A HREF="grg_34.html#IDX125">END</A>
-<LI><A HREF="grg_46.html#IDX209">endif</A>
-<LI><A HREF="grg_36.html#IDX149">eq_exit</A>
-<LI><A HREF="grg_36.html#IDX134">eq_init</A>
-<LI><A HREF="grg_36.html#IDX146">eq_post_banner</A>
-<LI><A HREF="grg_36.html#IDX148">eq_post_block</A>
-<LI><A HREF="grg_36.html#IDX143">eq_post_footer</A>
-<LI><A HREF="grg_36.html#IDX142">eq_post_header</A>
-<LI><A HREF="grg_36.html#IDX144">eq_post_page01</A>
-<LI><A HREF="grg_36.html#IDX145">eq_post_pagenn</A>
-<LI><A HREF="grg_36.html#IDX147">eq_post_record</A>
-<LI><A HREF="grg_36.html#IDX139">eq_pre_banner</A>
-<LI><A HREF="grg_36.html#IDX141">eq_pre_block</A>
-<LI><A HREF="grg_36.html#IDX136">eq_pre_footer</A>
-<LI><A HREF="grg_36.html#IDX135">eq_pre_header</A>
-<LI><A HREF="grg_36.html#IDX137">eq_pre_page01</A>
-<LI><A HREF="grg_36.html#IDX138">eq_pre_pagenn</A>
-<LI><A HREF="grg_36.html#IDX140">eq_pre_record</A>
-<LI><A HREF="grg_25.html#IDX86">EQGUILE</A>
-<LI><A HREF="grg_24.html#IDX82">EQUATE</A>
-<LI><A HREF="grg_54.html#IDX276">exec</A>
-<LI><A HREF="grg_47.html#IDX220">exit</A>
-</DIR>
-<H2>f</H2>
-<DIR>
-<LI><A HREF="grg_23.html#IDX79">FILTER</A>
-<LI><A HREF="grg_27.html#IDX93">FOOTER</A>
-</DIR>
-<H2>g</H2>
-<DIR>
-<LI><A HREF="grg_102.html#IDX355">grg_getfield</A>
-<LI><A HREF="grg_102.html#IDX352">grg_getnumsysvar</A>
-<LI><A HREF="grg_102.html#IDX351">grg_getstrsysvar</A>
-<LI><A HREF="grg_102.html#IDX354">grg_putnumsysvar</A>
-<LI><A HREF="grg_102.html#IDX353">grg_putstrsysvar</A>
-</DIR>
-<H2>h</H2>
-<DIR>
-<LI><A HREF="grg_26.html#IDX89">HEADER</A>
-</DIR>
-<H2>i</H2>
-<DIR>
-<LI><A HREF="grg_46.html#IDX205">if</A>
-<LI><A HREF="grg_18.html#IDX57">INCLUDE</A>
-<LI><A HREF="grg_48.html#IDX228">inputs</A>
-</DIR>
-<H2>o</H2>
-<DIR>
-<LI><A HREF="grg_51.html#IDX253">or</A>
-<LI><A HREF="grg_48.html#IDX229">outputs</A>
-</DIR>
-<H2>p</H2>
-<DIR>
-<LI><A HREF="grg_29.html#IDX103">PAGE01</A>
-<LI><A HREF="grg_30.html#IDX108">PAGENN</A>
-<LI><A HREF="grg_33.html#IDX121">PATTERN</A>
-</DIR>
-<H2>r</H2>
-<DIR>
-<LI><A HREF="grg_53.html#IDX272">read</A>
-<LI><A HREF="grg_31.html#IDX113">RECORD</A>
-<LI><A HREF="grg_22.html#IDX75">REVSORT</A>
-<LI><A HREF="grg_46.html#IDX213">roll</A>
-</DIR>
-<H2>s</H2>
-<DIR>
-<LI><A HREF="grg_53.html#IDX271">send</A>
-<LI><A HREF="grg_21.html#IDX70">SORTON</A>
-</DIR>
-<H2>t</H2>
-<DIR>
-<LI><A HREF="grg_46.html#IDX206">then</A>
-<LI><A HREF="grg_46.html#IDX214">through</A>
-</DIR>
-<H2>w</H2>
-<DIR>
-<LI><A HREF="grg_46.html#IDX212">wend</A>
-<LI><A HREF="grg_46.html#IDX210">while</A>
-<LI><A HREF="grg_53.html#IDX270">write</A>
-</DIR>
-<H2>x</H2>
-<DIR>
-<LI><A HREF="grg_51.html#IDX254">xor</A>
-</DIR>
-<H2>|</H2>
-<DIR>
-<LI><A HREF="grg_51.html#IDX258">| (bitwise or)</A>
-</DIR>
-<H2>~</H2>
-<DIR>
-<LI><A HREF="grg_51.html#IDX260">~ (bitwise ones complement)</A>
-</DIR>
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_105.html">previous</A>, 
<A HREF="grg_107.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_107.html
===================================================================
RCS file: doc/grg/grg_107.html
diff -N doc/grg/grg_107.html
--- doc/grg/grg_107.html        13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,70 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Variable Index</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_106.html">previous</A>, 
<A HREF="grg_108.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H1><A NAME="SEC107" HREF="grg_toc.html#TOC107">Variable Index</A></H1>
-
-<P>
-<H2>_</H2>
-<DIR>
-<LI><A HREF="grg_37.html#IDX159">_eq_banner_nest</A>
-<LI><A HREF="grg_37.html#IDX158">_eq_banner_val</A>
-<LI><A HREF="grg_37.html#IDX163">_eq_base</A>
-<LI><A HREF="grg_37.html#IDX169">_eq_block</A>
-<LI><A HREF="grg_37.html#IDX155">_eq_clock</A>
-<LI><A HREF="grg_37.html#IDX161">_eq_currec</A>
-<LI><A HREF="grg_37.html#IDX156">_eq_datenow</A>
-<LI><A HREF="grg_37.html#IDX167">_eq_dbfname</A>
-<LI><A HREF="grg_37.html#IDX166">_eq_dbfpath</A>
-<LI><A HREF="grg_37.html#IDX168">_eq_dbftype</A>
-<LI><A HREF="grg_37.html#IDX164">_eq_extn</A>
-<LI><A HREF="grg_37.html#IDX162">_eq_file</A>
-<LI><A HREF="grg_37.html#IDX165">_eq_outfile</A>
-<LI><A HREF="grg_37.html#IDX157">_eq_timenow</A>
-<LI><A HREF="grg_37.html#IDX160">_eq_totrec</A>
-<LI><A HREF="grg_37.html#IDX153">_eq_trace</A>
-<LI><A HREF="grg_37.html#IDX154">_eq_verbose</A>
-</DIR>
-<H2>c</H2>
-<DIR>
-<LI><A HREF="grg_12.html#IDX36">CONCAT</A>
-</DIR>
-<H2>d</H2>
-<DIR>
-<LI><A HREF="grg_10.html#IDX29">DELIM</A>
-<LI><A HREF="grg_11.html#IDX33">DFAMODE</A>
-</DIR>
-<H2>f</H2>
-<DIR>
-<LI><A HREF="grg_8.html#IDX25">FESCSUB</A>
-</DIR>
-<H2>n</H2>
-<DIR>
-<LI><A HREF="grg_14.html#IDX43">NAMCOL</A>
-<LI><A HREF="grg_7.html#IDX22">NPAGE</A>
-<LI><A HREF="grg_15.html#IDX47">NULL</A>
-</DIR>
-<H2>p</H2>
-<DIR>
-<LI><A HREF="grg_16.html#IDX50">PAGE1</A>
-<LI><A HREF="grg_16.html#IDX51">PAGEN</A>
-<LI><A HREF="grg_13.html#IDX40">PHYSDB</A>
-</DIR>
-<H2>t</H2>
-<DIR>
-<LI><A HREF="grg_9.html#IDX27">TEXEXT</A>
-</DIR>
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_106.html">previous</A>, 
<A HREF="grg_108.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_108.html
===================================================================
RCS file: doc/grg/grg_108.html
diff -N doc/grg/grg_108.html
--- doc/grg/grg_108.html        13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,329 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Concept Index</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_107.html">previous</A>, 
next, last section, <A HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H1><A NAME="SEC108" HREF="grg_toc.html#TOC108">Concept Index</A></H1>
-
-<P>
-<H2>a</H2>
-<DIR>
-<LI><A HREF="grg_12.html#IDX39">Appending to output</A>
-<LI><A HREF="grg_54.html#IDX277">Arrays</A>
-<LI><A HREF="grg_21.html#IDX74">Ascending Sort</A>
-<LI><A HREF="grg_44.html#IDX184">Assignment operator</A>
-<LI><A HREF="grg_92.html#IDX323">AWK patterns</A>
-</DIR>
-<H2>b</H2>
-<DIR>
-<LI><A HREF="grg_28.html#IDX100">Banner Text</A>
-<LI><A HREF="grg_51.html#IDX256">Bitwise operators</A>
-<LI><A HREF="grg_51.html#IDX250">Boolean operators</A>
-<LI><A HREF="grg_55.html#IDX280">Brackets</A>
-<LI><A HREF="grg_47.html#IDX217">Break operator</A>
-<LI><A HREF="grg_36.html#IDX131">Builtin, equates</A>
-</DIR>
-<H2>c</H2>
-<DIR>
-<LI><A HREF="grg_48.html#IDX225">Call mechanism</A>
-<LI><A HREF="grg_48.html#IDX224">Calling other equates</A>
-<LI><A HREF="grg_90.html#IDX318">Changing pattern mode</A>
-<LI><A HREF="grg_14.html#IDX44">Column naming</A>
-<LI><A HREF="grg_2.html#IDX9">Command line options</A>
-<LI><A HREF="grg_56.html#IDX282">Comments, equates</A>
-<LI><A HREF="grg_50.html#IDX242">Comparison operators</A>
-<LI><A HREF="grg_12.html#IDX37">Concatenation</A>
-<LI><A HREF="grg_24.html#IDX85">Conditional Equate Expressions</A>
-<LI><A HREF="grg_46.html#IDX200">Conditionals</A>
-<LI><A HREF="grg_46.html#IDX199">Constructs</A>
-</DIR>
-<H2>d</H2>
-<DIR>
-<LI><A HREF="grg_40.html#IDX172">Data types</A>
-<LI><A HREF="grg_82.html#IDX297">Databases, DATABASE for text databases</A>
-<LI><A HREF="grg_20.html#IDX69">Databases, defining</A>
-<LI><A HREF="grg_82.html#IDX296">Databases, defining text databases</A>
-<LI><A HREF="grg_81.html#IDX292">Databases, delimited text files</A>
-<LI><A HREF="grg_2.html#IDX8">Debug options</A>
-<LI><A HREF="grg_57.html#IDX285">Debugging equates</A>
-<LI><A HREF="grg_93.html#IDX325">Debugging patterns</A>
-<LI><A HREF="grg_49.html#IDX240">Decrement</A>
-<LI><A HREF="grg_3.html#IDX13">Defining a report</A>
-<LI><A HREF="grg_39.html#IDX171">Defining equates</A>
-<LI><A HREF="grg_25.html#IDX88">Defining GUILE Equate Expressions</A>
-<LI><A HREF="grg_19.html#IDX64">Defining Macros</A>
-<LI><A HREF="grg_28.html#IDX101">Defining, banner text</A>
-<LI><A HREF="grg_29.html#IDX106">Defining, first page text</A>
-<LI><A HREF="grg_27.html#IDX96">Defining, footer text</A>
-<LI><A HREF="grg_26.html#IDX92">Defining, header text</A>
-<LI><A HREF="grg_30.html#IDX111">Defining, page text</A>
-<LI><A HREF="grg_85.html#IDX304">Defining, patterns</A>
-<LI><A HREF="grg_31.html#IDX116">Defining, record text</A>
-<LI><A HREF="grg_82.html#IDX295">Defining, text databases</A>
-<LI><A HREF="grg_33.html#IDX124">Defining, user patterns</A>
-<LI><A HREF="grg_32.html#IDX120">Defining, user text blocks</A>
-<LI><A HREF="grg_3.html#IDX11">Definition file format</A>
-<LI><A HREF="grg_4.html#IDX15">Definition file structure</A>
-<LI><A HREF="grg_81.html#IDX291">Delimited text files</A>
-<LI><A HREF="grg_22.html#IDX78">Descending Sort</A>
-</DIR>
-<H2>e</H2>
-<DIR>
-<LI><A HREF="grg_34.html#IDX127">Ending Text Blocks</A>
-<LI><A HREF="grg_6.html#IDX20">Environment Variables</A>
-<LI><A HREF="grg_48.html#IDX226">Equate call operator</A>
-<LI><A HREF="grg_35.html#IDX128">Equate Expressions</A>
-<LI><A HREF="grg_43.html#IDX181">Equate, global variables</A>
-<LI><A HREF="grg_42.html#IDX178">Equate, local variables</A>
-<LI><A HREF="grg_51.html#IDX255">Equates, bitwise operators</A>
-<LI><A HREF="grg_51.html#IDX249">Equates, boolean operators</A>
-<LI><A HREF="grg_48.html#IDX221">Equates, calling other equates</A>
-<LI><A HREF="grg_56.html#IDX281">Equates, comments</A>
-<LI><A HREF="grg_50.html#IDX241">Equates, comparison operators</A>
-<LI><A HREF="grg_46.html#IDX197">Equates, conditionals</A>
-<LI><A HREF="grg_46.html#IDX196">Equates, constructs</A>
-<LI><A HREF="grg_40.html#IDX173">Equates, data types</A>
-<LI><A HREF="grg_57.html#IDX284">Equates, debugging</A>
-<LI><A HREF="grg_39.html#IDX170">Equates, defining</A>
-<LI><A HREF="grg_104.html#IDX358">Equates, examples</A>
-<LI><A HREF="grg_45.html#IDX186">Equates, field reference</A>
-<LI><A HREF="grg_47.html#IDX215">Equates, flow control</A>
-<LI><A HREF="grg_101.html#IDX346">Equates, guile support</A>
-<LI><A HREF="grg_53.html#IDX266">Equates, i/o operators</A>
-<LI><A HREF="grg_48.html#IDX222">Equates, inputs</A>
-<LI><A HREF="grg_46.html#IDX198">Equates, loops</A>
-<LI><A HREF="grg_54.html#IDX273">Equates, miscellaneous operators</A>
-<LI><A HREF="grg_49.html#IDX230">Equates, numeric operators</A>
-<LI><A HREF="grg_55.html#IDX278">Equates, operator precedence</A>
-<LI><A HREF="grg_48.html#IDX223">Equates, outputs</A>
-<LI><A HREF="grg_36.html#IDX132">Equates, predefined</A>
-<LI><A HREF="grg_52.html#IDX261">Equates, string operators</A>
-<LI><A HREF="grg_36.html#IDX133">Equates, text body surround</A>
-<LI><A HREF="grg_57.html#IDX287">Equates, tracing</A>
-<LI><A HREF="grg_89.html#IDX316">Equates, used in patterns</A>
-<LI><A HREF="grg_44.html#IDX182">Equates, variable assignment</A>
-<LI><A HREF="grg_41.html#IDX174">Equates, variables</A>
-<LI><A HREF="grg_103.html#IDX356">Error messages</A>
-<LI><A HREF="grg_8.html#IDX26">Escaping, percent character</A>
-<LI><A HREF="grg_104.html#IDX357">Examples</A>
-<LI><A HREF="grg_54.html#IDX275">Executing equate strings</A>
-<LI><A HREF="grg_47.html#IDX218">Exit operator</A>
-</DIR>
-<H2>f</H2>
-<DIR>
-<LI><A HREF="grg_1.html#IDX3">Features</A>
-<LI><A HREF="grg_100.html#IDX343">Field length</A>
-<LI><A HREF="grg_45.html#IDX191">Field length operator</A>
-<LI><A HREF="grg_45.html#IDX190">Field name operator</A>
-<LI><A HREF="grg_14.html#IDX45">Field naming</A>
-<LI><A HREF="grg_45.html#IDX187">Field reference</A>
-<LI><A HREF="grg_45.html#IDX189">Field type operator</A>
-<LI><A HREF="grg_45.html#IDX188">Field value operator</A>
-<LI><A HREF="grg_14.html#IDX46">Fields, names</A>
-<LI><A HREF="grg_9.html#IDX28">File Extension</A>
-<LI><A HREF="grg_3.html#IDX10">File format</A>
-<LI><A HREF="grg_18.html#IDX59">Files, include files</A>
-<LI><A HREF="grg_23.html#IDX81">Filtering</A>
-<LI><A HREF="grg_29.html#IDX105">First Page Text</A>
-<LI><A HREF="grg_47.html#IDX216">Flow control</A>
-<LI><A HREF="grg_27.html#IDX95">Footer Text</A>
-</DIR>
-<H2>g</H2>
-<DIR>
-<LI><A HREF="grg_2.html#IDX6">Generating a report</A>
-<LI><A HREF="grg_43.html#IDX180">Global variables</A>
-<LI><A HREF="grg_95.html#IDX331">GNU SQL Server</A>
-<LI><A HREF="grg_1.html#IDX1">GRG</A>
-<LI><A HREF="grg_2.html#IDX7">GRG definition files</A>
-<LI><A HREF="grg_3.html#IDX12">GRG file format</A>
-<LI><A HREF="grg_102.html#IDX347">GRG procedures</A>
-<LI><A HREF="grg_4.html#IDX16">GRG, file structure</A>
-<LI><A HREF="grg_5.html#IDX19">GRG, processing sequence</A>
-<LI><A HREF="grg_101.html#IDX345">GUILE equates</A>
-<LI><A HREF="grg_102.html#IDX350">GUILE, database access</A>
-<LI><A HREF="grg_102.html#IDX348">GUILE, GRG procedures</A>
-<LI><A HREF="grg_102.html#IDX349">GUILE, system variable access</A>
-</DIR>
-<H2>h</H2>
-<DIR>
-<LI><A HREF="grg_80.html#IDX289">Hard limits</A>
-<LI><A HREF="grg_18.html#IDX61">Header Files</A>
-<LI><A HREF="grg_26.html#IDX91">Header Text</A>
-</DIR>
-<H2>i</H2>
-<DIR>
-<LI><A HREF="grg_53.html#IDX269">I/O operators</A>
-<LI><A HREF="grg_46.html#IDX202">if ... then construct</A>
-<LI><A HREF="grg_18.html#IDX60">Including Files</A>
-<LI><A HREF="grg_49.html#IDX239">Increment</A>
-<LI><A HREF="grg_95.html#IDX330">Ingres</A>
-<LI><A HREF="grg_4.html#IDX14">Input file structure</A>
-<LI><A HREF="grg_81.html#IDX294">Input files, demilited text</A>
-<LI><A HREF="grg_11.html#IDX35">Input Mode</A>
-<LI><A HREF="grg_53.html#IDX267">Input Operators</A>
-<LI><A HREF="grg_88.html#IDX313">Input Pattern</A>
-<LI><A HREF="grg_10.html#IDX31">Inputs, delimiter</A>
-</DIR>
-<H2>l</H2>
-<DIR>
-<LI><A HREF="grg_80.html#IDX288">Limits</A>
-<LI><A HREF="grg_94.html#IDX327">Limits for patterns</A>
-<LI><A HREF="grg_16.html#IDX54">Line breaking</A>
-<LI><A HREF="grg_42.html#IDX177">Local variables</A>
-<LI><A HREF="grg_51.html#IDX251">Logical operators</A>
-<LI><A HREF="grg_46.html#IDX201">Loops</A>
-</DIR>
-<H2>m</H2>
-<DIR>
-<LI><A HREF="grg_28.html#IDX98">Macros, banner text</A>
-<LI><A HREF="grg_24.html#IDX83">Macros, conditional equate expressions</A>
-<LI><A HREF="grg_24.html#IDX84">Macros, defining conditional equates</A>
-<LI><A HREF="grg_20.html#IDX67">Macros, defining databases</A>
-<LI><A HREF="grg_34.html#IDX126">Macros, ending text blocks</A>
-<LI><A HREF="grg_23.html#IDX80">Macros, filtering</A>
-<LI><A HREF="grg_29.html#IDX104">Macros, first page text</A>
-<LI><A HREF="grg_27.html#IDX94">Macros, footer text</A>
-<LI><A HREF="grg_25.html#IDX87">Macros, GUILE equate expressions</A>
-<LI><A HREF="grg_26.html#IDX90">Macros, header text</A>
-<LI><A HREF="grg_18.html#IDX58">Macros, including files</A>
-<LI><A HREF="grg_20.html#IDX68">Macros, input files</A>
-<LI><A HREF="grg_33.html#IDX122">Macros, input patterns</A>
-<LI><A HREF="grg_30.html#IDX109">Macros, page text</A>
-<LI><A HREF="grg_17.html#IDX56">Macros, Predefined</A>
-<LI><A HREF="grg_31.html#IDX114">Macros, record text</A>
-<LI><A HREF="grg_22.html#IDX76">Macros, reverse sorting</A>
-<LI><A HREF="grg_28.html#IDX99">Macros, sorted group banners</A>
-<LI><A HREF="grg_21.html#IDX71">Macros, sorting</A>
-<LI><A HREF="grg_19.html#IDX63">Macros, user defined</A>
-<LI><A HREF="grg_32.html#IDX118">Macros, user text blocks</A>
-<LI><A HREF="grg_88.html#IDX312">Matching input patterns</A>
-<LI><A HREF="grg_49.html#IDX232">Mathematical operators</A>
-<LI><A HREF="grg_54.html#IDX274">Miscallaneous operators</A>
-</DIR>
-<H2>n</H2>
-<DIR>
-<LI><A HREF="grg_35.html#IDX129">Native Language</A>
-<LI><A HREF="grg_15.html#IDX48">NULL Handling</A>
-<LI><A HREF="grg_99.html#IDX342">NULL, in SQL databases</A>
-<LI><A HREF="grg_49.html#IDX231">Numeric operators</A>
-</DIR>
-<H2>o</H2>
-<DIR>
-<LI><A HREF="grg_55.html#IDX279">Operator Precedence</A>
-<LI><A HREF="grg_12.html#IDX38">Output File, appending</A>
-<LI><A HREF="grg_53.html#IDX268">Output Operators</A>
-</DIR>
-<H2>p</H2>
-<DIR>
-<LI><A HREF="grg_16.html#IDX53">Page breaking</A>
-<LI><A HREF="grg_7.html#IDX24">Page Breaks</A>
-<LI><A HREF="grg_30.html#IDX110">Page Text</A>
-<LI><A HREF="grg_29.html#IDX107">Paging, first page</A>
-<LI><A HREF="grg_7.html#IDX23">Paging, page breaks</A>
-<LI><A HREF="grg_30.html#IDX112">Paging, page text</A>
-<LI><A HREF="grg_16.html#IDX52">Paging, setting up pages</A>
-<LI><A HREF="grg_90.html#IDX317">Patterns, changing modes</A>
-<LI><A HREF="grg_93.html#IDX324">Patterns, debugging</A>
-<LI><A HREF="grg_33.html#IDX123">Patterns, defining</A>
-<LI><A HREF="grg_10.html#IDX30">Patterns, delimiter</A>
-<LI><A HREF="grg_91.html#IDX320">Patterns, field/record structure</A>
-<LI><A HREF="grg_92.html#IDX322">Patterns, for awk-style processing</A>
-<LI><A HREF="grg_88.html#IDX311">Patterns, input pattern</A>
-<LI><A HREF="grg_94.html#IDX326">Patterns, limits</A>
-<LI><A HREF="grg_11.html#IDX34">Patterns, mode</A>, <A 
HREF="grg_87.html#IDX310">Patterns, mode</A>
-<LI><A HREF="grg_91.html#IDX319">Patterns, result token</A>
-<LI><A HREF="grg_86.html#IDX307">Patterns, tokens and syntax</A>
-<LI><A HREF="grg_89.html#IDX315">Patterns, using equates</A>
-<LI><A HREF="grg_13.html#IDX42">Physical database</A>
-<LI><A HREF="grg_36.html#IDX130">Predefined equates</A>
-<LI><A HREF="grg_17.html#IDX55">Predefined Macros</A>
-<LI><A HREF="grg_37.html#IDX150">Predefined System Variables</A>
-<LI><A HREF="grg_5.html#IDX18">Processing sequence</A>
-</DIR>
-<H2>q</H2>
-<DIR>
-<LI><A HREF="grg_95.html#IDX329">Querying SQL databases</A>
-</DIR>
-<H2>r</H2>
-<DIR>
-<LI><A HREF="grg_95.html#IDX332">RDBMS support</A>
-<LI><A HREF="grg_31.html#IDX115">Record Text</A>
-<LI><A HREF="grg_98.html#IDX339">Referencing fields in SQL databases</A>
-<LI><A HREF="grg_84.html#IDX301">Referencing fields, text databases</A>
-<LI><A HREF="grg_1.html#IDX2">Report generation</A>
-<LI><A HREF="grg_105.html#IDX359">Revision history</A>
-<LI><A HREF="grg_46.html#IDX203">roll ... through construct</A>
-<LI><A HREF="grg_2.html#IDX4">Running GRG</A>
-</DIR>
-<H2>s</H2>
-<DIR>
-<LI><A HREF="grg_80.html#IDX290">Size limits</A>
-<LI><A HREF="grg_21.html#IDX72">Sorting</A>
-<LI><A HREF="grg_21.html#IDX73">Sorting, ascending</A>
-<LI><A HREF="grg_28.html#IDX102">Sorting, banner text</A>
-<LI><A HREF="grg_22.html#IDX77">Sorting, descending</A>
-<LI><A HREF="grg_15.html#IDX49">SQL database files, NULL handling</A>
-<LI><A HREF="grg_13.html#IDX41">SQL database files, physical</A>
-<LI><A HREF="grg_95.html#IDX328">SQL databases</A>
-<LI><A HREF="grg_96.html#IDX333">SQL databases, defining</A>
-<LI><A HREF="grg_99.html#IDX341">SQL databases, NULL handling</A>
-<LI><A HREF="grg_97.html#IDX337">SQL databases, physical database</A>
-<LI><A HREF="grg_98.html#IDX338">SQL databases, referencing fields</A>
-<LI><A HREF="grg_97.html#IDX336">SQL databases, selecting</A>
-<LI><A HREF="grg_96.html#IDX335">SQL databases, using DATABASE</A>
-<LI><A HREF="grg_98.html#IDX340">SQL databases, using NAMCOL</A>
-<LI><A HREF="grg_96.html#IDX334">SQL input files</A>
-<LI><A HREF="grg_2.html#IDX5">Starting</A>
-<LI><A HREF="grg_52.html#IDX262">String operators</A>
-<LI><A HREF="grg_4.html#IDX17">Structure</A>
-<LI><A HREF="grg_86.html#IDX309">Syntax, of patterns</A>
-<LI><A HREF="grg_37.html#IDX151">System Variables</A>
-</DIR>
-<H2>t</H2>
-<DIR>
-<LI><A HREF="grg_10.html#IDX32">Text Database Files, delimiter</A>
-<LI><A HREF="grg_84.html#IDX302">Text databases, column names</A>
-<LI><A HREF="grg_83.html#IDX298">Text databases, delimiter setting</A>
-<LI><A HREF="grg_91.html#IDX321">Text databases, fields and records</A>
-<LI><A HREF="grg_85.html#IDX305">Text databases, redefining patterns</A>
-<LI><A HREF="grg_84.html#IDX300">Text databases, referencing fields</A>
-<LI><A HREF="grg_83.html#IDX299">Text databases, using DELIM</A>
-<LI><A HREF="grg_84.html#IDX303">Text databases, using NAMCOL</A>
-<LI><A HREF="grg_81.html#IDX293">Text processing</A>
-<LI><A HREF="grg_88.html#IDX314">Tokens</A>
-<LI><A HREF="grg_86.html#IDX308">Tokens, in patterns</A>
-<LI><A HREF="grg_57.html#IDX286">Tracing</A>
-</DIR>
-<H2>u</H2>
-<DIR>
-<LI><A HREF="grg_19.html#IDX65">User Defined Macros</A>
-<LI><A HREF="grg_85.html#IDX306">User defined text databases</A>
-<LI><A HREF="grg_32.html#IDX119">User Text Blocks</A>
-<LI><A HREF="grg_101.html#IDX344">Using GUILE</A>
-</DIR>
-<H2>v</H2>
-<DIR>
-<LI><A HREF="grg_44.html#IDX183">Variable Assignment</A>
-<LI><A HREF="grg_6.html#IDX21">Variables, Environment</A>
-<LI><A HREF="grg_41.html#IDX175">Variables, equate</A>
-<LI><A HREF="grg_43.html#IDX179">Variables, global</A>
-<LI><A HREF="grg_42.html#IDX176">Variables, local</A>
-<LI><A HREF="grg_37.html#IDX152">Variables, system</A>
-</DIR>
-<H2>w</H2>
-<DIR>
-<LI><A HREF="grg_46.html#IDX204">while ... do ... wend construct</A>
-</DIR>
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_107.html">previous</A>, 
next, last section, <A HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_11.html
===================================================================
RCS file: doc/grg/grg_11.html
diff -N doc/grg/grg_11.html
--- doc/grg/grg_11.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,35 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - DFAMODE</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_10.html">previous</A>, 
<A HREF="grg_12.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC11" HREF="grg_toc.html#TOC11">DFAMODE</A></H4>
-
-<P>
-<A NAME="IDX33"></A>
-<A NAME="IDX34"></A>
-<A NAME="IDX35"></A>
-The <STRONG>DFAMODE</STRONG> variable holds the initial mode of the DFA.
-Normally set to <CODE>&#60;awk&#62;&#60;nul&#62;</CODE> for processing 
delimited ascii text like input to
-<EM>awk</EM> (fields separated by space or tab, one record per line). It would
-only be necessary to change this when a new pattern matching style has been
-defined so that it can be used instead. The example program fragment below sets
-the value to <CODE>&#60;usr&#62;&#60;nul&#62;</CODE> where this would be a 
user defined pattern.
-
-</P>
-
-<PRE>
-%%DEFINE DFAMODE &#60;usr&#62;&#60;nul&#62;
-</PRE>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_10.html">previous</A>, 
<A HREF="grg_12.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_12.html
===================================================================
RCS file: doc/grg/grg_12.html
diff -N doc/grg/grg_12.html
--- doc/grg/grg_12.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,35 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - CONCAT</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_11.html">previous</A>, 
<A HREF="grg_13.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC12" HREF="grg_toc.html#TOC12">CONCAT</A></H4>
-
-<P>
-<A NAME="IDX36"></A>
-<A NAME="IDX37"></A>
-<A NAME="IDX38"></A>
-<A NAME="IDX39"></A>
-The <STRONG>CONCAT</STRONG> variable when set means that generated
-output is appended to the defined output file, rather than the output file
-being recreated on each run which is the default. Has no affect on any files
-generated during processing other than the main output file. The example
-program fragment below sets the variable, there is no way to reset it.
-
-</P>
-
-<PRE>
-%%DEFINE CONCAT
-</PRE>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_11.html">previous</A>, 
<A HREF="grg_13.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_13.html
===================================================================
RCS file: doc/grg/grg_13.html
diff -N doc/grg/grg_13.html
--- doc/grg/grg_13.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,39 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - PHYSDB</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_12.html">previous</A>, 
<A HREF="grg_14.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC13" HREF="grg_toc.html#TOC13">PHYSDB</A></H4>
-
-<P>
-<A NAME="IDX40"></A>
-<A NAME="IDX41"></A>
-<A NAME="IDX42"></A>
-The <STRONG>PHYSDB</STRONG> variable holds the name of the <EM>Ingres</EM> 
physical database
-to which an SQL query is to be directed. This variable <STRONG>must</STRONG> 
be defined
-whenever an SQL database file is used otherwise an error will be generated.
-Only one physical database can therefore be referred to from one GRG file.
-The example program fragment below sets the physical database name to 
<CODE>mydb</CODE>.
-
-</P>
-
-<PRE>
-%%DEFINE PHYSDB mydb
-</PRE>
-
-<P>
-This variable is not needed if the <EM>GNU SQL Server</EM> database is being 
used
-as this does not support multiple physical databases.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_12.html">previous</A>, 
<A HREF="grg_14.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_14.html
===================================================================
RCS file: doc/grg/grg_14.html
diff -N doc/grg/grg_14.html
--- doc/grg/grg_14.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,48 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - NAMCOL</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_13.html">previous</A>, 
<A HREF="grg_15.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC14" HREF="grg_toc.html#TOC14">NAMCOL</A></H4>
-
-<P>
-<A NAME="IDX43"></A>
-<A NAME="IDX44"></A>
-<A NAME="IDX45"></A>
-<A NAME="IDX46"></A>
-The <STRONG>NAMCOL</STRONG> variable when set means that the field names
-given to columns from an SQL query will take the name given in the SQL query
-itself. The default behaviour is to generate numbered names for columns
-in the
-same way as for delimited ascii files. Note that internally column names are
-held in uppercase and have a maximum of ten characters so SQL column names from
-the query may be truncated and will be mapped to uppercase for the purposes of
-field reference within the GRG file. The example program fragment below
-sets <STRONG>NAMCOL</STRONG> so that columns are named, there is no way to 
reset it once
-the value has been changed. Note also that it applies to all queries so
-either all database files defined as SQL queries will have named columns or
-none of them will.
-
-</P>
-
-<PRE>
-%%DEFINE NAMCOL
-</PRE>
-
-<P>
-If the <STRONG>NAMCOL</STRONG> variable is set then the column names for any 
text
-delimited database files will be taken from the field values of the first
-record in the file and that record will then be discarded.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_13.html">previous</A>, 
<A HREF="grg_15.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_15.html
===================================================================
RCS file: doc/grg/grg_15.html
diff -N doc/grg/grg_15.html
--- doc/grg/grg_15.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,34 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - NULL</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_14.html">previous</A>, 
<A HREF="grg_16.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC15" HREF="grg_toc.html#TOC15">NULL</A></H4>
-
-<P>
-<A NAME="IDX47"></A>
-<A NAME="IDX48"></A>
-<A NAME="IDX49"></A>
-The <STRONG>NULL</STRONG> variable holds a value which defines what will be
-used for <CODE>null</CODE> values returned from an SQL query. This is required 
because
-GRG does not have an explicit <CODE>null</CODE> value. The default is to
-just leave <CODE>null</CODE> values as an empty string. The example program 
fragment below
-defines <STRONG>NULL</STRONG> so that <CODE>null</CODE> values are replaced 
with the dash character.
-
-</P>
-
-<PRE>
-%%DEFINE NULL -
-</PRE>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_14.html">previous</A>, 
<A HREF="grg_16.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_16.html
===================================================================
RCS file: doc/grg/grg_16.html
diff -N doc/grg/grg_16.html
--- doc/grg/grg_16.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,64 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - PAGE1 and PAGEN</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_15.html">previous</A>, 
<A HREF="grg_17.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC16" HREF="grg_toc.html#TOC16">PAGE1 and PAGEN</A></H4>
-
-<P>
-<A NAME="IDX50"></A>
-<A NAME="IDX51"></A>
-<A NAME="IDX52"></A>
-<A NAME="IDX53"></A>
-<A NAME="IDX54"></A>
-The <STRONG>PAGE1</STRONG> and <STRONG>PAGEN</STRONG> variables set the number 
of records per page
-for the first page and every other page respectively. They are normally both
-set to one. Unlike the other environment variables these are set with two
-unique predefined macros. Each macro can also be used to define the text body
-associated with the start of the first page or every other page. In the
-example program fragment below the number of records is set to three
-on the first page and four on every subsequent page.
-
-</P>
-
-<PRE>
-%%PAGE01 3
-%%PAGENN 4
-</PRE>
-
-<P>
-The PAGE01 and PAGENN predefined macros can also
-take a second numeric argument. This is the number of lines per page. If the
-number of lines per page is execeeded then this will cause a page break
-irrespective of the number of records per page. The number of records
-per page however is not reset, and so this also will cause a page break.
-By setting one or other of these paramaters to 0 then the behaviour can
-be defined as n records per page, or n lines per page. It is illegal to
-set both parameters to 0. The default with no arguments specified is
-0 for lines per page (not used) and infinite for records per page (there
-will be no automatic page breaks). Note that lines per page includes lines from
-the header and footer text bodies, but that records per page doesn't. This
-mechanism can be used to handle variable length records in plaintext based
-output, it is of less use for <EM>LaTeX</EM> output. If there is no
-PAGE01 definition then all pages will use the definition given
-for PAGENN. See section <A HREF="grg_29.html#SEC29">PAGE01</A> and
-section <A HREF="grg_30.html#SEC30">PAGENN</A> for further details.
-
-</P>
-<P>
-Note that the GPPPAGE01, TEXPAGE01, GPPPAGENN and
-TEXPAGENN predefined macros which the above two replace are deprecated
-and should not be used.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_15.html">previous</A>, 
<A HREF="grg_17.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_17.html
===================================================================
RCS file: doc/grg/grg_17.html
diff -N doc/grg/grg_17.html
--- doc/grg/grg_17.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,107 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Predefined Macros</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_16.html">previous</A>, 
<A HREF="grg_18.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC17" HREF="grg_toc.html#TOC17">Predefined Macros</A></H3>
-
-<P>
-<A NAME="IDX55"></A>
-<A NAME="IDX56"></A>
-Predefined macros must start at the beginning of a line (or only be preceeded
-by whitespace on the line). There must be nothing else on the line other than
-any arguments to the predefined macro. Predefined macros are not case
-sensitive (all upper case or all lower case or mixed case will be treated as
-the same macro name). This is an exception to the rule that upper and lower
-case characters are unique, for example <CODE>%%Sorton</CODE> is identical to
-<CODE>%%SORTON</CODE> but variable names such as <CODE>blah</CODE> and 
<CODE>Blah</CODE> are
-unique. Predefined macros cannot be used within a text body. They can occur
-in any order (there are no dependencies during parsing) with the exception
-that user defined macros must be defined before they are used (otherwise they
-will not be expanded).
-
-</P>
-<P>
-All predefined macros start with a <CODE>%%</CODE> sequence, followed by the 
rest
-of the macro name. The <CODE>%%gpp</CODE> and <CODE>%%tex</CODE> start 
sequences are
-deprecated and should not be used.
-
-</P>
-<P>
-Some predefined macros have arguments. These have the following forms. A
-<EM>numeric</EM> argument is any decimal number. A <EM>string</EM> argument is 
-enclosed in double quotes and can include any character except a double
-quote. A <EM>string</EM> argument cannot extend over a newline. A 
<EM>field</EM>
-argument is the name of a database field. As in text bodies the name must
-be in capitals and should be preceeded by the <CODE>%</CODE> character. A
-<EM>macro</EM> argument is a macro name followed by a space or a newline. If
-followed by a space then anything else up to a newline is taken to be the
-macros definition. A macro name must start with an alphabetic or underscore
-character, but can be followed by any upper or lower case alphabetic character,
-numeric character, or underscore character. Note that unlike predefined
-macros the macro name is case sensitive.
-
-</P>
-<P>
-Other predefined macros start a text body on the following line. A text body
-can include almost any characters whatsoever. A text body is terminated by any
-line starting with a <CODE>%%</CODE> sequence and followed by a valid 
predefined
-macro. A line starting with <CODE>%%</CODE>
-followed by whitespace will be treated as a comment and discarded from the text
-body. Apart from at the start of a line a <CODE>%%</CODE> sequence is treated 
as
-the start of a user defined macro or equate the name of which should
-immediately follow. In the
-former case the user defined macro is expanded and the definition replaces the
-<CODE>%%</CODE> and user defined macro name sequence. Similarly an equate is
-processed and the result expanded in place (an equate need not return a result
-in which case the result will be blank and the <CODE>%%</CODE> plus equate name
-sequence is removed). The <CODE>#</CODE> sequence can also be used to refer to 
an
-equate to process and expand (but not a user defined macro). This could be
-used where an equate name and a user defined macro name share the same name,
-since if a macro of the same name exists this will always be favoured over
-the equate, but by using a hash character instead it makes it explicit that
-an equate is being called and not a user defined macro.
-
-</P>
-<P>
-The name of an equate can be immediately followed by <CODE>(...)</CODE> which 
contains
-a comma separated list of arguments to the equate, each argument can be any
-expression (or expressions) that results in a value. The equate name and the
-entire contents of the brackets is replaced by the evaluation of the equate and
-argument expressions. Note that the argument expressions should be given in
-unreversed order if the equate was defined unreversed and reversed order
-otherwise.
-
-</P>
-<P>
-If the result of an equate that is called from within a text body is a
-string which is itself an equate (or includes an equate) then this will get
-reprocessed and so on. This is similar to the way user defined macros will
-continually get expanded.
-
-</P>
-<P>
-A <CODE>\&#60;newline&#62;</CODE> sequence at the end of a line in a text body 
will
-escape the newline. This is useful if a text body is a one line equate call
-that may not print anything, without adding this to the end you will always
-get at least one blank line.
-
-</P>
-<P>
-A <CODE>%</CODE> sequence followed by a field name in a text body will be 
expanded
-with the contents of that field from the current record of the master database
-file.
-
-</P>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_16.html">previous</A>, 
<A HREF="grg_18.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_18.html
===================================================================
RCS file: doc/grg/grg_18.html
diff -N doc/grg/grg_18.html
--- doc/grg/grg_18.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,45 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - INCLUDE</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_17.html">previous</A>, 
<A HREF="grg_19.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC18" HREF="grg_toc.html#TOC18">INCLUDE</A></H4>
-
-<P>
-<A NAME="IDX57"></A>
-<A NAME="IDX58"></A>
-<A NAME="IDX59"></A>
-<A NAME="IDX60"></A>
-<A NAME="IDX61"></A>
-Use this macro to include another file (or multiple files) into the current
-file. This macro should be followed by one or more <EM>string</EM> arguments. 
Each
-should be the full name of a file to include at this point. The included file
-can also include other files. Each include file cannot be bigger than the
-maximum text body size, and if multiple include files are given as arguments
-to this macro then the summed size of all the include files given cannot
-be more than the maximum text body size. The example below shows three files
-being included.
-
-</P>
-
-<PRE>
-%%INCLUDE "header.grg" "footer.grg"
-%%INCLUDE "record.type1"
-</PRE>
-
-<P>
-Note that the GPPINCLUDE and TEXINCLUDE predefined macros which
-the above replaces are deprecated and should not be used.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_17.html">previous</A>, 
<A HREF="grg_19.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_19.html
===================================================================
RCS file: doc/grg/grg_19.html
diff -N doc/grg/grg_19.html
--- doc/grg/grg_19.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,66 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - DEFINE</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_18.html">previous</A>, 
<A HREF="grg_20.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC19" HREF="grg_toc.html#TOC19">DEFINE</A></H4>
-
-<P>
-<A NAME="IDX62"></A>
-<A NAME="IDX63"></A>
-<A NAME="IDX64"></A>
-<A NAME="IDX65"></A>
-Use this macro to define or redefine user macros. These can then be used in
-text bodies where they will be fully expanded. A macro definition can itself
-include user macros in the same way as text bodies (these will only be
-expanded from within the text body). However, predefined macros cannot be used
-in user macro definitions, nor can they be defined or redefined.
-This macro takes a <EM>macro</EM> argument which can either be just the name of
-the user macro being defined, or can be the name followed by the replacement
-text for that macro. To include a user macro in a text body or a macro
-definition it should be preceeded by a double percent character sequence.
-The example program fragment below defines three user macros, and also shows
-how they are used within a macro definition and a text body.
-
-</P>
-
-<PRE>
-%%DEFINE TITLE This is the Title
-%%DEFINE BOLD \bf
-%%DEFINE BOLDTITLE {%%BOLD %%TITLE}
-%%HEADER
-\centerline{%%BOLDTITLE as at {%%BOLD \today}}
-</PRE>
-
-<P>
-Note that a user macro definition can also include field names and equate
-macros. However, if using equate macros the name of the equate macro must be
-preceeded by a hash character rather than a double percent character sequence
-as done normally. The equate macro name need not have been defined before it
-is used in a user macro definition (since processing of equates occurs at a
-later stage.
-
-</P>
-<P>
-There is no error when redefining a user macro. The new replacement text is
-just substituted for the old. There is a maximum number of allowable macros,
-and a maximum length for the macro replacement text, see
-section <A HREF="grg_80.html#SEC80">Hard Limits</A> on hard limits.
-
-</P>
-<P>
-Note that the GPPDEFINE and TEXDEFINE predefined macros which the
-above replaces are deprecated and should not be used.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_18.html">previous</A>, 
<A HREF="grg_20.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_2.html
===================================================================
RCS file: doc/grg/grg_2.html
diff -N doc/grg/grg_2.html
--- doc/grg/grg_2.html  13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,125 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Running GRG</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_1.html">previous</A>, 
<A HREF="grg_3.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H2><A NAME="SEC2" HREF="grg_toc.html#TOC2">Running GRG</A></H2>
-
-<P>
-<A NAME="IDX4"></A>
-<A NAME="IDX5"></A>
-<A NAME="IDX6"></A>
-<A NAME="IDX7"></A>
-<A NAME="IDX8"></A>
-<A NAME="IDX9"></A>
-The <CODE>grg</CODE> program takes one argument, the name of the GRG file
-to use. This can be given with or without the <CODE>.grg</CODE> extension. If 
the
-<CODE>.grg</CODE> extension is not given with the filename and a filename 
without
-the extension is found then this will be used, else the <CODE>.grg</CODE> 
extension
-will be automatically appended and a filename must exist with this extension.
-
-</P>
-<P>
-The default output file name will be the basename of the GRG file
-with <CODE>.tex</CODE> as the replacement extension. For example, if the
-GRG file to be used is <CODE>test.grg</CODE> then the program would be
-called as <CODE>grg test</CODE> (or <CODE>grg test.grg</CODE>) and the output 
file produced
-by the program, according to the directions given in the <CODE>test.grg</CODE> 
file
-would be <CODE>test.tex</CODE>.
-
-</P>
-<P>
-The default output filename and extension can be easily changed from within the
-GRG file. The output filename can also be changed at certain points
-during generation of the output so that multiple files can be created
-from one input database file.
-
-</P>
-<P>
-The <CODE>.gpp</CODE> and <CODE>.pt</CODE> extensions (which <CODE>.grg</CODE> 
replaces) are
-deprecated. It is no longer automatically appended when not specified.
-These older extensions should not be used.
-
-</P>
-<P>
-There is only one option that can be given to the <CODE>grg</CODE> program, 
and this
-is <CODE>-d[1234]</CODE>. All variants enable debug mode. When the 
<CODE>-d</CODE> option is
-used the program will display the GRG file subsequent to preprocessing
-and will also dump the contents of user defined macros, equates, environment
-variables, as well as the definitions assigned to system variables, and the
-text bodies. The <CODE>-d1</CODE> variant dumps DFA state tables (from pattern
-matching definitions). The <CODE>-d2</CODE> variant does the same as 
<CODE>-d1</CODE> but
-also dumps the actual processing of pattern definitions. The <CODE>-d3</CODE> 
variant
-does the same as <CODE>-d</CODE> but also dumps the memory allocations during
-pre-preocessing and output processing. The <CODE>-d4</CODE> variant dumps 
details of
-the loading and field references of any <CODE>.dbf</CODE> file.
-
-</P>
-<P>
-The GRG file is processed in two stages (see section <A 
HREF="grg_4.html#SEC4">Structure</A>
-and section <A HREF="grg_5.html#SEC5">Processing Sequence</A> for more 
details). The first stage reads all the
-predefined macro definitions and expands any user defined macros. The entire
-file is broken down into its component parts and stored internally. The output
-file is then generated in the second stage by writing the stored text bodies
-at the appropriate places. The record text body is written for each record in
-the master database file (subject to sort and filter definitions), and the
-page text bodies are written at the start of each page. The header text body
-is written at the start before anything else and the footer text body is
-written at the end after everything else. References to database fields,
-interpolation of user text bodies, and processing of equates are all done
-at this stage.
-
-</P>
-<P>
-The GRG file can have as its first line a <CODE>#!</CODE> sequence followed by 
the
-path of the <CODE>grg</CODE> program and can then be made self-executable 
exactly
-like a shell script. Note however that only a line starting with 
<CODE>#</CODE> as the
-first line in the GRG file is interpreted this way and that <CODE>#</CODE> does
-not start a comment line in any other place in the file (as it would in a
-shell script). Command line options and arguments can be included after the
-path so a line like <CODE>#!/usr/local/bin/grg -d</CODE> is acceptable. This 
is one
-situation where it is common to not have the <CODE>.grg</CODE> extension as 
part
-of the filename.
-
-</P>
-<P>
-The above allows the GRG file to act as a filter in a pipe by defining
-the database input file to be standard input and redefining the output file to
-be standard output.
-
-</P>
-<P>
-The <CODE>grg</CODE> program will accept any number of additional command line
-arguments where each is a predefined macro and its arguments (these are
-discussed in more detail in section <A HREF="grg_17.html#SEC17">Predefined 
Macros</A>). These are processed twice. Once before
-parsing the GRG file and once afterwards. This is so that the arguments
-can affect the parsing of the GRG file but also so that their value can
-overwrite any value in the GRG file since parsing the file would normally
-rewrite their value. The processing order is described in more detail in
-section <A HREF="grg_5.html#SEC5">Processing Sequence</A>.
-A predefined macro argument can include quotes and escaped quotes. These must
-be given differently in a command line argument to prevent shell escape.
-The format for a nested quote is <CODE>\"</CODE> and for a nested escaped quote
-is <CODE>\\\"</CODE>. For example, <CODE>grg fubar.grg "%%equate eq_init 
1&#62;&#62;_eq_trace"</CODE>, is a command line which
-starts up tracing while processing equates in <CODE>fubar.grg</CODE>. Note 
that it
-is safest when using command line predefined macros to always include a
-terminating macro to avoid any possible continuation errors (when the actual
-file is processed). So it is better to do:
-
-</P>
-
-<PRE>
-grg fubar.grg "%%equate eq_init 1&#62;&#62;_eq_trace" "%%end"
-</PRE>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_1.html">previous</A>, 
<A HREF="grg_3.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_20.html
===================================================================
RCS file: doc/grg/grg_20.html
diff -N doc/grg/grg_20.html
--- doc/grg/grg_20.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,80 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - DATABASE</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_19.html">previous</A>, 
<A HREF="grg_21.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC20" HREF="grg_toc.html#TOC20">DATABASE</A></H4>
-
-<P>
-<A NAME="IDX66"></A>
-<A NAME="IDX67"></A>
-<A NAME="IDX68"></A>
-<A NAME="IDX69"></A>
-Use this macro to specify the database files, the names of the 
<EM>dBase3+</EM> files (or delimited text files) from which the
-records and fields are being taken. There can be one or more <EM>string</EM>
-arguments which are the full names (or pathnames) of the file to use (the
-<CODE>.dbf</CODE> file extension is also required in the name). If the 
extension is
-not <CODE>.dbf</CODE> then the file will be read in as a delimited ascii file 
using
-<EM>awk</EM> field/record style input by default, see
-section <A HREF="grg_81.html#SEC81">Text Processing</A>. The one exception to 
this is
-where the extension is <CODE>.sql</CODE> where the database file name is then 
just a
-table to query in a RDBMS, see section <A HREF="grg_95.html#SEC95">RDBMS 
Queries</A>. The example
-program fragment below shows all three file types in use.
-
-</P>
-
-<PRE>
-%%DATABASE "/usr/local/lib/dbase/example.dbf"
-%%DATABASE "ref1.txt" "ref2.txt"
-%%DATABASE "people.sql"
-</PRE>
-
-<P>
-The first database file has a path of <CODE>/usr/local/lib/dbase/</CODE>, a 
name of
-<CODE>example</CODE> and a type of <CODE>.dbf</CODE> and will be opened as a 
<EM>dBase3+</EM> file.
-The next two database files have no path (so must be in the current directory),
-names of <CODE>ref1</CODE> and <CODE>ref2</CODE> respectively and are both 
opened as delimited ascii
-files. The third database file has no path (does not need one) and is
-treated as an SQL query selecting the entire contents of the 
<CODE>people</CODE> table
-(<CODE>people</CODE> will also be the name of the database file) from a RDBMS.
-
-</P>
-<P>
-The first database file defined is always taken as the master database file
-(that which text body processing, sorting and filtering acts on and through
-which records are cycled). Other database files can only be accessed
-indirectly through the pointer mechanism of equate processing (
-see section <A HREF="grg_45.html#SEC45">Field Reference</A>).
-
-</P>
-<P>
-The special case filename which is just <CODE>"-"</CODE> can be used to read a 
database file
-from standard input (this would normally always be specified as the first
-database file so that it is also the master). A database file specified as
-<CODE>"-"</CODE>
-will always be loaded as a delimited ascii file.
-
-</P>
-<P>
-Note that there must be at least one DATABASE command in every 
-GRG file, in fact the smallest GRG file would just consist of one of
-these lines to define the database file -- the default header and record text
-bodies would then define the format of the output file automatically.
-
-</P>
-<P>
-Note that the GPPDBFFILE and TEXDBFFILE predefined macros which
-the above replaces are deprecated and should nto be used.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_19.html">previous</A>, 
<A HREF="grg_21.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_21.html
===================================================================
RCS file: doc/grg/grg_21.html
diff -N doc/grg/grg_21.html
--- doc/grg/grg_21.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,54 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - SORTON</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_20.html">previous</A>, 
<A HREF="grg_22.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC21" HREF="grg_toc.html#TOC21">SORTON</A></H4>
-
-<P>
-<A NAME="IDX70"></A>
-<A NAME="IDX71"></A>
-<A NAME="IDX72"></A>
-<A NAME="IDX73"></A>
-<A NAME="IDX74"></A>
-Use this macro to define how to sort the records in the master database file.
-If this is not used the records will be written out from the database file in
-the order they are stored in the file (or retrieved by the SQL query). This
-macro can be followed by up to four <EM>field</EM> arguments (or the predefined
-macro can be used up to four times if only given one argument each time). The
-records will be sorted alphabetically on the first field given, and each
-sorted group (of the same value) will then be resorted on the second field
-given, etcetera. The BANNER macro can be used to produce a header
-at the start of each sorted group. The example below sorts first on the
-<CODE>YEAR</CODE> field, and then on the <CODE>SURNAME</CODE> field for each 
sorted
-group within this.
-
-</P>
-
-<PRE>
-%%SORTON %YEAR %SURNAME
-</PRE>
-
-<P>
-Note that sorting on boolean type data fields works as follows. A boolean
-field with a value of <CODE>T</CODE> or <CODE>Y</CODE> is treated as true and 
identical,
-anything else is treated as false and also identical. This supports the
-<EM>dBase3+</EM> syntax for logical fields.
-
-</P>
-<P>
-Note that the GPPSORTON and TEXSORTON predefined macros which the
-above replaces are deprecated and should not be used.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_20.html">previous</A>, 
<A HREF="grg_22.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_22.html
===================================================================
RCS file: doc/grg/grg_22.html
diff -N doc/grg/grg_22.html
--- doc/grg/grg_22.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,41 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - REVSORT</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_21.html">previous</A>, 
<A HREF="grg_23.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC22" HREF="grg_toc.html#TOC22">REVSORT</A></H4>
-
-<P>
-<A NAME="IDX75"></A>
-<A NAME="IDX76"></A>
-<A NAME="IDX77"></A>
-<A NAME="IDX78"></A>
-Just like SORTON except that it sorts the given field arguments
-in descending order (SORTON sorts in ascending order). The two
-sorts can be freely mixed. The example below sorts on the <CODE>YEAR</CODE> 
field
-in descending order, and then for each sorted year group sorts on the
-<CODE>SURNAME</CODE> field in ascending order.
-
-</P>
-
-<PRE>
-%%REVSORT %YEAR
-%%SORTON %SURNAME
-</PRE>
-
-<P>
-Note that the GPPREVSORT and TEXREVSORT predefined macros which
-the above replaces are deprecated and should not be used.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_21.html">previous</A>, 
<A HREF="grg_23.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_23.html
===================================================================
RCS file: doc/grg/grg_23.html
diff -N doc/grg/grg_23.html
--- doc/grg/grg_23.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,82 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - FILTER</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_22.html">previous</A>, 
<A HREF="grg_24.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC23" HREF="grg_toc.html#TOC23">FILTER</A></H4>
-
-<P>
-<A NAME="IDX79"></A>
-<A NAME="IDX80"></A>
-<A NAME="IDX81"></A>
-Use this macro to define how to filter the records (restrict the output) in
-the master database file. By default no filtering is done. There is a maximum
-number of filter conditions, which can either be given as multiple arguments to
-this macro or this macro can be used more than once. Each filter condition
-given as a multiple argument to one predefined macro is or'ed together. Each
-predefined macro call is and'ed with any others. Each filter condition is
-given as a <EM>string</EM> argument. Only records matching the given conditions
-will be processed. A record is written out if it matches at least one of
-the or'ed filter conditions from all of the and'ed filter conditions.
-
-</P>
-<P>
-The filter condition has the syntax <CODE>field=re</CODE>. The 
<CODE>field</CODE> is the
-name of a database field, including the <CODE>%</CODE> character identifier. 
The
-<CODE>re</CODE> is a regular expression with the same syntax as used in the 
UNIX
-<CODE>ed(1)</CODE> and <CODE>sed(1)</CODE> commands. There should be no spaces 
in the
-condition unless they are required in the regular expression. There is an
-example program fragment below with some filter conditions defined.
-
-</P>
-
-<PRE>
-%%FILTER "%STATUS=ENDED" "%STATUS=FAILED"
-%%FILTER "%YEAR=199[123]"
-</PRE>
-
-<P>
-The above would write out all records that have a <CODE>STATUS</CODE>
-field of <EM>ENDED</EM> or <EM>FAILED</EM> and have a <CODE>YEAR</CODE> field
-with the value <EM>1991</EM>, <EM>1992</EM>, or <EM>1993</EM>.
-
-</P>
-<P>
-You can define a filter condition that is an equate rather than a regular
-expression by using the special field name <CODE>%_EQ</CODE>. The equate
-expression should return a boolean, numeric, date, or string type. The filter
-condition matches if the number or boolean is not 0 or the date or string is
-not empty. The two filters conditions given below are identical. See
-section <A HREF="grg_24.html#SEC24">EQUATE</A> for details of equate 
expression syntax. Note that
-the equate must be a reversed equate expression, it will not currently be auto
-reversed if it is not and keywords will not be recognised. Nested string
-quotes must be escaped within a filter condition.
-
-</P>
-
-<PRE>
-%%FILTER "%STATUS=ENDED"
-%%FILTER "%_EQ=%STATUS\"ENDED\"="
-</PRE>
-
-<P>
-Beware of recursive definitions of a filter condition using a 
<CODE>(...)</CODE>
-looping construct -- since this in itself depends on the filter condition.
-
-</P>
-<P>
-Note that the GPPFILTER and TEXFILTER predefined macros which the
-above replaces are deprecated and should not be used.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_22.html">previous</A>, 
<A HREF="grg_24.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_24.html
===================================================================
RCS file: doc/grg/grg_24.html
diff -N doc/grg/grg_24.html
--- doc/grg/grg_24.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,137 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - EQUATE</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_23.html">previous</A>, 
<A HREF="grg_25.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC24" HREF="grg_toc.html#TOC24">EQUATE</A></H4>
-
-<P>
-<A NAME="IDX82"></A>
-<A NAME="IDX83"></A>
-<A NAME="IDX84"></A>
-<A NAME="IDX85"></A>
-This macro works in a similar way to DEFINE except that it
-defines a user macro whose ultimate value is dependent on the processing of
-the equate expression. It provides a level of processing that occurs after
-preprocessing (unlike ordinary user macros). Although user defined macros
-are not expanded within an equate definition, equates will be but they
-should be prefixed by the <CODE>#</CODE> character (not <CODE>%%</CODE>).
-
-</P>
-<P>
-Only simple conditional equate expressions are discussed here (that can be used
-to do something like an ifdef pragma). In fact equate expressions can be much
-more complex but the details of this are given in
-section <A HREF="grg_35.html#SEC35">Equate Expressions</A> on equate
-expressions and section <A HREF="grg_58.html#SEC58">Reversed Equate 
Expressions</A> on reversed equate expressions.
- 
-The argument given to this predefined macro is a <EM>macro</EM> argument as for
-defining user macros. However the macro definition part is slightly more
-complex in that it supports the <CODE>?</CODE> operator. The syntax for this is
-<CODE>?field["string"]:["string"];</CODE>. The square brackets surround 
optional
-syntax.
-
-</P>
-<P>
-The semantics of the <CODE>?</CODE> operator are that if the value of the given
-<CODE>field</CODE> is null (or equals 0 or 0.0 in the case of numeric fields) 
then
-do not print the field at all. So in the program fragment below
-
-</P>
-
-<PRE>
-%%EQUATE EXAMPLE ?YEAR:;
-</PRE>
-
-<P>
-the <CODE>EXAMPLE</CODE> equate macro has a definition saying if the value of 
the
-<CODE>YEAR</CODE> field is null print nothing else print the value of the
-<CODE>YEAR</CODE> field. This is a shorthand notation for the example below.
-
-</P>
-
-<PRE>
-%%EQUATE EXAMPLE ?YEAR"%YEAR":;
-</PRE>
-
-<P>
-The definition for this example says that if the value of the <CODE>YEAR</CODE>
-field is null print nothing, else evaluate the following string. The example
-below shows the third possible form of this operator.
-
-</P>
-
-<PRE>
-%%EQUATE EXAMPLE ?YEAR"%YEAR":"Unknown";
-</PRE>
-
-<P>
-The definition for this example says that if the value of the <CODE>YEAR</CODE>
-field is null evaluate the string following the colon character, else evaluate
-the string preceeding the colon character.
-
-</P>
-<P>
-Below is a more complex example program fragment which also shows how the
-equate macro is used within a text body.
-
-</P>
-
-<PRE>
-%%EQUATE NAME ?NAME1:"";?NAME2"; %NAME2":"";+
-%%EQUATE SALARY \
-  ?SALARY"Salary is %SALARY":"No Salary for #NAME";
-%%RECORD
-Details: %%NAME, %%SALARY
-</PRE>
-
-<P>
-In the above example the <CODE>NAME</CODE> equate prints the contents of the 
<CODE>NAME1</CODE> field
-only if it isn't null and follows this with nothing if the contents of the 
<CODE>NAME2</CODE> is
-null else with a semicolon followed by the contents of the <CODE>NAME2</CODE> 
field.
-Note the <CODE>+</CODE> operator to concatenate the results from each 
condition into
-one (an equate must return only one value) and as a result of this each
-condition must always return a value so <CODE>""</CODE> is used in the 
<CODE>else</CODE> clause
-to return an empty string when the field is empty.
-The <CODE>SALARY</CODE> equate prints a different string dependent on whether 
the
-contents of the <CODE>SALARY</CODE> field is null or not. Note that the last 
string actually
-includes a nested call to the <CODE>NAME</CODE> equate macro. Note also the use
-of the backslash character to carry the definition onto the next line (the
-backslash can be used to escape newlines in an equate definition).
-
-</P>
-<P>
-An equate macro is used in a text body in the same way as a user defined
-macro, that is, by using the defined name preceeded by the <CODE>%%</CODE> or
-the <CODE>#</CODE> character sequence. The preprocessing stage will replace a
-<CODE>%%</CODE> sequence with a <CODE>#</CODE> character sequence if the name 
does not
-match a user defined macro. This triggers an evaluation of the equate
-definition associated with the subsequent name at that point in the text
-body, the result replacing the <CODE>#</CODE> and the equate macro name in the
-same way as user macros. Note that because a hash is used to identify an
-equate macro any other hash in a text body should be escaped (by using
-<CODE>\#</CODE> which will be substituted with <CODE>#</CODE>).
-
-</P>
-<P>
-The equate definition macro can be used to redefine previous macros. This will
-not produce any error messages. An equate macro definition can also have a
-null argument (as in user macros) in which case it is given a null definition.
-
-</P>
-<P>
-Note that the GPPEQUATE and TEXEQUATE predefined macros which the
-above replaces are deprecated and hsould not be used.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_23.html">previous</A>, 
<A HREF="grg_25.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_25.html
===================================================================
RCS file: doc/grg/grg_25.html
diff -N doc/grg/grg_25.html
--- doc/grg/grg_25.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,77 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - EQGUILE</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_24.html">previous</A>, 
<A HREF="grg_26.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC25" HREF="grg_toc.html#TOC25">EQGUILE</A></H4>
-
-<P>
-<A NAME="IDX86"></A>
-<A NAME="IDX87"></A>
-<A NAME="IDX88"></A>
-Works identically to EQUATE except that it defines an equate that is
-written in scheme to be run under the GUILE interpreter. The 
<STRONG>grg</STRONG>
-program must have been compiled with support for GUILE otherwise this
-macro will be treated the same as EQUATE.
-
-</P>
-<P>
-There should be one macro argument to be the name of the equate as seen from
-the GRG side. This is so that the equate can be called from the GRG
-side as if it was any other equate. Any number of optional whitespace separated
-arguments may also be given to this macro (after the name). Any arguments
-passed to the equate from the GRG side will be passed to the function on
-the GUILE side. No error checking is done. Argument types are converted
-in a limited sense to the GUILE side equivalent. An equate defined in
-scheme is only allowed to return one argument and the GRG side will pick
-this up, convert the type and it can be used as normal. Only simple numbers and
-strings should be returned from the GUILE side.
-
-</P>
-<P>
-Here is the definition of factorial as an equate written in scheme.
-
-</P>
-
-<PRE>
-%%EQGUILE fact n
-  (if (= n 1) 1 (* n (fact (- n 1))))
-</PRE>
-
-<P>
-This will be wrapped up on the GUILE side as shown below.
-
-</P>
-
-<PRE>
-(define (fact n) (if (= n 1) 1 (* n (fact (- n 1)))))
-</PRE>
-
-<P>
-It can be called in exactly the same way as any other equate.
-
-</P>
-
-<PRE>
-%%EQUATE FUBAR
-  OUTPUTS(fact(4))
-%%RECORD
-Direct call: ... #fact(2) ... and then via another equate: ... #FUBAR ...
-</PRE>
-
-<P>
-There are some additional procedures made available under the GUILE side
-from the GRG side, see section <A HREF="grg_101.html#SEC101">Using GUILE</A> 
for more details.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_24.html">previous</A>, 
<A HREF="grg_26.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_26.html
===================================================================
RCS file: doc/grg/grg_26.html
diff -N doc/grg/grg_26.html
--- doc/grg/grg_26.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,55 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - HEADER</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_25.html">previous</A>, 
<A HREF="grg_27.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC26" HREF="grg_toc.html#TOC26">HEADER</A></H4>
-
-<P>
-<A NAME="IDX89"></A>
-<A NAME="IDX90"></A>
-<A NAME="IDX91"></A>
-<A NAME="IDX92"></A>
-This macro defines a text body that is to be written at the very start of the
-output. The text body starts on the line following the macro and continues up
-to a line starting with a <CODE>%%</CODE> sequence (that is not a comment 
line) or
-the end of the file. A text body will have user macros fully expanded and
-equate macros substituted for evaluation later on. Note that user macros
-cannot be used at the start of a line within a text body as they will conflict
-with the predefined macros. Note also that because <CODE>%</CODE> is used as a 
macro
-identifier flag in a text body any other <CODE>%</CODE> should be escaped by 
using
-the <CODE>\%</CODE> sequence. This is not normally a problem since a 
<CODE>%</CODE>
-symbol has to be escaped for <EM>LaTeX</EM> anyway. The program fragment below
-is an example of this macro. The <CODE>#</CODE> character should also be 
escaped in a
-text body in the same way as this can flag the start of an equate.
-
-</P>
-
-<PRE>
-%%HEADER
-\documentstyle[a4]{article}
-\begin{document}
-</PRE>
-
-<P>
-If no HEADER is defined a default header is generated which is the
-name of each field in the master database file separated by the first 
character in the value of <STRONG>DELIM</STRONG>. This behaviour can be stopped 
by creating an empty HEADER
-definition or by creating a RECORD definition (empty or otherwise).
-
-</P>
-<P>
-Note that the GPPHEADER and TEXHEADER predefined macros which the
-above replaces are deprecated and should not be used.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_25.html">previous</A>, 
<A HREF="grg_27.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_27.html
===================================================================
RCS file: doc/grg/grg_27.html
diff -N doc/grg/grg_27.html
--- doc/grg/grg_27.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,39 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - FOOTER</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_26.html">previous</A>, 
<A HREF="grg_28.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC27" HREF="grg_toc.html#TOC27">FOOTER</A></H4>
-
-<P>
-<A NAME="IDX93"></A>
-<A NAME="IDX94"></A>
-<A NAME="IDX95"></A>
-<A NAME="IDX96"></A>
-This macro works in an identical way to HEADER except that it
-defines the text body to be written right at the very end of the output. The
-example program fragment belows shows this macro being used.
-
-</P>
-
-<PRE>
-%%FOOTER
-\end{document}
-</PRE>
-
-<P>
-Note that the GPPFOOTER and TEXFOOTER predefined macros which the
-above replaces are deprecated and should not be used.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_26.html">previous</A>, 
<A HREF="grg_28.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_28.html
===================================================================
RCS file: doc/grg/grg_28.html
diff -N doc/grg/grg_28.html
--- doc/grg/grg_28.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,72 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - BANNER</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_27.html">previous</A>, 
<A HREF="grg_29.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC28" HREF="grg_toc.html#TOC28">BANNER</A></H4>
-
-<P>
-<A NAME="IDX97"></A>
-<A NAME="IDX98"></A>
-<A NAME="IDX99"></A>
-<A NAME="IDX100"></A>
-<A NAME="IDX101"></A>
-<A NAME="IDX102"></A>
-This macro defines a text body that is to be written at the top of each sorted
-group. Any field references within the text body will be taken from the first
-record in the sorted group. The macro can take one or more field arguments
-which defines the level at which the banners occur (for which sorted group
-with reference to the sorton list defined by the SORTON
-predefined macro). These field arguments must always correlate with the fields
-used for sorting. In the example program fragment below a banner is defined on
-the <CODE>YEAR</CODE> field and a header will be written out preceeding each 
sorted
-group of years.
-
-</P>
-
-<PRE>
-%%SORTON %YEAR %SURNAME
-%%BANNER %YEAR
-\flushleft{\underline{%YEAR}}
-</PRE>
-
-<P>
-Fields given as multiple arguments to one BANNER predefined
-macro will share the same text body, special equates can be used to
-distinguish which banner it is (see section <A 
HREF="grg_37.html#SEC37">Predefined System Variables</A>),
-however, fields given to
-separate predefined macros will each have their own unique text body. The
-banners can be defined in any order as they will be matched to the sorted
-groups according to their field arguments.
-
-</P>
-<P>
-If an SQL query is being used that is ordered it it not neccessary to apply an
-order using SORTON to use banners. Simply define the banners with field
-arguments that correlate with those the SQL query is using as below.
-
-</P>
-
-<PRE>
-%%DATABASE "people.sql"
-  select * from people order by year, surname
-%%BANNER %YEAR
-\flushleft{\underline{%YEAR}}
-</PRE>
-
-<P>
-Note that the GPPBANNER and TEXBANNER predefined macros which the
-above replaces are deprecated and should not be used.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_27.html">previous</A>, 
<A HREF="grg_29.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_29.html
===================================================================
RCS file: doc/grg/grg_29.html
diff -N doc/grg/grg_29.html
--- doc/grg/grg_29.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,49 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - PAGE01</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_28.html">previous</A>, 
<A HREF="grg_30.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC29" HREF="grg_toc.html#TOC29">PAGE01</A></H4>
-
-<P>
-<A NAME="IDX103"></A>
-<A NAME="IDX104"></A>
-<A NAME="IDX105"></A>
-<A NAME="IDX106"></A>
-<A NAME="IDX107"></A>
-This macro defines a text body that is to be written at the start of the first
-page of the output file. The macro optionally takes one or two <EM>numeric</EM>
-arguments which define the number of records or number of lines to be placed
-on the first page. The default without this argument is infinite (ie. there
-will be no page breaks). The program fragment below gives an example.
-
-</P>
-
-<PRE>
-%%PAGE01 3
-\vspace*{1ex}
-\centerline{{\bf DEPARTMENT OF ARTIFICIAL INTELLIGENCE}}
-\centerline{{\bf %%TITLE as at \today}}
-</PRE>
-
-<P>
-Page breaks will only be generated if one or both of PAGE01 and 
-PAGENN are defined.
-
-</P>
-<P>
-Note that the GPPPAGE01 and TEXPAGE01 predefined macro which the
-above replaces are deprecated and should not be used.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_28.html">previous</A>, 
<A HREF="grg_30.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_3.html
===================================================================
RCS file: doc/grg/grg_3.html
diff -N doc/grg/grg_3.html
--- doc/grg/grg_3.html  13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,37 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - GRG File Format</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_2.html">previous</A>, 
<A HREF="grg_4.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H2><A NAME="SEC3" HREF="grg_toc.html#TOC3">GRG File Format</A></H2>
-
-<P>
-<A NAME="IDX10"></A>
-<A NAME="IDX11"></A>
-<A NAME="IDX12"></A>
-<A NAME="IDX13"></A>
-The GRG file defines what the input database files are, what the
-formatted output is to look like, and how to process the input to get to
-the output. It takes the form of a list of predefined macros (one per line),
-most of which take arguments, and all of which are optional (except 
-DATABASE of which there must be at least one, see
-section <A HREF="grg_20.html#SEC20">DATABASE</A>). These have three
-general forms. They can define an internal structure or process (such as how
-to sort or filter the data). They can define user macros and equations that
-are expanded within text bodies. They can define text bodies themselves. A
-text body is a block of text associated with a particular page or output
-position.
-
-</P>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_2.html">previous</A>, 
<A HREF="grg_4.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_30.html
===================================================================
RCS file: doc/grg/grg_30.html
diff -N doc/grg/grg_30.html
--- doc/grg/grg_30.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,48 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - PAGENN</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_29.html">previous</A>, 
<A HREF="grg_31.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC30" HREF="grg_toc.html#TOC30">PAGENN</A></H4>
-
-<P>
-<A NAME="IDX108"></A>
-<A NAME="IDX109"></A>
-<A NAME="IDX110"></A>
-<A NAME="IDX111"></A>
-<A NAME="IDX112"></A>
-This macro is similar to PAGE01 except that it defines the text
-body to be written at the start of every page of the output except for the
-first page. It also optionally takes <EM>numeric</EM> arguments defining the
-number of records or the number of lines to be put on each page excepting
-the first page. The default without this argument is infinite (ie. there will
-be no page breaks). The program fragment below is an example.
-
-</P>
-
-<PRE>
-%%PAGENN 4
-\vspace*{1ex}
-</PRE>
-
-<P>
-Page breaks will only be generated if one or both of PAGE01 and 
-PAGENN are defined.
-
-</P>
-<P>
-Note that the GPPPAGENN and TEXPAGENN predefined macros which the
-above replaces are deprecated and should not be used.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_29.html">previous</A>, 
<A HREF="grg_31.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_31.html
===================================================================
RCS file: doc/grg/grg_31.html
diff -N doc/grg/grg_31.html
--- doc/grg/grg_31.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,54 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - RECORD</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_30.html">previous</A>, 
<A HREF="grg_32.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC31" HREF="grg_toc.html#TOC31">RECORD</A></H4>
-
-<P>
-<A NAME="IDX113"></A>
-<A NAME="IDX114"></A>
-<A NAME="IDX115"></A>
-<A NAME="IDX116"></A>
-This macro defines the text body for each record. This is where references to
-fields will normally be made. References made to fields in other text bodies
-will always use the first or last records in the master database file. The 
record text
-body is written out for each record in the master database file (after all the 
sorting
-and filtering has been done). Below is an example program fragment which gives
-some idea of what a record text body field might look like.
-
-</P>
-
-<PRE>
-%%RECORD
-\begin{list}
-\item[{\bf Name:}] %TITLE %SURNAME,%INITS
-\item[{\bf Start Year:}] %YEAR
-\item[{\bf A/C No:}] %ACCOUNT_NO
-\item[{\bf Balance:}] \pounds%BALANCE
-\end{list}
-</PRE>
-
-<P>
-If no RECORD is defined a default record is generated which is the
-contents of each field in the master database file separated by the first 
character in the value of <STRONG> 
-DELIM</STRONG>. This behaviour can be stopped by creating a RECORD
-definition (which could just be empty).
-
-</P>
-<P>
-Note that the GPPRECORD and TEXRECORD predefined macros which the
-above replaces are deprecated and should not be used.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_30.html">previous</A>, 
<A HREF="grg_32.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_32.html
===================================================================
RCS file: doc/grg/grg_32.html
diff -N doc/grg/grg_32.html
--- doc/grg/grg_32.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,44 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - BLOCK</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_31.html">previous</A>, 
<A HREF="grg_33.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC32" HREF="grg_toc.html#TOC32">BLOCK</A></H4>
-
-<P>
-<A NAME="IDX117"></A>
-<A NAME="IDX118"></A>
-<A NAME="IDX119"></A>
-<A NAME="IDX120"></A>
-Defines a user placeable text body. This predefined macro should be followed by
-the name of the block (on the same line) by which it can be referred to. A user
-placeable text body can be included anywhere within another text body
-(including the text body of another block) by using the standard equate or 
user defined macro
-start character sequence. The example below shows a user text body block being 
defined and used.
-
-</P>
-
-<PRE>
-%%BLOCK TITLE
-This is the title
-%%RECORD
-#TITLE
-Rest of record
-</PRE>
-
-<P>
-Note that the GPPBLOCK and TEXBLOCK predefined macros which the
-above replaces are deprecated and should not be used.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_31.html">previous</A>, 
<A HREF="grg_33.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_33.html
===================================================================
RCS file: doc/grg/grg_33.html
diff -N doc/grg/grg_33.html
--- doc/grg/grg_33.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,33 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - PATTERN</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_32.html">previous</A>, 
<A HREF="grg_34.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC33" HREF="grg_toc.html#TOC33">PATTERN</A></H4>
-
-<P>
-<A NAME="IDX121"></A>
-<A NAME="IDX122"></A>
-<A NAME="IDX123"></A>
-<A NAME="IDX124"></A>
-Defines a pattern for parsing delimited text files and creating a database
-file from them. For more details
-see section <A HREF="grg_85.html#SEC85">Redefining Patterns</A> on pattern 
definition.
-
-</P>
-<P>
-Note that the GPPPATTERN and TEXPATTERN predefined macros which
-the above replaces are deprecated and should not be used.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_32.html">previous</A>, 
<A HREF="grg_34.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_34.html
===================================================================
RCS file: doc/grg/grg_34.html
diff -N doc/grg/grg_34.html
--- doc/grg/grg_34.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,36 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - END</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_33.html">previous</A>, 
<A HREF="grg_35.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC34" HREF="grg_toc.html#TOC34">END</A></H4>
-
-<P>
-<A NAME="IDX125"></A>
-<A NAME="IDX126"></A>
-<A NAME="IDX127"></A>
-The END predefined macro can be used to terminate text bodies and is
-particularly useful at the end of these in include files, since when the
-include file is used it guarantees that the processor is back in STANDARD mode
-rather than relying on their being a predefined macro straight after the
-include file to do this. There is no requirement to explicitly terminate a text
-body normally as it is always followed by another predefined macro or the end
-of the file both of which terminate the text body.
-
-</P>
-<P>
-Note that the GPP and TEX predefined macros which the above
-replaces are deprecated and should not be used.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_33.html">previous</A>, 
<A HREF="grg_35.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_35.html
===================================================================
RCS file: doc/grg/grg_35.html
diff -N doc/grg/grg_35.html
--- doc/grg/grg_35.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,41 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Equate Expressions</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_34.html">previous</A>, 
<A HREF="grg_36.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H2><A NAME="SEC35" HREF="grg_toc.html#TOC35">Equate Expressions</A></H2>
-
-<P>
-<A NAME="IDX128"></A>
-<A NAME="IDX129"></A>
-The equate expression language is a reasonably powerful but simple language
-designed solely for data manipulation within the GRG file. It has a very
-limited file i/o capability and no system i/o. It has conditions and loops,
-local variables, system (global) variables, support for record searching and
-matching in database files, basic maths, logical and relational operators,
-function call support (with arguments), and five interchangeable data types.
-The language is designed to supplement the text bodies, and equates can be
-called from text bodies (like user defined macros) to insert text that requires
-more complex processing to generate. They are often used to build things like
-summary tables from database files which are not so easy to generate directly
-using predefined and user defined macros.
-
-</P>
-<P>
-Equates are automatically converted to a <EM>reversed equate</EM> which is a 
lower
-level interpreted langauge which can also be used directly if preferred
-(see section <A HREF="grg_58.html#SEC58">Reversed Equate Expressions</A>).
-
-</P>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_34.html">previous</A>, 
<A HREF="grg_36.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_36.html
===================================================================
RCS file: doc/grg/grg_36.html
diff -N doc/grg/grg_36.html
--- doc/grg/grg_36.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,128 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Predefined Equates</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_35.html">previous</A>, 
<A HREF="grg_37.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC36" HREF="grg_toc.html#TOC36">Predefined Equates</A></H3>
-
-<P>
-<A NAME="IDX130"></A>
-<A NAME="IDX131"></A>
-<A NAME="IDX132"></A>
-<A NAME="IDX133"></A>
-<A NAME="IDX134"></A>
-<A NAME="IDX135"></A>
-<A NAME="IDX136"></A>
-<A NAME="IDX137"></A>
-<A NAME="IDX138"></A>
-<A NAME="IDX139"></A>
-<A NAME="IDX140"></A>
-<A NAME="IDX141"></A>
-<A NAME="IDX142"></A>
-<A NAME="IDX143"></A>
-<A NAME="IDX144"></A>
-<A NAME="IDX145"></A>
-<A NAME="IDX146"></A>
-<A NAME="IDX147"></A>
-<A NAME="IDX148"></A>
-<A NAME="IDX149"></A>
-There are some equates which are pre-defined as void but whose definition can
-be overwritten by the user. These equates are called at specific points during
-generation of the output (mostly before and after text bodies) and allow
-additional processing to be carried out at these stages. For most of these
-predefined equates if a value is returned that value will be written to the
-output stream with the text body. This allows the equates surrounding text
-bodies to write values to the output without relying on a system variable
-and another equate within the text body. These equates are always called (the
-text body equates are only called if the text body itself is being written to
-the output stream) but have no affect unless redefined to something other than
-void.
-
-</P>
-
-<UL>
-<LI>
-
-<CODE>eq_init</CODE> is called before any output is generated. Can be
-usefully used to enable tracing, disable the banner message, or replace the
-banner message with something else.
-<LI>
-
-<CODE>eq_pre_header</CODE> is called before writing a header text body.
-<LI>
-
-<CODE>eq_pre_footer</CODE> is called before writing a footer text body.
-<LI>
-
-<CODE>eq_pre_page01</CODE> is called before writing a page 1 text body.
-<LI>
-
-<CODE>eq_pre_pagenn</CODE> is called before writing a page N text body.
-<LI>
-
-<CODE>eq_pre_banner</CODE> is called before writing a banner text body.
-<LI>
-
-<CODE>eq_pre_record</CODE> is called before writing a record text body.
-<LI>
-
-<CODE>eq_pre_block</CODE> is called before writing a block text body.
-<LI>
-
-<CODE>eq_post_header</CODE> is called after writing a header text body.
-<LI>
-
-<CODE>eq_post_footer</CODE> is called after writing a footer text body.
-<LI>
-
-<CODE>eq_post_page01</CODE> is called after writing a page 1 text body.
-<LI>
-
-<CODE>eq_post_pagenn</CODE> is called after writing a page N text body.
-<LI>
-
-<CODE>eq_post_banner</CODE> is called after writing a banner text body.
-<LI>
-
-<CODE>eq_post_record</CODE> is called after writing a record text body.
-<LI>
-
-<CODE>eq_post_block</CODE> is called after writing a block text body.
-<LI>
-
-<CODE>eq_exit</CODE> is called at the very end of processing just before
-the output file is closed.
-</UL>
-
-<P>
-The exact call order of these is given in
-section <A HREF="grg_5.html#SEC5">Processing Sequence</A> on the processing 
sequence.
-These can be redefined just like any other equate. However
-<CODE>eq_texinit</CODE> cannot use any database operations (since
-it is called before any databases have been loaded) or write to the output
-file (since this won't have been opened).
-
-</P>
-<P>
-The following equates are deprecated by the above and shoult not be used: 
-<CODE>eq_texinit</CODE>, <CODE>eq_pretexheader</CODE>,
-<CODE>eq_pretexfooter</CODE>, <CODE>eq_pretexpage01</CODE>,
-<CODE>eq_pretexpagenn</CODE>, <CODE>eq_pretexbanner</CODE>,
-<CODE>eq_pretexrecord</CODE>, <CODE>eq_pretexblock</CODE>,
-<CODE>eq_psttexheader</CODE>, <CODE>eq_psttexfooter</CODE>,
-<CODE>eq_psttexpage01</CODE>, <CODE>eq_psttexpagenn</CODE>,
-<CODE>eq_psttexbanner</CODE>, <CODE>eq_psttexrecord</CODE>,
-<CODE>eq_psttexblock</CODE>, <CODE>eq_texexit</CODE>.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_35.html">previous</A>, 
<A HREF="grg_37.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_37.html
===================================================================
RCS file: doc/grg/grg_37.html
diff -N doc/grg/grg_37.html
--- doc/grg/grg_37.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,167 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Predefined System 
Variables</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_36.html">previous</A>, 
<A HREF="grg_38.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC37" HREF="grg_toc.html#TOC37">Predefined System 
Variables</A></H3>
-
-<P>
-<A NAME="IDX150"></A>
-<A NAME="IDX151"></A>
-<A NAME="IDX152"></A>
-<A NAME="IDX153"></A>
-<A NAME="IDX154"></A>
-<A NAME="IDX155"></A>
-<A NAME="IDX156"></A>
-<A NAME="IDX157"></A>
-<A NAME="IDX158"></A>
-<A NAME="IDX159"></A>
-<A NAME="IDX160"></A>
-<A NAME="IDX161"></A>
-<A NAME="IDX162"></A>
-<A NAME="IDX163"></A>
-<A NAME="IDX164"></A>
-<A NAME="IDX165"></A>
-<A NAME="IDX166"></A>
-<A NAME="IDX167"></A>
-<A NAME="IDX168"></A>
-<A NAME="IDX169"></A>
-There are some global variables predefined as a result of parsing the GRG
-file which can be accessed from within equates. Writing new values to some of
-these predefined variables may also change the processing behaviour.
-
-</P>
-
-<UL>
-
-<LI>
-
-<CODE>_eq_trace</CODE> defines whether trace output of reversed
-equate expressions is produced. Assign <CODE>1</CODE> to this variable to turn 
on the output.
-This is normally done from the <CODE>eq_init</CODE> equate, although it can
-be toggled on and off at will for more selective control of tracing.
-
-<LI>
-
-<CODE>_eq_version</CODE> defines whether the copyright banner
-message is displayed (it may be useful to remove this when the program is being
-employed as a filter in a pipe for example). The banner can be turned off by
-assigning <CODE>0</CODE> to this variable. This would have to be done in the
-<CODE>eq_init</CODE> equate.
-
-<LI>
-
-<CODE>_eq_verbose</CODE> defines whether the informative message
-about what file is being created is displayed. The message can be turned off
-by assigning <CODE>0</CODE> to this variable. This would have to be done in the
-<CODE>eq_init</CODE> equate.
-
-<LI>
-
-<CODE>_eq_clock</CODE> contains the number of seconds since
-1/1/1970 at the start of processing.
-
-<LI>
-
-<CODE>_eq_datenow</CODE> contains the current date at the start of processing
-as a <EM>date</EM> type (ie. <EM>dBase3+</EM> format, a string of CCYYMMDD).
-
-<LI>
-
-<CODE>_eq_timenow</CODE> contains the current time at the start of processing
-as a 24hr colon separated <EM>string</EM> type including seconds (ie. 
HH:MM:SS).
-
-<LI>
-
-<CODE>_eq_banner_val</CODE> contains the value of the
-banner sort field of the current banner (the value that all the records for
-this banner group have in common).
-
-<LI>
-
-<CODE>_eq_banner_nest</CODE> contains the nesting level
-of the the current banner which goes from <CODE>1</CODE> to the number of 
defined banners
-and indicates which level of sort field the current banner being processed
-is associated with.
-
-<LI>
-
-<CODE>_eq_totrec</CODE> contains the total number of records (pre
-filtering) in the master database file.
-
-<LI>
-
-<CODE>_eq_currec</CODE> contains the index of the current record
-being processed. This value has a range from <CODE>1</CODE> to 
<CODE>_eq_totrec</CODE>.
-
-<LI>
-
-<CODE>_eq_file</CODE> contains the full name of the GRG
-file being processed including the path and the extension.
-The <CODE>_eq_ptfile</CODE> system variable which the above replaces
-is deprecated and should not be used.
-
-<LI>
-
-<CODE>_eq_base</CODE> contains the full name of the output file
-excluding the extension.
-The <CODE>_eq_texbase</CODE> system variable which the above replaces 
-is deprecated and should not be used.
-
-<LI>
-
-<CODE>_eq_extn</CODE> contains the extension of the output file.
-The <CODE>_eq_texext</CODE> system variable which the above replaces
-is deprecated and should not be used.
-
-<LI>
-
-<CODE>_eq_outfile</CODE> contains the full name of the output file
-including the extension. If the special case name of <CODE>"-"</CODE> is 
assigned to
-this the output file will be set to standard output. The name of the output
-file is checked before the start of processing every text body. If it has
-changed the existing file is closed and the new file is opened, output is
-then written to the new file.
-
-<LI>
-
-<CODE>_eq_dbfpath</CODE> contains the path component of the master
-database file name. Can be rewritten in <CODE>eq_init</CODE> to override the
-default.
-
-<LI>
-
-<CODE>_eq_dbfname</CODE> contains the name component of the master
-database file name. Can be rewritten in <CODE>eq_init</CODE> to override the
-default.
-
-<LI>
-
-<CODE>_eq_dbftype</CODE> contains the type component (extension)
-of the master database file name. Can be rewritten in <CODE>eq_init</CODE>
-to override the default.
-
-<LI>
-
-<CODE>_eq_block</CODE> contains the name of the current user
-text body block being processed (this is not set for built in
-text body blocks such as headers and footers).
-
-</UL>
-
-<P>
-There are a number of other more specialised system variables which are
-discussed in the sections to which they are relevant.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_36.html">previous</A>, 
<A HREF="grg_38.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_38.html
===================================================================
RCS file: doc/grg/grg_38.html
diff -N doc/grg/grg_38.html
--- doc/grg/grg_38.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,33 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Keywords</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_37.html">previous</A>, 
<A HREF="grg_39.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC38" HREF="grg_toc.html#TOC38">Keywords</A></H3>
-
-<P>
-The following keywords are reserved in equate expressions and should not be
-used to name equates or local or global variables. Keywords are only expanded
-in the special EQUATE variant of TEXT BODY mode. Keywords are not
-case sensitive and can be used in lower, upper or mixed case.
-
-</P>
-
-<PRE>
-while, do, wend, roll, through, inputs,
-outputs, not, and, or, xor, if, then,
-else, endif, elif, break, exit, read,
-write, send, exec
-</PRE>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_37.html">previous</A>, 
<A HREF="grg_39.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_39.html
===================================================================
RCS file: doc/grg/grg_39.html
diff -N doc/grg/grg_39.html
--- doc/grg/grg_39.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,59 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Defining</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_38.html">previous</A>, 
<A HREF="grg_40.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC39" HREF="grg_toc.html#TOC39">Defining</A></H3>
-
-<P>
-<A NAME="IDX170"></A>
-<A NAME="IDX171"></A>
-Equate expressions are defined using the EQUATE predefined macro.
-This has one argument which is the name of the equate which can be in upper or
-lower or mixed case and is case sensitive. The first character of the equate
-name should be an underscore or an alphabetic character (A--Z or a--z), the
-remaining characters can be these as well as the numeric characters (0--9).
-There is a maximum name length (see section <A HREF="grg_80.html#SEC80">Hard 
Limits</A>). The equate definition is given within a text
-body on the subsequent line and continues until the text body terminates.
-Only one equate definition can be within the text body so it can only include
-the definition of one function, named by the predefined macro.
-
-</P>
-<P>
-An equate that takes arguments can be defined by immediately following the name
-with an open bracket, comma separated list of variable names (none is allowed),
-and then a close bracket. Alternatively the <CODE>inputs</CODE> keyword can be 
used as
-described in section <A HREF="grg_48.html#SEC48">Calling Other Equates</A>. 
Below are some
-examples of equate definitions (none of them have a
-body so none of them would do anything). The body of an equate is defined as a
-text body on the line immediately below the name/arguments definition.
-
-</P>
-
-<PRE>
-%%EQUATE test
-%%EQUATE substr(string,start_ndx,end_ndx)
-%%EQUATE eval()
-</PRE>
-
-<P>
-Note that the <CODE>eval</CODE> equate is commonly defined and left as void to 
provide
-a means to process equate expressions within a text body (such as a
-header, footer or record) where the desired equate expression is simply given
-as an 
-argument in the text body and the equate itself has no affect. Note however 
that keywords are
-not recognised in this situation and therefore if operators are needed the
-raw reversed operator symbols must be used (see section <A 
HREF="grg_65.html#SEC65">Reversed Equate Operators</A>).
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_38.html">previous</A>, 
<A HREF="grg_40.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_4.html
===================================================================
RCS file: doc/grg/grg_4.html
diff -N doc/grg/grg_4.html
--- doc/grg/grg_4.html  13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,49 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Structure</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_3.html">previous</A>, 
<A HREF="grg_5.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC4" HREF="grg_toc.html#TOC4">Structure</A></H3>
-
-<P>
-<A NAME="IDX14"></A>
-<A NAME="IDX15"></A>
-<A NAME="IDX16"></A>
-<A NAME="IDX17"></A>
-A GRG file is processed in three modes. The default is STANDARD
-mode where only predefined macro lines, comment lines or blank lines may be
-seen. Anything else will be treated as an error. The ARGS mode is used
-to process each of the arguments following a predefined macro name, until a
-newline where the mode reverts to STANDARD mode again. Some predefined
-macros may switch processing to the TEXT BODY mode. Within this mode
-user defined macros are expanded and equates are called. User defined macros
-are not expanded anywhere else. From TEXT BODY mode STANDARD mode
-is returned to when a predefined macro is encountered. The EQUATE mode
-is a special variant of TEXT BODY mode used only for processing equate
-definitions (user defined macros are also expanded in this mode).
-
-</P>
-<P>
-Comments can be included in a GRG file in the STANDARD mode and
-the TEXT BODY mode. They are flagged by a <CODE>%%</CODE> sequence, followed
-by at least one whitespace character (space, tab or newline). This sequence
-and anything else up to and including a newline will be discarded. In
-TEXT BODY mode comments can only occur at the very start of a line (no
-preceeding whitespace) whereas in STANDARD mode there can be any amount
-of preceeding whitespace on the line. In the EQUATE mode C style
-comments are also supported and can occur anywhere. They are started with a
-<CODE>/*</CODE> sequence and ended with a <CODE>*/</CODE> sequence. Unlike C, 
nested comments
-are allowed.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_3.html">previous</A>, 
<A HREF="grg_5.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_40.html
===================================================================
RCS file: doc/grg/grg_40.html
diff -N doc/grg/grg_40.html
--- doc/grg/grg_40.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,52 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Data Types</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_39.html">previous</A>, 
<A HREF="grg_41.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC40" HREF="grg_toc.html#TOC40">Data Types</A></H3>
-
-<P>
-<A NAME="IDX172"></A>
-<A NAME="IDX173"></A>
-There are six data types -- based on database field types. These are strings,
-integers, decimals, dates, booleans, and fields. A string literal is a
-sequence of characters delimited by double quotes. The double quote can be
-included in the string by using a <CODE>\"</CODE> sequence, and the backslash 
can
-be included in a string by using a <CODE>\\</CODE> sequence. An integer literal
-is a sequence of digits optionally starting with the minus sign. A decimal
-literal is like an integer literal but can include a decimal point. Note
-that negative number syntax is handled at the parsing stage for literals
-and so there is no unary minus operator. Date and boolean literals can only
-be created from a database field of that type. A field literal
-is the name of a field rather than its contents. It is created using the
-<CODE>%%</CODE> field operator. The example program fragment below shows the 
way
-to create each data type.
-
-</P>
-
-<PRE>
-"Hello World"
-12345
-0.25
-%START_DATE
-%IS_TRUE
-%%SURNAME
-</PRE>
-
-<P>
-Note that <CODE>START_DATE</CODE> is a date field, getting its value with the 
<CODE>%</CODE>
-operator creates a data type of date. Similarly the <CODE>IS_TRUE</CODE> field 
is a boolean
-field.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_39.html">previous</A>, 
<A HREF="grg_41.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_41.html
===================================================================
RCS file: doc/grg/grg_41.html
diff -N doc/grg/grg_41.html
--- doc/grg/grg_41.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,33 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Variables</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_40.html">previous</A>, 
<A HREF="grg_42.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC41" HREF="grg_toc.html#TOC41">Variables</A></H3>
-
-<P>
-<A NAME="IDX174"></A>
-<A NAME="IDX175"></A>
-Variables can hold any data type. Variables can be local to the current equate
-or global to all equates. Once defined a variable can never be undefined
-(unless local where it will be undefined when the equate finishes), nor can
-the data type it was defined with be changed. The data type of a variable
-(and the variable itself) is declared when a value is written to the
-variable (the given name will be created as a new variable if it does not
-exist). A variable cannot be used until an initialising value has first been
-written to it to declare the variable and its type. Writing a different data
-type to a variable will coerce the value to the data type of the variable.
-
-</P>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_40.html">previous</A>, 
<A HREF="grg_42.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_42.html
===================================================================
RCS file: doc/grg/grg_42.html
diff -N doc/grg/grg_42.html
--- doc/grg/grg_42.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,38 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Local Variables</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_41.html">previous</A>, 
<A HREF="grg_43.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC42" HREF="grg_toc.html#TOC42">Local Variables</A></H4>
-
-<P>
-<A NAME="IDX176"></A>
-<A NAME="IDX177"></A>
-<A NAME="IDX178"></A>
-These variables are local to each equate. Variable names are unique to
-each equate. Their value can be passed to another equate only by giving them
-as arguments (this is call-by-value, there is no call-by-reference facility).
-Their value (and declaration) is lost on exiting from the equate.
- 
-The characters A--Z and a--z can be used to start the name of a local variable
-and the rest of the variable name can include these same characters as well as
-the digits 0--9 and the underscore _ character.
-
-</P>
-<P>
-Care must be taken when using local variables within a text body (where they
-are part of the arguments passed to an equate) as these are created as global
-variables (but not neccessarily with the leading underscore character).
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_41.html">previous</A>, 
<A HREF="grg_43.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_43.html
===================================================================
RCS file: doc/grg/grg_43.html
diff -N doc/grg/grg_43.html
--- doc/grg/grg_43.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,37 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Global Variables</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_42.html">previous</A>, 
<A HREF="grg_44.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC43" HREF="grg_toc.html#TOC43">Global Variables</A></H4>
-
-<P>
-<A NAME="IDX179"></A>
-<A NAME="IDX180"></A>
-<A NAME="IDX181"></A>
-These are almost identical to local variables, except that the name of the
-variable must start with the underscore character. This distinction in naming
-identifies the variable as global to all equates (any equate can read or write
-the value at any time, although it must always be ensured that the variable has
-been written to prior to any read from the variable takes place). System 
variables are simply a special
-case of global variable where the variable has already been declared with a
-value generated by parsing the GRG file.
-
-</P>
-<P>
-System variables maintain their type and will complain if a different data
-type from that which they were defined with is written into them (which is
-not the case for normal global variables).
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_42.html">previous</A>, 
<A HREF="grg_44.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_44.html
===================================================================
RCS file: doc/grg/grg_44.html
diff -N doc/grg/grg_44.html
--- doc/grg/grg_44.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,50 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Variable Assignment</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_43.html">previous</A>, 
<A HREF="grg_45.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC44" HREF="grg_toc.html#TOC44">Variable Assignment</A></H3>
-
-<P>
-<A NAME="IDX182"></A>
-<A NAME="IDX183"></A>
-<A NAME="IDX184"></A>
-<A NAME="IDX185"></A>
-A value is assigned to a variable using the assignment 
(<CODE>&#62;&#62;</CODE>) operator.
-This operator requires a left side which is an expression resulting in a
-value and a right side which is the name of a variable. If the variable does
-not exist it will be created and its type will be the type of the value
-resulting from the expression. If the variable already exists then its
-current value will be overwritten with the new one. If the type of the
-value resulting from the expression differs from the variable type the value
-will be coerced to the type of the variable. Some examples are shown below.
-
-</P>
-
-<PRE>
-"hello" &#62;&#62; s1
-"" &#62;&#62; s2
-123 &#62;&#62; s2
-s1 + s2 &#62;&#62; s3
-</PRE>
-
-<P>
-The first line creates a string variable <CODE>s1</CODE> and assigns the string
-literal <CODE>"hello"</CODE> to it. The second line creates a string variable 
<CODE>s2</CODE>
-and assigns an empty string to it. The third line assigns the numeric literal
-<CODE>123</CODE> to the string variable <CODE>s2</CODE> thus converting it 
into a string.
-The fourth line concatenates the two string variables contents and assigns the
-result to a new string variable <CODE>s3</CODE> which has the value 
<CODE>"hello123"</CODE>.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_43.html">previous</A>, 
<A HREF="grg_45.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_45.html
===================================================================
RCS file: doc/grg/grg_45.html
diff -N doc/grg/grg_45.html
--- doc/grg/grg_45.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,129 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Field Reference</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_44.html">previous</A>, 
<A HREF="grg_46.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC45" HREF="grg_toc.html#TOC45">Field Reference</A></H3>
-
-<P>
-<A NAME="IDX186"></A>
-<A NAME="IDX187"></A>
-<A NAME="IDX188"></A>
-<A NAME="IDX189"></A>
-<A NAME="IDX190"></A>
-<A NAME="IDX191"></A>
-<A NAME="IDX192"></A>
-<A NAME="IDX193"></A>
-<A NAME="IDX194"></A>
-<A NAME="IDX195"></A>
-The contents of fields from a database file are retrieved in the same way as
-from within a text body using the <CODE>%</CODE> operator which must be 
immediately
-followed by the name of the field (always in upper case). A field reference is
-by default made to the current database and current record of that database.
-All the various modes of the <CODE>%</CODE> operator are described below. Note 
that
-there is no way to change the contents of a field, database files cannot be
-altered with the <CODE>grg</CODE> program.
-
-</P>
-<P>
-The <CODE>%</CODE> operator gets the contents of the field from the current 
record
-of the current database.
-
-</P>
-<P>
-The <CODE>%%</CODE> operator gets the name of the field. This is similar to but
-not identical to just quoting the field name.
-
-</P>
-<P>
-The <CODE>%#</CODE> operator gets the length of the field. This is the defined
-maximum length in characters.
-
-</P>
-<P>
-The <CODE>%$</CODE> operator gets the type of the field This is a one character
-string which will be <CODE>C</CODE> (character/string), <CODE>N</CODE> 
(numeric), <CODE>D</CODE>
-(date), <CODE>L</CODE> (logical), or <CODE>M</CODE> (memo) although this last 
type is not
-supported as a data type.
-
-</P>
-<P>
-The given field name can be more complex than a simple name to support
-referencing more that one database file and direct record indexing within that
-database file. The syntax of this is given below using the get field operator
-<CODE>%</CODE> as an example although any of the field operators above accept 
the
-same syntax variants.
-
-</P>
-<P>
-The <CODE>%field</CODE> syntax just gets the value of the <CODE>field</CODE> 
from the
-current record and is the default syntax given above.
-
-</P>
-<P>
-The <CODE>%field[index]</CODE> syntax gets the value of the <CODE>field</CODE> 
from
-the record with the given <CODE>index</CODE> (record indecies go from one to 
the number of
-records in the database).
-
-</P>
-<P>
-The <CODE>%database-&#62;field</CODE> syntax gets the value of the 
<CODE>field</CODE> from the
-current record of the given <CODE>database</CODE> (name should match that 
given when the
-database file was declared using the DATABASE predefined macro
-without the pathname or extension).
-
-</P>
-<P>
-The <CODE>%database-&#62;field[index]</CODE> syntax gets the value of the
-<CODE>field</CODE> from the record with the given <CODE>index</CODE> of the 
given
-<CODE>database</CODE>.
-
-</P>
-<P>
-The <CODE>index</CODE> can be a simple numeric literal or any normal 
expression that
-returns a numeric value (which must be greater than or equal to <CODE>1</CODE> 
and
-less than or equal to the total number of records in the 
<CODE>database</CODE>). There should be no whitespace in the above syntax forms
-except where the <CODE>index</CODE> is a more complex expression which can 
include
-whitespace if neccessary.
-
-</P>
-<P>
-The above syntax forms all bypass any active filters. The current record forms
-when referring to a database other than the master database will always refer
-to the first record of that database.
-
-</P>
-<P>
-Here are some examples of field referencing from an equate.
-
-</P>
-
-<PRE>
-%NAME &#62;&#62; s1
-%CATS-&#62;NAME + %CATS-&#62;TYPE &#62;&#62; s2
-1 &#62;&#62; a
-%DOGS-&#62;NAME[2+a] &#62;&#62; s3
-</PRE>
-
-<P>
-The first example gets the contents of the <CODE>NAME</CODE> field from the 
current
-record of the current database (the current database is always the master
-database unless operating under a <CODE>roll ... through</CODE> loop through 
another database). The
-second example gets the contents of the <CODE>NAME</CODE> and 
<CODE>TYPE</CODE> fields of the
-current record in the <CODE>cats</CODE> database, adds them together and 
assigns the
-result to the <CODE>s2</CODE> variable (the two fields must have the same data 
type).
-The last example gets the contents of the <CODE>NAME</CODE> field of the 3rd 
record in
-the <CODE>dogs</CODE> database and assigns the value to the <CODE>s3</CODE> 
variable.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_44.html">previous</A>, 
<A HREF="grg_46.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_46.html
===================================================================
RCS file: doc/grg/grg_46.html
diff -N doc/grg/grg_46.html
--- doc/grg/grg_46.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,135 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Constructs</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_45.html">previous</A>, 
<A HREF="grg_47.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC46" HREF="grg_toc.html#TOC46">Constructs</A></H3>
-
-<P>
-<A NAME="IDX196"></A>
-<A NAME="IDX197"></A>
-<A NAME="IDX198"></A>
-<A NAME="IDX199"></A>
-<A NAME="IDX200"></A>
-<A NAME="IDX201"></A>
-<A NAME="IDX202"></A>
-<A NAME="IDX203"></A>
-<A NAME="IDX204"></A>
-<A NAME="IDX205"></A>
-<A NAME="IDX206"></A>
-<A NAME="IDX207"></A>
-<A NAME="IDX208"></A>
-<A NAME="IDX209"></A>
-<A NAME="IDX210"></A>
-<A NAME="IDX211"></A>
-<A NAME="IDX212"></A>
-<A NAME="IDX213"></A>
-<A NAME="IDX214"></A>
-There are two looping constructs and a conditional construct. The basic looping
-construct has the form <CODE>while ... do ... wend</CODE>. While the 
expression to the
-left of the <CODE>do</CODE> keyword is true do the expression to the right of 
the
-<CODE>do</CODE> keyword. The expression on the left must produce a boolean 
value.
-The left and right expressions can include any complex expression,
-such as nested looping and conditional constructs or function calls.
-An example of this looping construct is given below with the definition of
-<CODE>strlen</CODE> (to return the length of a string).
-
-</P>
-
-<PRE>
-%%EQUATE strlen(s)
-  0 &#62;&#62; x
-  while s'x &#60;&#62; 0 do
-    x + 1 &#62;&#62; x
-  wend
-  outputs(x)
-</PRE>
-
-<P>
-The other looping construct has the form <CODE>roll ... through</CODE>. The
-expression between the keywords is executed once for every record in the
-master database (filter conditions still apply). For example here is the
-definition of a function to return the number of records in the database.
-
-</P>
-
-<PRE>
-%%EQUATE nrecs
-  0 &#62;&#62; n
-  roll n + 1 &#62;&#62; n through
-  outputs(n)
-</PRE>
-
-<P>
-The looping syntax can optionally include a colon suffix form. This allows
-looping through a named database (no filter conditions apply when this is
-the master database).
-This form is <CODE>roll ... through:database</CODE> where 
<CODE>database</CODE> is the
-name of a valid loaded database (without the pathname or extension). Fields
-from other databases cannot be accessed within the loop unless the 
<CODE>-&#62;</CODE>
-syntax is used, so if looping through a database other than the master database
-then this form must be used within the loop to access fields of the master
-database. Note that this applies even to nested equate calls within the loop
-body for example.
-
-</P>
-<P>
-The conditional construct has one of the forms <CODE>if ... then ... 
endif</CODE>
-and <CODE>if ... then ... else ... endif</CODE>. If the boolean expression 
bewteen
-the <CODE>if</CODE> and <CODE>then</CODE> keywords is true execute the 
expression between
-the <CODE>then</CODE> and <CODE>else</CODE> or <CODE>endif</CODE> keywords 
otherwise execute the
-expression between the <CODE>else</CODE> and the <CODE>endif</CODE> keywords 
if it exists.
-Each expression can be as complex as required (including nested conditional
-and looping constructs, and function calls) but need not have any contents.
-Below are two examples of the conditional construct.
-
-</P>
-
-<PRE>
-%%EQUATE test
-  inputs(a,c)
-  if a &#62; 0 and a &#60; 12 then "hello" &#62;&#62; b endif
-  if not (c = 5) then
-    5 &#62;&#62; c
-    "no" &#62;&#62; b
-  else
-    if not (c = 3) then 3 &#62;&#62; c "world" &#62;&#62; b
-    endif
-  endif
-  outputs(b,c)
-</PRE>
-
-<P>
-Note that the <CODE>endif</CODE> keyword must always be present. The 
<CODE>elif</CODE>
-keyword can be used for multiple conditions grouped up under one 
<CODE>endif</CODE>
-keyword (this saves having to nest conditions). The example above is shown
-below using the <CODE>elif</CODE> keyword to simplify the statements.
-
-</P>
-
-<PRE>
-%%EQUATE test
-  inputs(a,c)
-  if a &#62; 0 and a &#60; 12 then "hello" &#62;&#62; b endif
-  if not (c = 5) then 5 &#62;&#62; c "no" &#62;&#62; b
-  elif not (c = 3) then 3 &#62;&#62; c "world" &#62;&#62; b
-  endif
-  outputs(b,c)
-</PRE>
-
-<P>
-There is a known bug preventing the use of a <CODE>roll .. through</CODE> 
construct
-within a condition construct when the colon suffix form is used.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_45.html">previous</A>, 
<A HREF="grg_47.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_47.html
===================================================================
RCS file: doc/grg/grg_47.html
diff -N doc/grg/grg_47.html
--- doc/grg/grg_47.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,50 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Flow Control</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_46.html">previous</A>, 
<A HREF="grg_48.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC47" HREF="grg_toc.html#TOC47">Flow Control</A></H3>
-
-<P>
-<A NAME="IDX215"></A>
-<A NAME="IDX216"></A>
-<A NAME="IDX217"></A>
-<A NAME="IDX218"></A>
-<A NAME="IDX219"></A>
-<A NAME="IDX220"></A>
-The following two keywords may occasionlly be needed. The <CODE>break</CODE> 
keyword
-can normally be simulated in other ways but is useful in record loops.
-Its function is to break
-one level back. Normally it is used within the body of a loop to break out of
-the loop on certain conditions (as an addition to the standard loop condition
-in <CODE>while ... do ... wend</CODE> loops). The <CODE>exit</CODE> keyword 
exits the entire equate expression all
-the way back to where it was initially called from within a text body or in a
-filter condition. The example below searches all the records in the 
<CODE>names</CODE>
-database
-for a matching value and returns the record number of the first record the
-field matched.
-
-</P>
-
-<PRE>
-%%EQUATE FIND
-  1 &#62;&#62; n
-  roll
-    if %NAME = "Smith" then break
-    else ++n &#62;&#62; n
-    endif
-  through:names
-  outputs(n)
-</PRE>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_46.html">previous</A>, 
<A HREF="grg_48.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_48.html
===================================================================
RCS file: doc/grg/grg_48.html
diff -N doc/grg/grg_48.html
--- doc/grg/grg_48.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,93 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Calling Other Equates</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_47.html">previous</A>, 
<A HREF="grg_49.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC48" HREF="grg_toc.html#TOC48">Calling Other Equates</A></H3>
-
-<P>
-<A NAME="IDX221"></A>
-<A NAME="IDX222"></A>
-<A NAME="IDX223"></A>
-<A NAME="IDX224"></A>
-<A NAME="IDX225"></A>
-<A NAME="IDX226"></A>
-<A NAME="IDX227"></A>
-<A NAME="IDX228"></A>
-<A NAME="IDX229"></A>
-Any equate can be called from within an equate. It can be passed
-arguments and any value returned can be assigned to a variable or
-used in an expression. An equate is called by simply
-giving its name (with optional brackets). If the equate matches the name of a
-local variable then the value of the variable will be returned else the equate
-will be called to return a value. An equate need not take any arguments nor
-return any value although they commonly do. Arguments are passed to an equate
-as a comma separated list of expressions between brackets that immediately
-follow the equate name. If the equate returns one argument this can be simply
-assigned to a variable, or used in an expression. If the equate returns
-multiple arguments then the <CODE>@(...)</CODE> operator sequence should be 
used to
-assign the results to multiple variables. Some examples of equate calls are
-shown below.
-
-</P>
-
-<PRE>
-%%EQUATE test
-  "hello" &#62;&#62; s
-  "b" + substr(s,1,1+3) + "ws" &#62;&#62; s
-</PRE>
-
-<P>
-Using the previously defined equate <CODE>substr()</CODE> the above would 
result in
-<CODE>"bellows"</CODE> being assigned to <CODE>s</CODE>.
-
-</P>
-<P>
-Arguments to an equate are defined using the <CODE>inputs(...)</CODE> keyword
-sequence. Between the brackets there can be nothing or there should be a comma
-separated list of variable names to which the arguments passed into the equate
-will be assigned (the variables will be created with the data type of the
-argument passed in). Instead of using the <CODE>inputs</CODE> keyword it is 
also
-possible to put the bracket sequence immediately following the definition
-of the equate name. The return values from an equate are similarly defined
-using the <CODE>outputs(...)</CODE> keyword sequence. This takes a comma 
separated
-list of expressions (normally just one) the values of which are returned to the
-calling equate. Both the <CODE>inputs</CODE> and <CODE>outputs</CODE> keyword 
sequences are
-optional but if they are used the <CODE>inputs</CODE> must be the first line of
-the equate and the <CODE>outputs</CODE> must be the last line of the equate 
(or at
-least the last executed expression) - the <CODE>outputs</CODE> keyword cannot 
be used
-as a return escape. The example below shows the definition of an equate that
-takes two arguments and swaps the values around while also adding 10 to each
-value returning the two swapped arguments and then an example of that equate
-being called.
-
-</P>
-
-<PRE>
-%%EQUATE swap
-  inputs(a,b)
-  outputs(b+10,a+10)
-%%EQUATE test
-  5 &#62;&#62; x
-  7 &#62;&#62; y
-  swap(x,y)@(x,y)
-</PRE>
-
-<P>
-The <CODE>test</CODE> equate will result in <CODE>x</CODE> equaling 17 and 
<CODE>y</CODE> equaling
-15. Note the use of the <CODE>@ </CODE> operator to handle the passing back of 
multiple
-arguments. Note that <CODE>swap(x,y) &#62;&#62; y &#62;&#62; x</CODE> would be 
equivalent to the above
-but the assignments must be put in reverse order to the arguments sent back.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_47.html">previous</A>, 
<A HREF="grg_49.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_49.html
===================================================================
RCS file: doc/grg/grg_49.html
diff -N doc/grg/grg_49.html
--- doc/grg/grg_49.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,42 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Numeric Operators</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_48.html">previous</A>, 
<A HREF="grg_50.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC49" HREF="grg_toc.html#TOC49">Numeric Operators</A></H3>
-
-<P>
-<A NAME="IDX230"></A>
-<A NAME="IDX231"></A>
-<A NAME="IDX232"></A>
-<A NAME="IDX233"></A>
-<A NAME="IDX234"></A>
-<A NAME="IDX235"></A>
-<A NAME="IDX236"></A>
-<A NAME="IDX237"></A>
-<A NAME="IDX238"></A>
-<A NAME="IDX239"></A>
-<A NAME="IDX240"></A>
-These operators are fairly self explanatory. The <CODE>+</CODE>, 
<CODE>-</CODE>, <CODE>/</CODE>,
-and <CODE>*</CODE> operators respectively add, subtract, multiply, and divide 
two
-values. The <CODE>++</CODE> and <CODE>--</CODE> unary operators respectively 
add and
-subtract one to their operand (they don't modify the operand in place like
-C, so <CODE>++a</CODE> is invalid, use <CODE>++a &#62;&#62; a</CODE> instead). 
They can only be
-used
-with numeric operands, with the exception of <CODE>+</CODE> which can also be 
used
-with string operands. The <CODE>+</CODE>, <CODE>++</CODE>, <CODE>-</CODE>, and 
<CODE>--</CODE> operators
-can also be used with date operands, where they add or subtract days (or add
-or subtract two dates).
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_48.html">previous</A>, 
<A HREF="grg_50.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_5.html
===================================================================
RCS file: doc/grg/grg_5.html
diff -N doc/grg/grg_5.html
--- doc/grg/grg_5.html  13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,163 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Processing Sequence</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_4.html">previous</A>, 
<A HREF="grg_6.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC5" HREF="grg_toc.html#TOC5">Processing Sequence</A></H3>
-
-<P>
-<A NAME="IDX18"></A>
-<A NAME="IDX19"></A>
-This is the processing sequence including command line arguments, built in
-equates, text bodies, and the actual database file. Some of the terms may not
-be familiar yet but are explained further in later sections. Not all events are
-listed below, just the more important ones.
-
-</P>
-
-<OL>
-<LI>
-
-Initialise built in equates to void
-<LI>
-
-Initialise built in system variables
-<LI>
-
-Parse command line arguments
-<LI>
-
-Parse <CODE>.grg</CODE> file
-<LI>
-
-Parse command line arguments (second time)
-<LI>
-
-Update environment variables and system variables
-<LI>
-
-Execute <CODE>eq_init</CODE> equate
-<LI>
-
-Load database files
-<LI>
-
-Open output file
-<LI>
-
-Set <CODE>_eq_totrec</CODE> to size of master database file
-<LI>
-
-Sort records in master database file
-<LI>
-
-Execute <CODE>eq_pre_header</CODE>
-<LI>
-
-Process HEADER text body
-<LI>
-
-Execute <CODE>eq_post_header</CODE>
-<LI>
-
-For each record in sorted/filtered master database
-
-<OL>
-<LI>
-
-Set <CODE>_eq_currec</CODE>
-<LI>
-
-If this is page 1
-
-<OL>
-<LI>
-
-Execute <CODE>eq_pre_page01</CODE>
-<LI>
-
-Process PAGE01 text body
-<LI>
-
-Execute <CODE>eq_post_page01</CODE>
-</OL>
-
-<LI>
-
-If this is page N
-
-<OL>
-<LI>
-
-Execute <CODE>eq_pre_pagenn</CODE>
-<LI>
-
-Process PAGENN text body
-<LI>
-
-Execute <CODE>eq_post_pagenn</CODE>
-</OL>
-
-<LI>
-
-If this is a valid banner point
-
-<OL>
-<LI>
-
-Set <CODE>_eq_banner_val</CODE>
-<LI>
-
-Set <CODE>_eq_banner_nest</CODE>
-<LI>
-
-Execute <CODE>eq_pre_banner</CODE>
-<LI>
-
-Process BANNER text body
-<LI>
-
-Execute <CODE>eq_post_banner</CODE>
-</OL>
-
-<LI>
-
-Execute <CODE>eq_pre_record</CODE>
-<LI>
-
-Process RECORD text body
-<LI>
-
-Execute <CODE>eq_post_record</CODE>
-</OL>
-
-<LI>
-
-Execute <CODE>eq_pre_footer</CODE>
-<LI>
-
-Process FOOTER text body
-<LI>
-
-Execute <CODE>eq_post_footer</CODE>
-<LI>
-
-Execute <CODE>eq_exit</CODE> equate
-<LI>
-
-Close output file
-</OL>
-
-<P>
- 
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_4.html">previous</A>, 
<A HREF="grg_6.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_50.html
===================================================================
RCS file: doc/grg/grg_50.html
diff -N doc/grg/grg_50.html
--- doc/grg/grg_50.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,36 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Comparison Operators</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_49.html">previous</A>, 
<A HREF="grg_51.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC50" HREF="grg_toc.html#TOC50">Comparison Operators</A></H3>
-
-<P>
-<A NAME="IDX241"></A>
-<A NAME="IDX242"></A>
-<A NAME="IDX243"></A>
-<A NAME="IDX244"></A>
-<A NAME="IDX245"></A>
-<A NAME="IDX246"></A>
-<A NAME="IDX247"></A>
-<A NAME="IDX248"></A>
-These comprise the following: <CODE>&#62;</CODE>, greater than; 
<CODE>&#60;</CODE>, less than;
-<CODE>&#62;=</CODE>, greater than or equals; <CODE>&#60;=</CODE>, less than or 
equals; <CODE>=</CODE>,
-equals; <CODE>&#60;&#62;</CODE> not equals. These perform the respective 
comparison and
-produce a boolean data type of true or false. Can be used with numeric,
-string and date operands. The boolean data type is interchangeable with
-the numeric data type, but in general can only subsequently be used by
-the boolean operators or the conditional operator.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_49.html">previous</A>, 
<A HREF="grg_51.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_51.html
===================================================================
RCS file: doc/grg/grg_51.html
diff -N doc/grg/grg_51.html
--- doc/grg/grg_51.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,44 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Boolean Operators</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_50.html">previous</A>, 
<A HREF="grg_52.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC51" HREF="grg_toc.html#TOC51">Boolean Operators</A></H3>
-
-<P>
-<A NAME="IDX249"></A>
-<A NAME="IDX250"></A>
-<A NAME="IDX251"></A>
-<A NAME="IDX252"></A>
-<A NAME="IDX253"></A>
-<A NAME="IDX254"></A>
-<A NAME="IDX255"></A>
-<A NAME="IDX256"></A>
-<A NAME="IDX257"></A>
-<A NAME="IDX258"></A>
-<A NAME="IDX259"></A>
-<A NAME="IDX260"></A>
-These perform logical operations on the boolean data type or bitwise
-operations on the numeric data type, but are generally interchangeable. The
-operator keywords <CODE>and</CODE>, <CODE>or</CODE>, and <CODE>xor</CODE> will 
logically AND, OR,
-and exclusive OR their arguments respectively. The <CODE>not</CODE> keyword 
operator
-wll logically negate its argument.
-
-</P>
-<P>
-The operators <CODE>&#38;</CODE>, <CODE>|</CODE>, and <CODE>^</CODE> bitwise 
and, or, and
-exclusive or their arguments respectively. The <CODE>~</CODE> operator 
performs a
-ones complement on its argument.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_50.html">previous</A>, 
<A HREF="grg_52.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_52.html
===================================================================
RCS file: doc/grg/grg_52.html
diff -N doc/grg/grg_52.html
--- doc/grg/grg_52.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,59 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - String Operators</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_51.html">previous</A>, 
<A HREF="grg_53.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC52" HREF="grg_toc.html#TOC52">String Operators</A></H3>
-
-<P>
-<A NAME="IDX261"></A>
-<A NAME="IDX262"></A>
-<A NAME="IDX263"></A>
-<A NAME="IDX264"></A>
-<A NAME="IDX265"></A>
-The <CODE>+</CODE> operator and all the comparison operators also work on 
strings.
-The <CODE>+</CODE> operator concatenates two string arguments together, whereas
-the comparison operators will compare strings character by character. A
-string is less than another if it is earlier in ascii dictionary order and is
-greater than another if it is later in ascii dictionary order.
-
-</P>
-<P>
-The index operators <CODE>'</CODE> and <CODE>`</CODE> are more complex. The 
<CODE>'</CODE> takes two
-arguments, a string to index and a numeric index position. The result is the
-numeric value of the character in the string at the index position. The index
-can not go beyond the end of the string. The <CODE>`</CODE> operator is the 
reverse.
-It takes three arguments, the additonal one being the numeric value to write
-into the string at the given index position. Below is the definition of
-<CODE>substr</CODE> as an example of how these operators are used.
-
-</P>
-
-<PRE>
-%%EQUATE substr(s1,s,e)
-  "" &#62;&#62; s2
-  0 &#62;&#62; x
-  while s &#60;= e do
-    s2,(s1's)`x &#62;&#62; s2
-    s + 1 &#62;&#62; s
-    x + 1 &#62;&#62; x
-  wend
-  outputs(s2,0`x)
-</PRE>
-
-<P>
-The function takes three arguments, the string to produce a substring of, the
-start index and end index for the string. It pushes the resultant substring.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_51.html">previous</A>, 
<A HREF="grg_53.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_53.html
===================================================================
RCS file: doc/grg/grg_53.html
diff -N doc/grg/grg_53.html
--- doc/grg/grg_53.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,59 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - I/O Operators</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_52.html">previous</A>, 
<A HREF="grg_54.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC53" HREF="grg_toc.html#TOC53">I/O Operators</A></H3>
-
-<P>
-<A NAME="IDX266"></A>
-<A NAME="IDX267"></A>
-<A NAME="IDX268"></A>
-<A NAME="IDX269"></A>
-<A NAME="IDX270"></A>
-<A NAME="IDX271"></A>
-<A NAME="IDX272"></A>
-The <CODE>write</CODE> keyword writes its operand on the standard output. This 
can
-be useful for debugging or displaying progress information. The 
<CODE>write</CODE>
-keyword acts as a expression terminator (like the assignment operator) and
-so must always appear at the end of an expression.
-
-</P>
-<P>
-The <CODE>read</CODE> keyword reads from the standard input characters up to a
-newline, returning the string entered (including the newline character).
-The maximum number of characters that can be read is STRMAX. Since
-it returns a value it can be used anywhere in an expression.
-
-</P>
-<P>
-The <CODE>send</CODE> keyword will write its operand to the output file stream
-(as opposed to <CODE>write</CODE> which sends its output to standard output). 
This
-is useful for writing larger blocks of text generated from equates that
-cannot be written into the output file in the ordinary way (by returning
-the value). Like the <CODE>write</CODE> keyword it acts as an expression 
terminator.
-
-</P>
-<P>
-Here is an example of the read, write and send operators.
-
-</P>
-
-<PRE>
-%%EQUATE feedback
-  read &#62;&#62; s
-  "Input: " + s write
-  s send
-</PRE>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_52.html">previous</A>, 
<A HREF="grg_54.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_54.html
===================================================================
RCS file: doc/grg/grg_54.html
diff -N doc/grg/grg_54.html
--- doc/grg/grg_54.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,76 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Miscellaneous Operators</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_53.html">previous</A>, 
<A HREF="grg_55.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC54" HREF="grg_toc.html#TOC54">Miscellaneous Operators</A></H3>
-
-<P>
-<A NAME="IDX273"></A>
-<A NAME="IDX274"></A>
-<A NAME="IDX275"></A>
-<A NAME="IDX276"></A>
-<A NAME="IDX277"></A>
-The <CODE>exec</CODE> keyword or <CODE>$</CODE> operator is very useful. It 
equates its
-operand. So, for example, a string containing a valid equate expression
-could be given as an argument to this operator which would then execute
-the string as an equate returning any value resulting. For example, here
-is a definition of <CODE>strlen</CODE> (called <CODE>gstrlen</CODE>) for any 
database field.
-
-</P>
-
-<PRE>
-%%EQUATE gstrlen
-  inputs(str)
-  outputs(strlen(exec(str)))
-</PRE>
-
-<P>
-The function might be called with <CODE>gstrlen(%%NAME)</CODE>. Note that the
-<CODE>%%</CODE> operator is used to put the field name on the stack. Then 
within
-the function the <CODE>$</CODE> operator is used to evaluate the argument as
-an equate expression, thus getting the contents of the field.
-
-</P>
-<P>
-There is no dynamic array support in equate expressions currently, but a
-simplified mechanism can be written using the <CODE>exec</CODE> operator to 
create
-named variables with a numeric index to simulate this. The size of an array
-would be limited to a few hundred elements (or less, depending on how much
-local variable space is available on the stack). The example below
-defines<CODE> 
-aget</CODE> to get the contents of an array element and <CODE>aput</CODE> to 
assign a value
-to an array element and <CODE>example</CODE> to show the equates being used. 
The
-definitions below use global variables and work only with string values.
-
-</P>
-
-<PRE>
-%%EQUATE aget(name,index)
-  "" &#62;&#62; index_str
-  index &#62;&#62; index_str
-  exec("_"+name+index_str)
-%%EQUATE aset(name,index,value)
-  "" &#62;&#62; index_str
-  index &#62;&#62; index_str
-  exec(value+"&#62;&#62;_"+name+index_str)
-%%EQUATE example
-  /* create 5 element array, each element is set to "hello" */
-  0 &#62;&#62; i
-  while i &#60; 5 do aset("ex",i,"hello") ++i &#62;&#62; i wend
-  /* read back contents of array, send to stdout */
-  0 &#62;&#62; i
-  while i &#60; 5 do aget("ex",i) write ++i &#62;&#62; i wend
-</PRE>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_53.html">previous</A>, 
<A HREF="grg_55.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_55.html
===================================================================
RCS file: doc/grg/grg_55.html
diff -N doc/grg/grg_55.html
--- doc/grg/grg_55.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,45 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Operator Precedence</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_54.html">previous</A>, 
<A HREF="grg_56.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC55" HREF="grg_toc.html#TOC55">Operator Precedence</A></H3>
-
-<P>
-<A NAME="IDX278"></A>
-<A NAME="IDX279"></A>
-<A NAME="IDX280"></A>
-In most cases the default precedences of the operators will be correct, however
-in any case where they are not (such as some mathematical and relational
-expressions) then
-bracket pairs can be used to enforce a certain ordering. Pairs of brackets can
-be used in other circumstances to increase legibility (such as surrounding the
-condition part of an <CODE>if .. then</CODE> or <CODE>while ... do</CODE> 
statement). Some
-examples are shown below.
-
-</P>
-
-<PRE>
-%%EQUATE example
-  /* default precedence below would
-  be a + (b * c) + d */
-  (a + b) * (c + d) &#62;&#62; x
-  /* brackets add clarity below and also
-    affect the conditon which would be
-    (not a) and b by default */
-  if (not (a and b)) then 1 &#62;&#62; c endif
-  /* brackets just add clarity below */
-  while ( a &#62; 5 ) do --a &#62;&#62; a wend
-</PRE>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_54.html">previous</A>, 
<A HREF="grg_56.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_56.html
===================================================================
RCS file: doc/grg/grg_56.html
diff -N doc/grg/grg_56.html
--- doc/grg/grg_56.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,27 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Comments</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_55.html">previous</A>, 
<A HREF="grg_57.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC56" HREF="grg_toc.html#TOC56">Comments</A></H3>
-
-<P>
-<A NAME="IDX281"></A>
-<A NAME="IDX282"></A>
-<A NAME="IDX283"></A>
-You can include comments anywhere in an equate expression by enclosing them
-in <CODE>/*</CODE> and <CODE>*/</CODE> brackets. Nested comments are allowed. 
A comment may
-extend over a line without the newline being escaped.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_55.html">previous</A>, 
<A HREF="grg_57.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_57.html
===================================================================
RCS file: doc/grg/grg_57.html
diff -N doc/grg/grg_57.html
--- doc/grg/grg_57.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,35 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Debugging</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_56.html">previous</A>, 
<A HREF="grg_58.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC57" HREF="grg_toc.html#TOC57">Debugging</A></H3>
-
-<P>
-<A NAME="IDX284"></A>
-<A NAME="IDX285"></A>
-<A NAME="IDX286"></A>
-<A NAME="IDX287"></A>
-The best thing to do is to start up the tracer. This will dump to standard
-output precisely what is happening. This is however done at the level of
-reversed equate expressions (see section <A HREF="grg_58.html#SEC58">Reversed 
Equate Expressions</A>) as there is no symbolic debugger.
-You can also use the <CODE>write</CODE> keyword to print information onto 
standard
-output. You can turn on the tracer by assigning <CODE>1</CODE> to the 
<CODE>_eq_trace</CODE> system variable,
-ie. <CODE>1 &#62;&#62; _eq_trace</CODE>. The tracer can be
-turned off by assigning <CODE>0</CODE> in the same way.
-Control of this variable allows tracing to be turned on
-and off at selected points during equate processing so that the
-particular problem area can be focused on.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_56.html">previous</A>, 
<A HREF="grg_58.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_58.html
===================================================================
RCS file: doc/grg/grg_58.html
diff -N doc/grg/grg_58.html
--- doc/grg/grg_58.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,53 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Reversed Equate 
Expressions</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_57.html">previous</A>, 
<A HREF="grg_59.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H2><A NAME="SEC58" HREF="grg_toc.html#TOC58">Reversed Equate 
Expressions</A></H2>
-
-<P>
-The reversed equate expression language is a postfix (reverse polish) notation
-(read cryptic but efficient in terms of space and speed) language. It is rather
-FORTH like in its appearance. The normal equate expressions are tokenised
-and converted into this language for processing. However an equate can be
-defined directly in this langauge if preferred (it is retained for
-compatibility since it used to be all there was). An understanding of this
-language can be useful for debugging purposes as this is what any trace output
-will currently show. However for most users there should be no need to know
-anything about this (except perhaps if defining equate based filter expressions
-or patterns which currently require reversed equates) so you can skip to the
-next part (section <A HREF="grg_80.html#SEC80">Hard Limits</A>).
-
-</P>
-<P>
-All operators are single or double character combinations. Five 
interchangeable data types
-are supported. The language is stack based but in addition global variables,
-local variables, and system variables are available. Most operators accept an
-immediately following
-variable operand instead of one stack operand. Looping and conditional
-structures can also be used - as well as a function call mechanism. All in all
-there are a total of about 34 unique operators, some of which have multiple
-functions dependent on the data types of their operands.
-
-</P>
-<P>
-Due to the large number of operators some have become ambiguous and it is
-reccommended that separators are used almost exclusively between them, the
-most obvious separator being whitespace. Note that some combinations need
-special attention, for example
-<CODE>~~=</CODE> which has a different meaning from
-<CODE>=~~</CODE>.
-
-</P>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_57.html">previous</A>, 
<A HREF="grg_59.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_59.html
===================================================================
RCS file: doc/grg/grg_59.html
diff -N doc/grg/grg_59.html
--- doc/grg/grg_59.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,31 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Defining Reversed 
Equates</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_58.html">previous</A>, 
<A HREF="grg_60.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC59" HREF="grg_toc.html#TOC59">Defining Reversed 
Equates</A></H3>
-
-<P>
-Reversed equate expressions are defined using the EQUATE
-predefined macro. This takes two arguments separated by whitespace. The first 
is
-the name of the equate which can be in upper or lower or mixed case and is case
-sensitive. The first character of the equate name should be an underscore or an
-alphabetic character (A--Z or a--z), the remaining characters can be these as
-well as the numeric characters (0--9). There is a maximum name length (see
-section <A HREF="grg_80.html#SEC80">Hard Limits</A> on hard limits). The
-second argument is the definition of the equate which must be on one line only.
-The backslash character can be used to escape the newline and allow the equate
-definition to be formatted over multiple lines.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_58.html">previous</A>, 
<A HREF="grg_60.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_6.html
===================================================================
RCS file: doc/grg/grg_6.html
diff -N doc/grg/grg_6.html
--- doc/grg/grg_6.html  13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,33 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Environment Variables</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_5.html">previous</A>, 
<A HREF="grg_7.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC6" HREF="grg_toc.html#TOC6">Environment Variables</A></H3>
-
-<P>
-<A NAME="IDX20"></A>
-<A NAME="IDX21"></A>
-Environment variables are internal defaults which can be altered directly
-from within the GRG file. Normally this is done with the
-DEFINE predefined macro to redefine their value, although
-there are a few exceptions.
-
-</P>
-<P>
-Note that the GPPDEFINE and TEXDEFINE predefined macros are
-deprecated and should not be used.
-
-</P>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_5.html">previous</A>, 
<A HREF="grg_7.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_60.html
===================================================================
RCS file: doc/grg/grg_60.html
diff -N doc/grg/grg_60.html
--- doc/grg/grg_60.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,48 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - The Stack</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_59.html">previous</A>, 
<A HREF="grg_61.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC60" HREF="grg_toc.html#TOC60">The Stack</A></H3>
-
-<P>
-The stack is where everything happens. Arguments to operators are pushed onto
-the stack, the operator takes these values off the stack, produces the result
-and pushes it back on the stack. Most operators will optionally take a operand
-immediately following as a variable name, and use this for one of their
-arguments instead of the stack. Most operators are binary, although a few are
-unary, and there is one tertiary operator. As an example of the stack the
-fragment below shows four different ways to add 1 to a number (using the binary
-plus operator and the unary increment operator).
-
-</P>
-
-<PRE>
-1 &#60;&#60;X + &#62;&#62;X
-1 +X &#62;&#62;X
-&#60;&#60;X ++ &#62;&#62;X
-++X &#62;&#62;X
-</PRE>
-
-<P>
-The first example pushes the numeric literal <CODE>1</CODE> on the stack, 
followed by
-the value of the <CODE>X</CODE> variable. Then the <CODE>+</CODE> operator 
takes both of these
-values off the stack, adds them and pushes the result back on the stack. Then
-the value is taken off the stack and written back into <CODE>X</CODE>. The 
second
-example behaves identically except that the form of the operator 
<CODE>+X</CODE> means
-that the left argument to add is read from the variable <CODE>X</CODE> and not 
from
-the stack. Note that the result is still put on the stack though. The last two
-examples use the increment operator instead.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_59.html">previous</A>, 
<A HREF="grg_61.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_61.html
===================================================================
RCS file: doc/grg/grg_61.html
diff -N doc/grg/grg_61.html
--- doc/grg/grg_61.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,45 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Reversed Equate Data 
Types</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_60.html">previous</A>, 
<A HREF="grg_62.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC61" HREF="grg_toc.html#TOC61">Reversed Equate Data 
Types</A></H3>
-
-<P>
-There are five data types - based on database field types. These are strings,
-numbers, dates, booleans, and fields. A string literal is a sequence of
-characters delimited by double quotes. The double quote can be included in the
-string by using a <CODE>\"</CODE> sequence, and the backslash can be included 
in a
-string by using a <CODE>\\</CODE> sequence. A numeric literal  is a sequence of
-digits optionally starting with the unary minus operator. Decimal numbers are
-also supported (ie. include a decimal point) and will be stored as the
-EQ_DEC type. Note that negative number syntax is handled at the parsing
-stage for literals and so there is no unary minus operator.
-Date and boolean literals can only be created if there is
-a database field of that type to use. A field literal is the name of a field
-rather than its contents. It is created using the <CODE>%%</CODE> operator. The
-example fragment below shows the way to create each data type (as an argument
-that gets pushed onto the stack).
-
-</P>
-
-<PRE>
-"Hello World"
-12345
-0.25
-%START_DATE
-%IS_TRUE
-%%SURNAME
-</PRE>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_60.html">previous</A>, 
<A HREF="grg_62.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_62.html
===================================================================
RCS file: doc/grg/grg_62.html
diff -N doc/grg/grg_62.html
--- doc/grg/grg_62.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,32 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Reversed Equate 
Variables</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_61.html">previous</A>, 
<A HREF="grg_63.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC62" HREF="grg_toc.html#TOC62">Reversed Equate 
Variables</A></H3>
-
-<P>
-Variables can be used to permanently store information that would otherwise be
-lost on the stack. They can hold any data type. Variables can be local to the
-current equate or global to all equates. Once defined a variable can never be
-undefined (unless local where it will be undefined when the equate finishes),
-nor can the data type it was defined with be changed. The data type of a
-variable (and the variable itself) is declared when a value is written to the
-variable (the given name will be created as a new variable if it does not
-exist). A variable cannot be used until an initialising value has first been
-written to it to declare the variable and its type. Writing a different data
-type to a variable will coerce the value to the data type of the variable.
-
-</P>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_61.html">previous</A>, 
<A HREF="grg_63.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_63.html
===================================================================
RCS file: doc/grg/grg_63.html
diff -N doc/grg/grg_63.html
--- doc/grg/grg_63.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,37 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Reversed Equate Local 
Variables</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_62.html">previous</A>, 
<A HREF="grg_64.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC63" HREF="grg_toc.html#TOC63">Reversed Equate Local 
Variables</A></H4>
-
-<P>
-These variables are local to the each equate. Variable names are unique to
-each equate. Their value can be passed to another equate only by giving them
-as arguments (this is call-by-value, there is no call-by-reference facility).
-Their value is lost on the equate returning. Local variables are held on the
-equate stack but build in the opposite direction to that used for general
-equate processing.
- 
-The characters A--Z and a--z can be used to start the name of a local variable
-and the rest of the variable name can include these same characters as well as
-the digits 0--9 and the underscore _.
-
-</P>
-<P>
-Care must be taken when using local variables within a text body (where they
-are part of the arguments passed to an equate) as these are created as global
-variables (but without the underscore character).
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_62.html">previous</A>, 
<A HREF="grg_64.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_64.html
===================================================================
RCS file: doc/grg/grg_64.html
diff -N doc/grg/grg_64.html
--- doc/grg/grg_64.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,39 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Reversed Equate Global 
Variables</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_63.html">previous</A>, 
<A HREF="grg_65.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC64" HREF="grg_toc.html#TOC64">Reversed Equate Global 
Variables</A></H4>
-
-<P>
-These are almost identical to local variables, except that the name of the
-variable must start with the underscore character. This distinction in naming
-identifies the variable as global to all equates (any equate can read or write
-the value at any time, although it must always be ensured that the variable is
-written to before any read takes place). System variables are simply a special
-case of global variable where the variable has already been declared with a
-value generated by parsing the GRG file.
-
-</P>
-<P>
-System variables maintain their type and will complain if a different data
-type from that which they were defined with is written into them.
-
-</P>
-<P>
-The system variable whose name is the underscore character alone represents
-the system stack pointer. So doing <CODE>0&#62;&#62;_</CODE> for example would 
clear
-the stack.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_63.html">previous</A>, 
<A HREF="grg_65.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_65.html
===================================================================
RCS file: doc/grg/grg_65.html
diff -N doc/grg/grg_65.html
--- doc/grg/grg_65.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,23 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Reversed Equate 
Operators</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_64.html">previous</A>, 
<A HREF="grg_66.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC65" HREF="grg_toc.html#TOC65">Reversed Equate 
Operators</A></H3>
-
-<P>
-This section gives a brief description, usage, and example of each operator.
-
-</P>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_64.html">previous</A>, 
<A HREF="grg_66.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_66.html
===================================================================
RCS file: doc/grg/grg_66.html
diff -N doc/grg/grg_66.html
--- doc/grg/grg_66.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,55 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Reversed Equate Variable 
Operators</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_65.html">previous</A>, 
<A HREF="grg_67.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC66" HREF="grg_toc.html#TOC66">Reversed Equate Variable 
Operators</A></H4>
-
-<P>
-The <CODE>&#62;&#62;</CODE> and <CODE>&#60;&#60;</CODE> operators are used to 
write a value to a variable
-and read a value from a variable respectively. Both operators must be followed
-by a variable name, although it can be of any type. The 
<CODE>&#62;&#62;</CODE> operator pops
-a value off the stack and assigns it to the designated variable - the variable
-will be created if neccessary. If so, then it will be created with the type of
-the value popped off the stack. If the variable already exists then its current
-value will be overwritten with the new one. However, if the type of the value
-popped off the stack differs from the variable type it will be cast to the
-same type as the variable. The <CODE>&#60;&#60;</CODE> operator takes the 
value of the
-designated variable and pushes it on the stack. The type of the stack argument
-will be the type of the variable. There is an error if the variable has not
-been defined. There are some examples below.
-
-</P>
-
-<PRE>
-"hello" &#62;&#62;S
-&#60;&#60;S 123 &#62;&#62;S &#60;&#60;S + .
-</PRE>
-
-<P>
-The first example creates a string variable <CODE>S</CODE> and assigns the 
string
-literal <CODE>"hello"</CODE> to it. The second pushes the contents of 
<CODE>S</CODE> back
-on the stack and then assigns the numeric literal <CODE>123</CODE> to the 
string
-variable <CODE>S</CODE> thus converting it into a string. This is then pushed 
onto
-the stack and the two strings are concatenated and the result printed, which
-will be the string literal <CODE>"hello123"</CODE>.
-
-</P>
-<P>
-It is not actually necessary to use the <CODE>&#60;&#60;</CODE> operator as 
any variable name
-will be looked up first as an equate call and if it is not an equate call then
-as a variable reference. The <CODE>&#60;&#60;</CODE> operator can be used 
where there is a
-name clash for example.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_65.html">previous</A>, 
<A HREF="grg_67.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_67.html
===================================================================
RCS file: doc/grg/grg_67.html
diff -N doc/grg/grg_67.html
--- doc/grg/grg_67.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,31 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Reversed Equate Numeric 
Operators</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_66.html">previous</A>, 
<A HREF="grg_68.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC67" HREF="grg_toc.html#TOC67">Reversed Equate Numeric 
Operators</A></H4>
-
-<P>
-These operators are fairly self explanatory. The <CODE>+</CODE>, 
<CODE>-</CODE>, <CODE>/</CODE>,
-and <CODE>*</CODE> operators respectively add, subtract, multiply, and divide 
two
-stack values and push the result on the stack. The <CODE>++</CODE> and 
<CODE>--</CODE>
-operators respectively add and subtract one to their operand. All these
-operators can take a variable designator to replace one of their stack
-operands. They can only be used with numeric operands, with the exception of
-<CODE>+</CODE> which can be used with any operand
-(see section <A HREF="grg_70.html#SEC70">Reversed Equate String 
Operators</A>). The <CODE>+</CODE>, <CODE>++</CODE>, <CODE>-</CODE>, and
-<CODE>--</CODE> operators can also be applied to dates, where they add or
-subtract days appropriately (or add or subtract two dates).
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_66.html">previous</A>, 
<A HREF="grg_68.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_68.html
===================================================================
RCS file: doc/grg/grg_68.html
diff -N doc/grg/grg_68.html
--- doc/grg/grg_68.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,32 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Reversed Equate Comparison 
Operators</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_67.html">previous</A>, 
<A HREF="grg_69.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC68" HREF="grg_toc.html#TOC68">Reversed Equate Comparison 
Operators</A></H4>
-
-<P>
-These comprise the following: <CODE>&#62;</CODE>, greater than; 
<CODE>&#60;</CODE>, less than;
-<CODE>&#62;=</CODE>, greater than or equals; <CODE>&#60;=</CODE>, less than or 
equals; <CODE>=</CODE>,
-equals; <CODE>&#60;&#62;</CODE> not equals. These take two stack operands (or 
one stack
-operand and a variable designator) perform the respective comparison and
-push a boolean data type of true or false on the stack dependent on the
-result. They can be used with numeric or string operands
-(see section <A HREF="grg_70.html#SEC70">Reversed Equate String 
Operators</A>). The boolean data type is interchangeable
-with the numeric data type, but in
-general can only subsequently be used by the boolean operators or the
-conditional operator. All these operands can also be used to compare date
-types, taking account of the format of a date.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_67.html">previous</A>, 
<A HREF="grg_69.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_69.html
===================================================================
RCS file: doc/grg/grg_69.html
diff -N doc/grg/grg_69.html
--- doc/grg/grg_69.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,33 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Reversed Equate Boolean 
Operators</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_68.html">previous</A>, 
<A HREF="grg_70.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC69" HREF="grg_toc.html#TOC69">Reversed Equate Boolean 
Operators</A></H4>
-
-<P>
-These perform logical operations on the boolean data type or bitwise
-operations on the numeric data type, but are generally interchangeable. The
-operators <CODE>&#38;&#38;</CODE>, <CODE>||</CODE>, and <CODE>^^</CODE> will 
logically and, or, and
-exclusive or their arguments respectively. The <CODE>~~</CODE> operator 
logically
-negates its argument. All these operators take two boolean stack arguments
-(or one and a variable designator) and push a boolean result, except the
-negation operator which is unary. The operators
-<CODE>&#38;</CODE>, <CODE>|</CODE>, and <CODE>^</CODE> bitwise and, or, and 
exclusive or their
-arguments respectively. The <CODE>~</CODE> operator performs a ones complement 
on
-its argument. All these operators take two numeric stack arguments (except
-the ones complement operator) or one stack argument and a variable designator
-and push a numeric result.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_68.html">previous</A>, 
<A HREF="grg_70.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_7.html
===================================================================
RCS file: doc/grg/grg_7.html
diff -N doc/grg/grg_7.html
--- doc/grg/grg_7.html  13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,33 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - NPAGE</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_6.html">previous</A>, 
<A HREF="grg_8.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC7" HREF="grg_toc.html#TOC7">NPAGE</A></H4>
-
-<P>
-<A NAME="IDX22"></A>
-<A NAME="IDX23"></A>
-<A NAME="IDX24"></A>
-The <STRONG>NPAGE</STRONG> variable holds the value <CODE>grg</CODE> uses to 
start a new page.
-Its default value is <CODE>\newpage</CODE> (for LaTeX), but it can be redefined
-to anything (a linefeed control character for example). The example program
-fragment below resets the <STRONG>NPAGE</STRONG> variable to the null string.
-
-</P>
-
-<PRE>
-%%DEFINE NPAGE
-</PRE>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_6.html">previous</A>, 
<A HREF="grg_8.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_70.html
===================================================================
RCS file: doc/grg/grg_70.html
diff -N doc/grg/grg_70.html
--- doc/grg/grg_70.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,46 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Reversed Equate String 
Operators</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_69.html">previous</A>, 
<A HREF="grg_71.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC70" HREF="grg_toc.html#TOC70">Reversed Equate String 
Operators</A></H4>
-
-<P>
-The <CODE>+</CODE> operator and all the comparison operators also work on 
strings.
-The <CODE>+</CODE> operator concatenates two string argumennts together, 
whereas
-the comparison operators will compare strings character by character. A
-string is less than another if it is earlier in ascii dictionary order and is
-greater than another if it is later in ascii dictionary order. The index
-operators <CODE>'</CODE> and <CODE>`</CODE> are more complex. The 
<CODE>'</CODE> takes two
-arguments, a string to index (which can be on the stack or taken from a
-variable) and a numeric index position. The result pushed is the numeric value
-of the character in the string at the index position. The index cannot go 
beyond
-the end of the string. The <CODE>`</CODE> operator is the reverse. It takes 
three
-arguments, the additonal one being the numeric value to write into the string
-at the given index position. Below is the definition of <CODE>substr</CODE> as 
an
-example of how these operators are used.
-
-</P>
-
-<PRE>
-%%EQUATE SUBSTR      
&#62;&#62;E&#62;&#62;S&#62;&#62;S1""&#62;&#62;S2\0&#62;&#62;X\
-       
[&#60;&#60;S&#60;&#60;E&#60;=;&#60;&#60;S'S1\&#60;&#60;X`S2&#62;&#62;S2++S&#62;&#62;S++X&#62;&#62;X]\
-       0&#60;&#60;X`S2
-</PRE>
-
-<P>
-The function takes three arguments, the string to produce a substring of, the
-start index and end index for the string. It pushes the resultant substring.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_69.html">previous</A>, 
<A HREF="grg_71.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_71.html
===================================================================
RCS file: doc/grg/grg_71.html
diff -N doc/grg/grg_71.html
--- doc/grg/grg_71.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,25 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Reversed Equate Stack 
Operators</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_70.html">previous</A>, 
<A HREF="grg_72.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC71" HREF="grg_toc.html#TOC71">Reversed Equate Stack 
Operators</A></H4>
-
-<P>
-The <CODE>@ </CODE> operator duplicates the value at the top of the stack. The 
<CODE>!</CODE>
-operator removes the value at the top of the stack. Both operators don't care
-what data type they are using. The <CODE>@ </CODE> operator can take a variable
-designator instead - in which case it pushes the variables value twice.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_70.html">previous</A>, 
<A HREF="grg_72.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_72.html
===================================================================
RCS file: doc/grg/grg_72.html
diff -N doc/grg/grg_72.html
--- doc/grg/grg_72.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,91 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Reversed Equate Field 
Operators</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_71.html">previous</A>, 
<A HREF="grg_73.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC72" HREF="grg_toc.html#TOC72">Reversed Equate Field 
Operators</A></H4>
-
-<P>
-All field operators must be immediately followed by the name of the field to
-which they are referring (always in upper case).
-
-</P>
-<P>
-The <CODE>%</CODE> operator pushes the contents of the designated field name 
from the
-current record onto the stack.
-
-</P>
-<P>
-The <CODE>%%</CODE> operator pushes the name of the given field on the stack. 
This is
-similar to but not identical to quoting the field name.
-
-</P>
-<P>
-The <CODE>%#</CODE> operator pushes the length of the given field name on the
-stack. This is the defined maximum length in characters of the given field.
-
-</P>
-<P>
-The <CODE>%$</CODE> operator pushes the type of the given field name on the 
stack.
-This is a one character string which is the type of the given field, this
-will be <CODE>C</CODE> (character/string), <CODE>N</CODE> (numeric), 
<CODE>D</CODE> (date),
-<CODE>L</CODE>
-(logical), or <CODE>M</CODE> (memo) although this last type is not supported.
-
-</P>
-<P>
-The given field name can be more complex than a simple name to support
-referencing more that one database file and direct record indexing within that
-database file. The syntax of this is given below using the get field operator
-<CODE>%</CODE> as an example although any of the field operators above accept 
the
-same syntax variants.
-
-</P>
-<P>
-The <CODE>%field</CODE> syntax just gets the value of the <CODE>field</CODE> 
from the
-current record and is the default syntax given above.
-
-</P>
-<P>
-The <CODE>%field[index]</CODE> syntax gets the value of the <CODE>field</CODE> 
from
-the record with the given <CODE>index</CODE> (record indecies go from one to 
the number of
-records in the database).
-
-</P>
-<P>
-The <CODE>%database-&#62;field</CODE> syntax gets the value of the 
<CODE>field</CODE> from the
-current record of the given <CODE>database</CODE> (name should match that 
given when the
-database file was declared using the DATABASE predefined macro
-without the pathname or extension).
-
-</P>
-<P>
-The <CODE>%database-&#62;field[index]</CODE> syntax gets the value of the
-<CODE>field</CODE> from the record with the given <CODE>index</CODE> of the 
given
-<CODE>database</CODE>.
-
-</P>
-<P>
-The <CODE>index</CODE> can be a simple numeric literal or any normal equate 
processing that
-returns a numeric value. There should be no whitespace in the above syntax 
forms
-except where the <CODE>index</CODE> value is a more complex equate which can 
include
-whitespace if neccessary.
-
-</P>
-<P>
-The above syntax forms all bypass any active filters. The current record
-variants, when referring to a database other than the master database,
-will always refer to the first record of that database.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_71.html">previous</A>, 
<A HREF="grg_73.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_73.html
===================================================================
RCS file: doc/grg/grg_73.html
diff -N doc/grg/grg_73.html
--- doc/grg/grg_73.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,65 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Reversed Equate Calling 
Mechanism</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_72.html">previous</A>, 
<A HREF="grg_74.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC73" HREF="grg_toc.html#TOC73">Reversed Equate Calling 
Mechanism</A></H4>
-
-<P>
-The <CODE>#</CODE> operator is immediately followed by the name of an equate. 
It
-results in a call to that equate. Arguments can be passed by pushing values
-on the stack before calling the function, and any results can be left on the
-stack before returning where they can subsequently be popped off. The equate 
-need not be defined before it is called.
-
-</P>
-<P>
-It is not actually necessary to use the <CODE>#</CODE> operator as any 
variable name
-will be looked up first as an equate call and if it is not an equate call then
-as a variable reference. The <CODE>#</CODE> operator is still required to flag 
an
-equate call from within a text body so it is retained for compatibility.
-
-</P>
-<P>
-Equate calls can be given arguments as comma separated items between
-brackets. Each item must leave a value on the stack. This is identical to
-just pushing arguments on the stack before calling the function, but is
-clearer, and makes the separation of each argument more obvious. It also
-has the advantage that the brackets surround effectively any equate and the
-same syntax can be used in text bodies (to pass field arguments for example).
-This can be a useful way of doing some equate processing within the text body
-itself before calling the function. Note that user defined macros will be
-expanded within a text body even if within the equate function call. A
-function can be called with no arguments like <CODE>f()</CODE> if preferred. 
The
-comma separator is not neccessary, any separator can be used (or even none).
-For example, the call <CODE>substr(1,3,"hello")</CODE> is functionally 
identical to
-<CODE>1 3 "hello" substr</CODE>, or <CODE>substr(1 3 "hello")</CODE>, or even
-<CODE>1/3"hello"#substr()</CODE> but is much nicer and will work identically 
in a
-text body. Also <CODE>%%substr(1,3,%%str)</CODE> will have the user defined 
macro
-<CODE>str</CODE> expanded before the equate is called.
-
-</P>
-<P>
-Since <CODE>%%</CODE> will be treated as a user defined macro or equate
-within a text body the field name operand cannot be used within an equate
-function call argument, for example,
-<CODE>%%substr(1,1,%%field_name)</CODE> will not work, the processor will
-interpret <CODE>%%field_name</CODE> as a user defined macro or equate. Since
-this can be a useful way to make general functions the trick is to quote the
-field name instead, ie. <CODE>%%substr(1,1,"%field_name")</CODE> will work.
-This is slightly different because the data type will end up as EQ_STR
-rather than EQ_FLD as in the previous equate, but this is usually not
-a problem.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_72.html">previous</A>, 
<A HREF="grg_74.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_74.html
===================================================================
RCS file: doc/grg/grg_74.html
diff -N doc/grg/grg_74.html
--- doc/grg/grg_74.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,41 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Reversed Equate I/O 
Operators</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_73.html">previous</A>, 
<A HREF="grg_75.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC74" HREF="grg_toc.html#TOC74">Reversed Equate I/O 
Operators</A></H4>
-
-<P>
-The <CODE>.</CODE> (or <CODE>.&#60;</CODE>) operator writes on the standard 
output the operand
-from the stack or variable designator as a string. This can be useful for
-debugging or displaying progress information.
-
-</P>
-<P>
-The <CODE><CODE>.&#62;</CODE></CODE> operator reads from the standard input 
characters up to a
-newline, returning the string entered (including the newline character).
-The maximum number of characters that can be read is STRMAX.
-
-</P>
-<P>
-The <CODE>..</CODE> operator will send output to the output file stream (as 
opposed
-to <CODE>.</CODE> which sends its output to standard output). This is useful 
for
-writing larger blocks of text generated from equates that cannot be written
-into the output file in the ordinary way (by returning the value on the stack).
-
-</P>
-<P>
-All of these operators can take a local or system variable argument.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_73.html">previous</A>, 
<A HREF="grg_75.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_75.html
===================================================================
RCS file: doc/grg/grg_75.html
diff -N doc/grg/grg_75.html
--- doc/grg/grg_75.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,43 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Reversed Equate Miscellaneous 
Operators</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_74.html">previous</A>, 
<A HREF="grg_76.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC75" HREF="grg_toc.html#TOC75">Reversed Equate Miscellaneous 
Operators</A></H4>
-
-<P>
-The <CODE>$</CODE> operator is very useful. It equates the contents of the top
-of the stack (or variable designator). So, for example, a string could be
-pushed as an argument to a function, and within that function this operator
-could be used to equate the argument. For example, here is a definition of
-<CODE>strlen</CODE> for any database field.
-
-</P>
-
-<PRE>
-%%EQUATE STRLEN $&#62;&#62;Y 0&#62;&#62;X 
[&#60;&#60;Y&#60;&#60;X'0=~~;++X&#62;&#62;X]&#60;&#60;X
-</PRE>
-
-<P>
-The function might be called with <CODE>%%NAME#STRLEN</CODE>. Note that the 
<CODE>%%</CODE>
-operator is used to put the field name on the stack. Then within the function
-the <CODE>$</CODE> operator is used to evaluate the stack argument as an equate
-expression, thus getting the contents of the field.
-
-</P>
-<P>
-The <CODE>\</CODE> is the null operator. It does nothing, but is useful for
-separating operands or for escaping a newline character.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_74.html">previous</A>, 
<A HREF="grg_76.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_76.html
===================================================================
RCS file: doc/grg/grg_76.html
diff -N doc/grg/grg_76.html
--- doc/grg/grg_76.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,79 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Reversed Equate 
Constructs</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_75.html">previous</A>, 
<A HREF="grg_77.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC76" HREF="grg_toc.html#TOC76">Reversed Equate 
Constructs</A></H4>
-
-<P>
-There are two looping constructs and a conditional construct. The basic looping
-construct has the form <CODE>[...;...]</CODE>, either side of the semicolon 
may be
-null. While the equate expression to the left of the semicolon is true do the
-equate expression to the right of the semicolon. The expression on the left
-must leave a boolean value on the stack. An example of this looping construct
-was given earlier for the definition of <CODE>strlen</CODE>. The left and right
-expressions can include anything, such as nested looping and conditional
-constructs or function calls.
-
-</P>
-<P>
-The other looping construct has the form <CODE>(...)</CODE>. The expression 
between
-the brackets is executed once for every record in the database. For example
-here is the definition of a function to return the number of records in the
-master database.
-
-</P>
-
-<PRE>
-%%EQUATE NRECS 0&#62;&#62;NRECS(++NRECS&#62;&#62;NRECS)&#60;&#60;NRECS
-</PRE>
-
-<P>
-The looping syntax can optionally include a colon suffix form. This allows
-looping through a named database (if this is the master database then any
-filtering conditions will be ignored).
-This form is <CODE>():database</CODE> where <CODE>database</CODE> is the name 
of
-a valid loaded database (without the pathname or extension). Fields from other
-databases cannot be accessed within the loop unless the <CODE>-&#62;</CODE> 
syntax is
-used, so if looping through a database other than the master database then
-this form must be used within the loop to access fields of the master database.
-Note that this applies even to nested equate calls within the loop body for
-example.
-
-</P>
-<P>
-The conditional construct has the form <CODE>?...:...;</CODE>. This can take a 
field
-name designator, in which case the behaviour is slightly different. The
-action is to pop a boolean off the stack and if it is true to execute the
-equate expression up to the colon, and if not to execute the equate expression
-from the colon up to the semicolon. Each expression can be as complex as
-required (including nested conditional and looping constructs, and function
-calls) but need not have any contents. If the <CODE>?</CODE> is immediately 
followed
-by a field name and the colon and semicolon fields are null, then if the
-contents of the field are empty the result is null, else the result is the
-contents of the field. Below are two examples  of the conditional construct.
-
-</P>
-
-<PRE>
-%%EQUATE SUBDATE1 ?SUB_DATE:"In preparation";
-%%EQUATE SUBDATE2 %SUB_DATE""=?"In preparation":%SUB_DATE;
-</PRE>
-
-<P>
-Both the above conditions have the same action. If the <CODE>%SUBDATE</CODE> 
field
-has a value push the value on the stack, else push the default string on the
-stack.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_75.html">previous</A>, 
<A HREF="grg_77.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_77.html
===================================================================
RCS file: doc/grg/grg_77.html
diff -N doc/grg/grg_77.html
--- doc/grg/grg_77.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,35 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Reversed Equate Flow 
Control</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_76.html">previous</A>, 
<A HREF="grg_78.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC77" HREF="grg_toc.html#TOC77">Reversed Equate Flow 
Control</A></H4>
-
-<P>
-The following two operators may occasionlly be needed. The <CODE>\b</CODE> 
operator
-can be simulated in other ways but is useful to have. Its function is to break
-one level back. Normally it is used within the body of a loop to break out of
-the loop on certain conditions (as an addition to the standard loop condition
-in while loops). The <CODE>\e</CODE> operator exits the entire equate 
expression all
-the way back to where it was initially called from within a text body or in a
-filter evaluation. Neither of these operators will alter the stack. For 
example,
-the fragment below searches all the records for a matching field and returns
-the record number of the record the field matched.
-
-</P>
-
-<PRE>
-%%EQUATE FIND 1&#62;&#62;N(%NAME"Smith"=?\b:++N&#62;&#62;N;)&#60;&#60;N
-</PRE>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_76.html">previous</A>, 
<A HREF="grg_78.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_78.html
===================================================================
RCS file: doc/grg/grg_78.html
diff -N doc/grg/grg_78.html
--- doc/grg/grg_78.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,30 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Reversed Equate 
Comments</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_77.html">previous</A>, 
<A HREF="grg_79.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC78" HREF="grg_toc.html#TOC78">Reversed Equate Comments</A></H4>
-
-<P>
-You can include comments anywhere in an equate expression by enclosing them
-in <CODE>{</CODE> and <CODE>}</CODE> brackets. Nested comments are allowed. A 
comment may
-extend over a line without the newline being escaped.
-
-</P>
-<P>
-This comment style is deprecated and no comments should be used within a
-reversed equate expression definition (comments can be placed before the
-definition if required using the <CODE>%%</CODE> sequence).
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_77.html">previous</A>, 
<A HREF="grg_79.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_79.html
===================================================================
RCS file: doc/grg/grg_79.html
diff -N doc/grg/grg_79.html
--- doc/grg/grg_79.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,28 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Reversed Equate 
Debugging</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_78.html">previous</A>, 
<A HREF="grg_80.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC79" HREF="grg_toc.html#TOC79">Reversed Equate 
Debugging</A></H4>
-
-<P>
-The best thing to do is to start up the stack and operator tracer. This will
-dump to standard output precisely what is happening. You can also use the
-<CODE>.</CODE> operator to print information onto standard output. You can 
turn on
-the tracer by writing <CODE>1</CODE> to the <CODE>_eq_trace</CODE> system 
variable,
-ie. <CODE>1&#62;&#62;_eq_trace</CODE>. The tracer can be turned off by
-writing <CODE>0</CODE> in the same way. Control of this variable
-allows tracing to be turned on and off at selected points during processing.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_78.html">previous</A>, 
<A HREF="grg_80.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_8.html
===================================================================
RCS file: doc/grg/grg_8.html
diff -N doc/grg/grg_8.html
--- doc/grg/grg_8.html  13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,35 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - FESCSUB</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_7.html">previous</A>, 
<A HREF="grg_9.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC8" HREF="grg_toc.html#TOC8">FESCSUB</A></H4>
-
-<P>
-<A NAME="IDX25"></A>
-<A NAME="IDX26"></A>
-The <STRONG>FESCSUB</STRONG> variable controls whether the
-percent escaping is done for real. Normally a <CODE>\%</CODE> sequence in a 
text
-body is left as it is (since <EM>LaTeX</EM> needs the percent character to be
-escaped), however if this variable is set, then the <CODE>\%</CODE> sequence 
will be
-replaced by just a <CODE>%</CODE>. The percent character has to be escaped 
because
-it conflicts with the field name identifier. The example program fragment
-below sets the <STRONG>FESCSUB</STRONG> variable. There is no way to reset it.
-
-</P>
-
-<PRE>
-%%DEFINE FESCSUB
-</PRE>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_7.html">previous</A>, 
<A HREF="grg_9.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_80.html
===================================================================
RCS file: doc/grg/grg_80.html
diff -N doc/grg/grg_80.html
--- doc/grg/grg_80.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,58 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Hard Limits</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_79.html">previous</A>, 
<A HREF="grg_81.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H2><A NAME="SEC80" HREF="grg_toc.html#TOC80">Hard Limits</A></H2>
-
-<P>
-<A NAME="IDX288"></A>
-<A NAME="IDX289"></A>
-<A NAME="IDX290"></A>
-The <CODE>grg</CODE> program internally limits the size of a number of 
buffers. These
-are listed here with their default maximum sizes. Exceeding the given sizes
-will produce a fatal error. In some cases writing the GRG file in
-a slightly different way will solve the problem, in others it will not. In
-the latter case the relevant values must be increased in the source code and
-the <CODE>grg</CODE> program recompiled. The following limits are all maximums 
and
-size is size in characters unless specified otherwise.
-
-</P>
-<P>
-A number of the static buffers in GRG have been rewritten to scale
-dynamically and hence have no fixed limit anymore. These are indicated
-by the asterix against an entry below. You can get more information by
-looking at the debug output under the operating limits section.
-
-</P>
-
-<PRE>
-Name           Size   Description (Dynamic?)
-TEXMAXTEX       4096  text body (*)
-TEXPBMAX       16384  pushback buffer (*)
-MAXMACRONAME      16  length of a macro/equate/variable name
-MAXMACRODEF      256  length of a macro definition (*)
-MAXEQUATEDEF    1024  length of a reversed equate definition (*)
-MAXMACROS         64  number of user macros (*)
-MAXEQUATES       128  number of equates (*)
-TEXSORTONMAX       4  sort depth
-TEXBANNERMAX       4  banner sort groups (*)
-TEXDBFFILEMAX      8  number of DBF files (*)
-TEXFILTERMAX       8  number of filters
-DBFFIELDMAX       16  length of a DBF field name (actually 10 stucturally)
-STRMAX           256  length of a string argument and data type
-TEXBLOCKMAX        8  number of user text bodies (*)
-REGEXPMAX        256  length of a regular expression
-</PRE>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_79.html">previous</A>, 
<A HREF="grg_81.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_81.html
===================================================================
RCS file: doc/grg/grg_81.html
diff -N doc/grg/grg_81.html
--- doc/grg/grg_81.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,39 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Text Processing</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_80.html">previous</A>, 
<A HREF="grg_82.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H2><A NAME="SEC81" HREF="grg_toc.html#TOC81">Text Processing</A></H2>
-
-<P>
-<A NAME="IDX291"></A>
-<A NAME="IDX292"></A>
-<A NAME="IDX293"></A>
-<A NAME="IDX294"></A>
-The <CODE>grg</CODE> program can parse an input file in delimited ascii format
-and load it internally as an ordinary database file. All the
-normal <CODE>grg</CODE> operations such as sorting, filtering, field 
evaluating,
-and equates can be used. This section gives an overview of how to use this
-feature.
-
-</P>
-<P>
-The simplest way is to use the built in patterns. These make <CODE>grg</CODE> 
process
-input text in the same way as <EM>awk</EM>, so that each line of input is 
treated
-as a record and each whitespace separated group on a line is treated as a field
-of the record. Like <EM>awk</EM> the field delimiter can be changed by using an
-environment variable.
-
-</P>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_80.html">previous</A>, 
<A HREF="grg_82.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_82.html
===================================================================
RCS file: doc/grg/grg_82.html
diff -N doc/grg/grg_82.html
--- doc/grg/grg_82.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,45 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Declaring Text Input 
Files</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_81.html">previous</A>, 
<A HREF="grg_83.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC82" HREF="grg_toc.html#TOC82">Declaring Text Input 
Files</A></H3>
-
-<P>
-<A NAME="IDX295"></A>
-<A NAME="IDX296"></A>
-<A NAME="IDX297"></A>
-You declare a file as text input using the predefined macro DATABASE.
-The name of the file must not have a <CODE>.dbf</CODE> extension. The special 
case
-filename which is just <CODE>-</CODE> can be used to indicate that the input 
file is
-to come from standard input (piped into <CODE>grg</CODE>). Note that file 
types can
-be mixed and matched as in the example below.
-
-</P>
-
-<PRE>
-%%DATABASE     "database.dbf"
-%%DATABASE     "mode.txt" "-"
-</PRE>
-
-<P>
-In the above the <CODE>database.dbf</CODE> file is opened as normal, but the
-<CODE>mode.txt</CODE> file and <CODE>stdin</CODE> are read in and parsed as 
<EM>awk</EM>
-structured files and
-converted into database files. The names of the database files for reference
-in equates would be <CODE>database</CODE>, <CODE>mode</CODE>, and 
<CODE>-</CODE>. Since
-<CODE>-</CODE> could clash in an equate the <CODE>-</CODE> should ideally
-be put first in the list of databases (making it master).
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_81.html">previous</A>, 
<A HREF="grg_83.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_83.html
===================================================================
RCS file: doc/grg/grg_83.html
diff -N doc/grg/grg_83.html
--- doc/grg/grg_83.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,37 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Changing the Delimiter</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_82.html">previous</A>, 
<A HREF="grg_84.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC83" HREF="grg_toc.html#TOC83">Changing the Delimiter</A></H3>
-
-<P>
-<A NAME="IDX298"></A>
-<A NAME="IDX299"></A>
-You can redefine the delimiter used to separate fields in the input by using
-the DEFINE predefined macro and setting the environment variable
-<STRONG>DELIM</STRONG>, as in the example below.
-
-</P>
-
-<PRE>
-%%DEFINE       DELIM   :
-</PRE>
-
-<P>
-The above sets the delimiter to the colon character, equivalent to doing
-<CODE>-F:</CODE> with <EM>awk</EM>. You can give more than one character to 
<STRONG>DELIM</STRONG>
-in which case any of the given characters would count as a delimiter.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_82.html">previous</A>, 
<A HREF="grg_84.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_84.html
===================================================================
RCS file: doc/grg/grg_84.html
diff -N doc/grg/grg_84.html
--- doc/grg/grg_84.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,83 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Referencing Fields</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_83.html">previous</A>, 
<A HREF="grg_85.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC84" HREF="grg_toc.html#TOC84">Referencing Fields</A></H3>
-
-<P>
-<A NAME="IDX300"></A>
-<A NAME="IDX301"></A>
-<A NAME="IDX302"></A>
-<A NAME="IDX303"></A>
-Once loaded, the text input file can be treated identically to a normal
-database file. Each field in the input record is given a numeric name so as
-they can be distinguished. These names have the form <CODE>Unnn</CODE> where 
<CODE>nnn</CODE>
-is a three digit number. For example, to reference the first three fields in
-the input you would do as in the example below.
-
-</P>
-
-<PRE>
-%%EQUATE test  "ABC"%U001=?%U002:%U003;
-%%RECORD
-%U001 %U002 %U003
-</PRE>
-
-<P>
-The example shows fields being referenced in an equate and a text body in the
-same way as fields are normally referenced. Records can also be sorted on the
-fields or filtered as normal. The system variables <CODE>_eq_totrec</CODE>
-and <CODE>_eq_currec</CODE> also get set for a text input file as
-normal. Also direct field indexing works as normal so that the contents of
-any partiulcar record (input line) can be accessed.
-
-</P>
-<P>
-Real column names can be setup by using the <STRONG>NAMCOL</STRONG> 
environment variable
-by simply defining it. Then instead of the form <CODE>Unnn</CODE> the values 
of the
-fields in the first record in the input file will be taken as the column names
-and that record will be ignored. These will always be used in uppercase and
-truncated to ten characters. Do not use non-supported field characters.
-The example below sets <STRONG>NAMCOL</STRONG> and prints fields from 
<CODE>dogs.txt</CODE> also
-shown below.
-
-</P>
-
-<PRE>
-Contents of dogs.txt:
-Name      Type      Id
-Bounce    Scottie   119
-Jack      Terrier   102
-</PRE>
-
-
-<PRE>
-%%DATABASE  "dogs.txt"
-%%DEFINE       NAMCOL
-%%RECORD
-%NAME %TYPE %ID
-</PRE>
-
-<P>
-Note that the <STRONG>NAMCOL</STRONG> directive is globally applied to all 
databases in
-the GRG file and cannot be set individually for each input file.
-
-</P>
-<P>
-To establish which field is which when not using <STRONG>NAMCOL</STRONG> and 
what the
-column names are a simple GRG file can be created that
-uses the default header and record text bodies.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_83.html">previous</A>, 
<A HREF="grg_85.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_85.html
===================================================================
RCS file: doc/grg/grg_85.html
diff -N doc/grg/grg_85.html
--- doc/grg/grg_85.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,64 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Redefining Patterns</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_84.html">previous</A>, 
<A HREF="grg_86.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC85" HREF="grg_toc.html#TOC85">Redefining Patterns</A></H3>
-
-<P>
-<A NAME="IDX304"></A>
-<A NAME="IDX305"></A>
-<A NAME="IDX306"></A>
-This is not for the faint hearted. You can skip to the next part
-(see section <A HREF="grg_95.html#SEC95">RDBMS Queries</A>).
-
-</P>
-<P>
-Sometimes the input text does not match an <EM>awk</EM> like structure. In 
this case the
-patterns defining how to process the input can be changed. This is done using
-the PATTERN predefined macro. This takes five arguments. The
-example below shows the pattern definitions to process <EM>awk</EM> like
-input (these are built in to <CODE>grg</CODE>).
-
-</P>
-
-<PRE>
-%%PATTERN      "&#60;awk&#62;&#60;nul&#62;" "&#60;nul&#62;" "" 
"&#60;awk&#62;&#60;sor&#62;" "&#60;sor&#62;"
-%%PATTERN      "&#60;awk&#62;&#60;sor&#62;" "&#60;wht&#62;" "" 
"&#60;awk&#62;&#60;sor&#62;" "&#60;nul&#62;"
-%%PATTERN      "&#60;awk&#62;&#60;sor&#62;" "&#60;nul&#62;" "" 
"&#60;awk&#62;&#60;sof&#62;" "&#60;sof&#62;"
-%%PATTERN      "&#60;awk&#62;&#60;sof&#62;" "&#60;del&#62;" "" 
"&#60;awk&#62;&#60;sor&#62;" "&#60;eof&#62;"
-%%PATTERN      "&#60;awk&#62;&#60;sof&#62;" "&#60;any&#62;" "" 
"&#60;awk&#62;&#60;sof&#62;" "&#60;fld&#62;"
-%%PATTERN      "&#60;awk&#62;&#60;sof&#62;" "&#60;nul&#62;" "" 
"&#60;awk&#62;&#60;sor&#62;" "&#60;eof&#62;"
-%%PATTERN      "&#60;awk&#62;&#60;sor&#62;" "&#60;new&#62;" "" 
"&#60;awk&#62;&#60;nul&#62;" "&#60;eor&#62;"
-</PRE>
-
-<P>
-The arguments are as follows. The first argument is the <EM>mode context</EM>.
-Each pattern can
-only apply if the current mode is the same as its <EM>mode context</EM>.
-The default
-mode is <CODE>&#60;awk&#62;&#60;nul&#62;</CODE>, and therefore in the above 
only the first pattern will
-match. The second argument is the tokens in the text that must be present for
-the pattern to match, this is discussed in more detail later. The third
-argument is
-an equate expression that will be run if the pattern matched, this can then
-also have a say in whether the pattern matches or not. The fourth argument is
-the new mode to enter if the pattern matches. The fifth argument is the token
-to return to the parser if the pattern matches. These arguments are now
-discussed in more detail. Note that the first three arguments essentially 
define
-what the pattern to match is and the last two define what steps to
-take if the pattern does match.
-
-</P>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_84.html">previous</A>, 
<A HREF="grg_86.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_86.html
===================================================================
RCS file: doc/grg/grg_86.html
diff -N doc/grg/grg_86.html
--- doc/grg/grg_86.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,35 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Tokens and Syntax</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_85.html">previous</A>, 
<A HREF="grg_87.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC86" HREF="grg_toc.html#TOC86">Tokens and Syntax</A></H4>
-
-<P>
-<A NAME="IDX307"></A>
-<A NAME="IDX308"></A>
-<A NAME="IDX309"></A>
-A token is a three character sequence enclosed in angle brackets. Any
-characters can be used and tokens are case sensitive. With the exception of
-the input text pattern and the equate expressions the other fields can
-consist only of tokens.
-
-</P>
-<P>
-The <EM>mode context</EM> argument can consist of tokens, the bar character 
<CODE>|</CODE> or the
-brackets <CODE>(</CODE> and <CODE>)</CODE>. The <EM>new mode</EM> argument can 
consist of tokens
-only. The <EM>token</EM> argument can consist of one token only. The 
<EM>input</EM>
-argument can consist of tokens, characters, and some special characters.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_85.html">previous</A>, 
<A HREF="grg_87.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_87.html
===================================================================
RCS file: doc/grg/grg_87.html
diff -N doc/grg/grg_87.html
--- doc/grg/grg_87.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,46 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Mode</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_86.html">previous</A>, 
<A HREF="grg_88.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC87" HREF="grg_toc.html#TOC87">Mode</A></H4>
-
-<P>
-<A NAME="IDX310"></A>
-Only those patterns which match the current mode can match, the others are
-ignored. A mode is a sequence of one or more tokens, the names of the tokens
-or sequences can be user defined. The initial mode is 
<CODE>&#60;awk&#62;&#60;nul&#62;</CODE> but
-this can be changed using the environment variable <CODE>DFAMODE</CODE>. If 
you are
-defining additional patterns it is advisable to set this to exclude the awk
-inbuilt patterns from matching as in the example below.
-
-</P>
-
-<PRE>
-%%DEFINE DFAMODE               &#60;usr&#62;&#60;nul&#62;
-%%PATTERN "&#60;usr&#62;&#60;nul&#62;"
-%%PATTERN "&#60;usr&#62;&#60;u00&#62;|&#60;usr&#62;&#60;u01&#62;"
-</PRE>
-
-<P>
-Note that in the above the bar operator separates options, so the second
-pattern is actually applicable in two modes. Since the bar operator has a
-lower precedence than the concatenation operator then the two modes are
-<CODE>&#60;usr&#62;&#60;u00&#62;</CODE> or 
<CODE>&#60;usr&#62;&#60;u01&#62;</CODE>. Brackets can be used if neccessary to
-avoid ambiguities in the input. Note that instead of the bar two patterns
-could have been defined which were identical in the other fields but one was
-defined for each mode it was to match under. The final result of using a
-bar or multiple patterns is identical.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_86.html">previous</A>, 
<A HREF="grg_88.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_88.html
===================================================================
RCS file: doc/grg/grg_88.html
diff -N doc/grg/grg_88.html
--- doc/grg/grg_88.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,142 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Input Pattern</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_87.html">previous</A>, 
<A HREF="grg_89.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC88" HREF="grg_toc.html#TOC88">Input Pattern</A></H4>
-
-<P>
-<A NAME="IDX311"></A>
-<A NAME="IDX312"></A>
-<A NAME="IDX313"></A>
-<A NAME="IDX314"></A>
-For each pattern that matches the current mode the input pattern must match
-the input stream of characters for the whole pattern to match. The input
-pattern can consist of tokens or characters, however certain characters must
-be escaped and the tokens cannot be user defined. Each token generally
-represents a set of characters and is for convenience sake. The characters
-that must be escaped using a <CODE>\c</CODE> mechanism (or the special tokens) 
are
-left and right brackets, the bar character, and the star character. The first
-two are used to resolved ambiguities in priorities of operators, the bar is
-used to separate options, and the star is used to indicate zero or more
-occurences of a sequence. Note that the bar and star
-operators are not supported, although the bar operator can be simulated by
-defining multiple patterns, one for each option, like the modes. Some example
-input patterns are shown below.
-
-</P>
-
-<PRE>
-"&#60;dec&#62;&#60;dec&#62;"
-"f1&#60;new&#62;"
-</PRE>
-
-<P>
-The first pattern matches a sequence of characters that are two decimal digits,
-the second a sequence which is <CODE>f1</CODE> followed by a newline. The 
complete
-set of predefined tokens is given below:
-
-</P>
-<DL COMPACT>
-
-<DT><CODE>Token</CODE>
-<DD>
-Character Set
-<DT><CODE>&#60;nul&#62;</CODE>
-<DD>
-NUL Special Character
-<DT><CODE>&#60;sot&#62;</CODE>
-<DD>
-Start of Text (before first input character), not implemented
-<DT><CODE>&#60;eot&#62;</CODE>
-<DD>
-End of Text (after last input character), not implemented
-<DT><CODE>&#60;sol&#62;</CODE>
-<DD>
-Start of Line (before first input character of line), not implemented
-<DT><CODE>&#60;eol&#62;</CODE>
-<DD>
-End of Line (after last input character of line), not implemented
-<DT><CODE>&#60;spc&#62;</CODE>
-<DD>
-" "
-<DT><CODE>&#60;tab&#62;</CODE>
-<DD>
-"<CODE>\t</CODE>"
-<DT><CODE>&#60;wht&#62;</CODE>
-<DD>
-"<CODE> \t</CODE>"
-<DT><CODE>&#60;new&#62;</CODE>
-<DD>
-"<CODE>\n</CODE>"
-<DT><CODE>&#60;car&#62;</CODE>
-<DD>
-"<CODE>\r</CODE>"
-<DT><CODE>&#60;del&#62;</CODE>
-<DD>
-"<CODE> \t</CODE>"
-<DT><CODE>&#60;abc&#62;</CODE>
-<DD>
-"abcdefghijklmnopqrstuvwxyz"
-<DT><CODE>&#60;ABC&#62;</CODE>
-<DD>
-"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
-<DT><CODE>&#60;dec&#62;</CODE>
-<DD>
-"0123456789"
-<DT><CODE>&#60;hex&#62;</CODE>
-<DD>
-"0123456789abcdef"
-<DT><CODE>&#60;HEX&#62;</CODE>
-<DD>
-"0123456789ABCDEF"
-<DT><CODE>&#60;sym&#62;</CODE>
-<DD>
-"<CODE>!\"#$%&#38;'</CODE><CODE>()*+,-./:;&#60;=&#62;address@hidden|}~</CODE>"
-<DT><CODE>&#60;any&#62;</CODE>
-<DD>
-"<CODE>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789</CODE><CODE>!\"#$%&#38;'</CODE><CODE>()*+,-./:;&#60;=&#62;address@hidden|}~
 \t</CODE>"
-<DT><CODE>&#60;all&#62;</CODE>
-<DD>
-"<CODE>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789</CODE><CODE>!\"#$%&#38;'</CODE><CODE>()*+,-./:;&#60;=&#62;address@hidden|}~
 \t\n\r</CODE>"
-<DT><CODE>&#60;bar&#62;</CODE>
-<DD>
-"<CODE>|</CODE>"
-<DT><CODE>&#60;not&#62;</CODE>
-<DD>
-"<CODE>!</CODE>"
-<DT><CODE>&#60;mul&#62;</CODE>
-<DD>
-"<CODE>*</CODE>"
-<DT><CODE>&#60;lbr&#62;</CODE>
-<DD>
-"<CODE>(</CODE>"
-<DT><CODE>&#60;rbr&#62;</CODE>
-<DD>
-"<CODE>)</CODE>"
-</DL>
-
-<P>
-The <CODE>&#60;nul&#62;</CODE> token is special because it effectively matches 
any character,
-but when it does the matching character is left on the input stream. So for
-example the patterns <CODE>&#60;nul&#62;A</CODE> and <CODE>A</CODE> both match 
<CODE>A</CODE> on the
-input stream. The <CODE>&#60;nul&#62;</CODE> pattern has a lower matching 
priority though as
-a more specific match is preferred over a more general one. If more than one
-input pattern matches the input stream, the longer match is preferred. For
-example if the input stream had <CODE>ABC</CODE> then the patterns 
<CODE>A</CODE>, <CODE>AB</CODE>,
-and <CODE>ABC</CODE> could all match, but the last would be chosen. If two 
patterns
-match and are the same length then the earlier one (in the order the patterns
-were defined) is chosen.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_87.html">previous</A>, 
<A HREF="grg_89.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_89.html
===================================================================
RCS file: doc/grg/grg_89.html
diff -N doc/grg/grg_89.html
--- doc/grg/grg_89.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,52 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Equates</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_88.html">previous</A>, 
<A HREF="grg_90.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC89" HREF="grg_toc.html#TOC89">Equates</A></H4>
-
-<P>
-<A NAME="IDX315"></A>
-<A NAME="IDX316"></A>
-For each pattern that matched the given reversed equate expression is 
executed. If there
-is none then the pattern matches by default. If the equate expression leaves
-no value on the stack then it is assumed to be true, however if it does leave
-a value on the stack then the value is interpreted as a boolean type, only if
-it is true does the pattern match. This facility allows more complex work to
-be done to further control the patterns that match. Some additional system
-variables can be used within the equate. These are <CODE>_eq_pat</CODE>, which 
has
-the sequence of characters the pattern matched. The following variables,
-<CODE>_eq_pfn</CODE>, <CODE>_eq_pfl</CODE>, and <CODE>_eq_pft</CODE> can be 
used to set the name,
-length, and type of the field respectively. By default each field is named
-numerically, with a length equal to the length of the longest value of the
-field in the input and with a string type. However, for a pattern that matches
-a field (ie. returns the <CODE>&#60;sof&#62;</CODE>) token then these can be 
used to set these
-attributes explicitly, as in the example below.
-
-</P>
-
-<PRE>
-"\"field1\"&#62;&#62;_eq_pfn 32&#62;&#62;_eq_pfl 78&#62;&#62;_eq_pft"
-"&#60;&#60;_eq_pat\"abc\"="
-</PRE>
-
-<P>
-Note that for the type the ascii character value of <CODE>C</CODE>, 
<CODE>N</CODE>, <CODE>D</CODE>,
-or <CODE>B</CODE> must be used to indicate the string, numeric, date, or 
logical
-types for a field. The field will be created with the values given, so that
-for example if an input sequence exceeds the field length then it will be
-truncated. The second equate shows a boolean value being returned so that the
-pattern will only match if it matches the sequence <CODE>abc</CODE>.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_88.html">previous</A>, 
<A HREF="grg_90.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_9.html
===================================================================
RCS file: doc/grg/grg_9.html
diff -N doc/grg/grg_9.html
--- doc/grg/grg_9.html  13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,32 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - TEXEXT</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_8.html">previous</A>, 
<A HREF="grg_10.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC9" HREF="grg_toc.html#TOC9">TEXEXT</A></H4>
-
-<P>
-<A NAME="IDX27"></A>
-<A NAME="IDX28"></A>
-The <STRONG>TEXEXT</STRONG> variable holds
-the file extension of the output filename (that which replaces the 
<CODE>.grg</CODE>
-part). Normally a <CODE>.tex</CODE> extension is used (for LaTeX). The example 
program
-fragment below sets the value to <CODE>.html</CODE>.
-
-</P>
-
-<PRE>
-%%DEFINE TEXEXT .html
-</PRE>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_8.html">previous</A>, 
<A HREF="grg_10.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_90.html
===================================================================
RCS file: doc/grg/grg_90.html
diff -N doc/grg/grg_90.html
--- doc/grg/grg_90.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,26 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - New Mode</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_89.html">previous</A>, 
<A HREF="grg_91.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC90" HREF="grg_toc.html#TOC90">New Mode</A></H4>
-
-<P>
-<A NAME="IDX317"></A>
-<A NAME="IDX318"></A>
-Two things happen on a matching pattern, the first of these is that a new
-mode is set. This field must always have a value but it could set the mode
-to be the same as the current mode if no change is neccessary.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_89.html">previous</A>, 
<A HREF="grg_91.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_91.html
===================================================================
RCS file: doc/grg/grg_91.html
diff -N doc/grg/grg_91.html
--- doc/grg/grg_91.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,60 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Token</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_90.html">previous</A>, 
<A HREF="grg_92.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC91" HREF="grg_toc.html#TOC91">Token</A></H4>
-
-<P>
-<A NAME="IDX319"></A>
-<A NAME="IDX320"></A>
-<A NAME="IDX321"></A>
-Any set of patterns defining an input stream must eventually result in the
-correct sequence of parse tokens. These represent when a field starts and
-ends, when a record starts and ends, and the contents of fields. This
-allows the parse engine to build the database file correctly. The sequence of
-these tokens must be returned as zero or more start of record followed by
-zero or more start of field, field contents, end of field tokens, followed
-by end of record tokens. The only valid parse tokens that can be used are
-given in the table below.
-
-</P>
-<DL COMPACT>
-
-<DT><CODE>Token</CODE>
-<DD>
-Description
-<DT><CODE>&#60;nul&#62;</CODE>
-<DD>
-Do nothing with the input
-<DT><CODE>&#60;sor&#62;</CODE>
-<DD>
-Flag start of a record
-<DT><CODE>&#60;sof&#62;</CODE>
-<DD>
-Flag start of a field
-<DT><CODE>&#60;fld&#62;</CODE>
-<DD>
-Contents of a field (can be returned multiple times)
-<DT><CODE>&#60;eof&#62;</CODE>
-<DD>
-Flag end of a field
-<DT><CODE>&#60;eor&#62;</CODE>
-<DD>
-Flag end of a record
-<DT><CODE>&#60;err&#62;</CODE>
-<DD>
-Generate an error
-</DL>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_90.html">previous</A>, 
<A HREF="grg_92.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_92.html
===================================================================
RCS file: doc/grg/grg_92.html
diff -N doc/grg/grg_92.html
--- doc/grg/grg_92.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,67 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - AWK Patterns</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_91.html">previous</A>, 
<A HREF="grg_93.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC92" HREF="grg_toc.html#TOC92">AWK Patterns</A></H4>
-
-<P>
-<A NAME="IDX322"></A>
-<A NAME="IDX323"></A>
-In this section the built in awk patterns are dissected one by one so as how
-they work can be shown.
-
-</P>
-
-<PRE>
-%%PATTERN  "&#60;awk&#62;&#60;nul&#62;" "&#60;nul&#62;" "" 
"&#60;awk&#62;&#60;sor&#62;" "&#60;sor&#62;"
-%%PATTERN  "&#60;awk&#62;&#60;sor&#62;" "&#60;wht&#62;" "" 
"&#60;awk&#62;&#60;sor&#62;" "&#60;nul&#62;"
-%%PATTERN  "&#60;awk&#62;&#60;sor&#62;" "&#60;nul&#62;" "" 
"&#60;awk&#62;&#60;sof&#62;" "&#60;sof&#62;"
-%%PATTERN  "&#60;awk&#62;&#60;sof&#62;" "&#60;del&#62;" "" 
"&#60;awk&#62;&#60;sor&#62;" "&#60;eof&#62;"
-%%PATTERN  "&#60;awk&#62;&#60;sof&#62;" "&#60;any&#62;" "" 
"&#60;awk&#62;&#60;sof&#62;" "&#60;fld&#62;"
-%%PATTERN  "&#60;awk&#62;&#60;sof&#62;" "&#60;nul&#62;" "" 
"&#60;awk&#62;&#60;sor&#62;" "&#60;eof&#62;"
-%%PATTERN  "&#60;awk&#62;&#60;sor&#62;" "&#60;new&#62;" "" 
"&#60;awk&#62;&#60;nul&#62;" "&#60;eor&#62;"
-</PRE>
-
-<P>
-The first which matches on the default initial mode matches any character on
-the input stream (but leaves the input stream as it is) jumps to the start
-of record mode, returning the start of record token in the process. In the
-start of record mode there are three possible matching patterns. They match
-on whitespace, the nul character and on the newline character. Whitespace is
-ignored (so that multiple spaces and tabs in the input are not interpreted
-as multiple fields), whereas the <CODE>&#60;nul&#62;</CODE> flags the start of 
a field and sets
-the mode to start of field mode. Since the <CODE>&#60;nul&#62;</CODE> is 
defined after the pattern
-for whitespace it will only match when the input is not whitespace. The
-newline character (which should actually also be defined above the 
<CODE>&#60;nul&#62;</CODE>
-pattern) sets the mode back to the initial mode and flags the end of the
-record. The remaining patterns only match in start of field mode. The three
-possible matching characters are the delimiter (normally whitespace), any
-other character except newline, and the nul character again. The order these
-are declared in is important. A character which is a delimiter character will
-always match first and sets the mode back to start of record mode (in
-prepartion for another field or end of record) and flags the end of field).
-Otherwise the character will match the next pattern (except if newline) and
-this leaves the mode the same but flags that the character is to be appended
-to the field definition. Finally on a newline the <CODE>&#60;nul&#62;</CODE> 
character matches and
-flags the end of the field and puts the mode back to start of record mode.
-Note that just matching a newline here (rather than null) wouldn't work as the
-newline signals the end of the record but would be taken off to flag the end
-of the field and end of record would not then be flagged. So using the 
<CODE>&#60;nul&#62;</CODE>
-matches the newline to return end of field but leaves the newline on the input
-stream so that in the start of record mode it can be matched by the last
-pattern definition to indicate the end of the record. This is neccessary since
-usually the last field does not have a delimiter after it.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_91.html">previous</A>, 
<A HREF="grg_93.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_93.html
===================================================================
RCS file: doc/grg/grg_93.html
diff -N doc/grg/grg_93.html
--- doc/grg/grg_93.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,31 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Pattern Debugging</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_92.html">previous</A>, 
<A HREF="grg_94.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC93" HREF="grg_toc.html#TOC93">Pattern Debugging</A></H4>
-
-<P>
-<A NAME="IDX324"></A>
-<A NAME="IDX325"></A>
-When a set of patterns is not working the parser will either produce the wrong
-output, loop indefinitely, or crash. You can turn on debugging with the
-<CODE>-d1</CODE> and <CODE>-d2</CODE> flags to see what the DFA (Determinate 
Finite Automata,
-which isn't quite true)
-representation of your input patterns is. The <CODE>-d1</CODE> option shows the
-various arrays defining the DFA, and the <CODE>-d2</CODE> options shows a 
trace of
-the build of the main state arrays. It is beyond the scope of this
-document to describe the contents and structure of these arrays.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_92.html">previous</A>, 
<A HREF="grg_94.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_94.html
===================================================================
RCS file: doc/grg/grg_94.html
diff -N doc/grg/grg_94.html
--- doc/grg/grg_94.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,43 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Limits</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_93.html">previous</A>, 
<A HREF="grg_95.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H4><A NAME="SEC94" HREF="grg_toc.html#TOC94">Limits</A></H4>
-
-<P>
-<A NAME="IDX326"></A>
-<A NAME="IDX327"></A>
-There are no limits on the dynamic database that aren't part of the limits of
-an ordinary database file. The DFA constructor and pattern parser although
-essentially dynamic do have a number of internal limits. Some of these are
-displayed in debug output but not all of them. Generally if they are exceeded
-an error will be produced.
-
-</P>
-
-<PRE>
-Name            Size  Description
-TEXPATTERNMAX     64  maximum number of pattern defintions
-DYNRECINI         16  dynamic record initialiser/step
-DYNFLDINI         16  dynamic field initialiser/step
-TEXMAXUNQCHARS    32  number of unique characters/position
-TEXMAXUNQMODES    32  number of unique modes
-TEXMAXUNQPOSTS    16  number of unique positions
-TEXTEXTPATMAX     64  input pattern maximum length (characters)
-TEXMODEPATMAX     64  mode pattern maximum length (characters)
-TEXMAXCHARSET    128  input pattern character set size
-TEXDFAMAXSTATES   16  maximum number of unique states/postition
-</PRE>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_93.html">previous</A>, 
<A HREF="grg_95.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_95.html
===================================================================
RCS file: doc/grg/grg_95.html
diff -N doc/grg/grg_95.html
--- doc/grg/grg_95.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,40 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - RDBMS Queries</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_94.html">previous</A>, 
<A HREF="grg_96.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H2><A NAME="SEC95" HREF="grg_toc.html#TOC95">RDBMS Queries</A></H2>
-
-<P>
-<A NAME="IDX328"></A>
-<A NAME="IDX329"></A>
-<A NAME="IDX330"></A>
-<A NAME="IDX331"></A>
-<A NAME="IDX332"></A>
-The <CODE>grg</CODE> program can make an SQL query to
-an <EM>Ingres</EM> or <EM>GNU SQL Server</EM> RDBMS and load the
-results internally as a database file. Subsequent
-to this it can be treated exactly as if it was a database file initially, all
-the normal operations such as sorting, filtering, field evaluatiing, and
-equate processing may be used. The section gives an overview of how to use
-this feature. This feature will only work if support was added for it when the
-program was compiled.
-
-</P>
-<P>
-You must generally run <STRONG>grg</STRONG> on the database server for the 
query to work
-unless you have some form of networked service in operation.
-
-</P>
-
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_94.html">previous</A>, 
<A HREF="grg_96.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_96.html
===================================================================
RCS file: doc/grg/grg_96.html
diff -N doc/grg/grg_96.html
--- doc/grg/grg_96.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,62 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Declaring SQL Input 
Files</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_95.html">previous</A>, 
<A HREF="grg_97.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC96" HREF="grg_toc.html#TOC96">Declaring SQL Input 
Files</A></H3>
-
-<P>
-<A NAME="IDX333"></A>
-<A NAME="IDX334"></A>
-<A NAME="IDX335"></A>
-You declare a file as an SQL query using the predefined macro
-DATABASE. The name of the file must have a <CODE>.sql</CODE> extension.
-This is shown in the example below which loads two files as SQL queries.
-
-</P>
-
-<PRE>
-%%DATABASE     "cat.sql" "dog.sql"
-</PRE>
-
-<P>
-In the above the <CODE>cat.sql</CODE> file and <CODE>dog.sql</CODE> files are 
treated as SQL
-queries (they do not need to exist as files). In the former this would be 
<CODE>select * from cat</CODE> and in the latter
-this would be <CODE>select * from dog</CODE>. The names of the database files 
for
-reference in equates would be <CODE>cat</CODE> and <CODE>dog</CODE>. In this 
example<CODE> 
-cat</CODE> would be the master database file since it was loaded first.
-
-</P>
-<P>
-It is possible to use any SQL <CODE>select</CODE> statement if the default is 
not suitable
-since the DATABASE predefined macro allows a text body extension to
-define the SQL <CODE>select</CODE> statement for this type only. The example 
below shows how
-this would be done.
-
-</P>
-
-<PRE>
-%%DATABASE  "cat.sql"
-%%DATABASE  "dog.sql"
-select name, type from dog order by name
-</PRE>
-
-<P>
-In the above the <CODE>cat.sql</CODE> file is interpreted as in the previous 
example
-but the <CODE>dog.sql</CODE> file has a customised SQL <CODE>select</CODE> 
statement defining what
-that database file should contain. The SQL <CODE>select</CODE> statement can 
be of any
-complexity up to the ordinary size limits of a text body, but there can be only
-one (unless formed from a <CODE>union</CODE>) and no other SQL statement can 
be used.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_95.html">previous</A>, 
<A HREF="grg_97.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_97.html
===================================================================
RCS file: doc/grg/grg_97.html
diff -N doc/grg/grg_97.html
--- doc/grg/grg_97.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,43 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Physical Database</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_96.html">previous</A>, 
<A HREF="grg_98.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC97" HREF="grg_toc.html#TOC97">Physical Database</A></H3>
-
-<P>
-<A NAME="IDX336"></A>
-<A NAME="IDX337"></A>
-For any RDBMS SQL Query to work a physical database must be defined to which
-the SQL query is directed. Only one physical database can be defined for all
-the queries in the GRG file. The physical database is defined as shown in
-the example below.
-
-</P>
-
-<PRE>
-%%DEFINE       PHYSDB animals
-</PRE>
-
-<P>
-Remember that there is no default physical database. Without defining this the
-loading of SQL Query database files will fail.
-
-</P>
-<P>
-A physical database is only required for the <EM>Ingres</EM> RDBMS since this 
has
-multiple ones. If you are using the <EM>GNU SQL Server</EM> you do not need to 
use
-this option.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_96.html">previous</A>, 
<A HREF="grg_98.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_98.html
===================================================================
RCS file: doc/grg/grg_98.html
diff -N doc/grg/grg_98.html
--- doc/grg/grg_98.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,70 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Referencing Columns</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_97.html">previous</A>, 
<A HREF="grg_99.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC98" HREF="grg_toc.html#TOC98">Referencing Columns</A></H3>
-
-<P>
-<A NAME="IDX338"></A>
-<A NAME="IDX339"></A>
-<A NAME="IDX340"></A>
-Once loaded, the SQL Query input file can be treated identically to a normal
-database file. Each field in the input record is given a numeric name so as
-they can be distinguished. These names have the form <CODE>Unnn</CODE> where 
<CODE>nnn</CODE>
-is a three digit number. For example, to reference the first three columns in
-the SQL Query you would do as in the example below.
-
-</P>
-
-<PRE>
-%%RECORD
-%U001 %U002 %U003
-</PRE>
-
-<P>
-The real column names from the SQL query can be used instead
-by setting the <STRONG>NAMCOL</STRONG> environment variable by simply defining 
it. Then
-instead of the form <CODE>Unnn</CODE> the real column names will be used, 
converted
-to uppercase and truncated to 10 characters. Any non-supported field character
-may cause problems. Any columns that do not cleanly map can be renamed using
-the SQL <CODE>select x as y</CODE> syntax if neccessary (this can be often 
since the
-column naming conventions for <EM>Ingres</EM> are quite flexible).
-The example below sets <STRONG>NAMCOL</STRONG>
-and prints fields from <CODE>dog.sql</CODE> as used in an earlier example.
-
-</P>
-
-<PRE>
-%%DEFINE       PHYSDB animals
-%%DEFINE       NAMCOL
-%%DATABASE  "dog.sql"
-select name, type, id# as id from dog order by name
-%%RECORD
-%NAME %TYPE %ID
-</PRE>
-
-<P>
-Note that like <STRONG>PHYSDB</STRONG> the <STRONG>NAMCOL</STRONG> directive 
is globally applied to
-all queries in the GRG file and cannot be set on a per-query basis.
-Note that setting NAMCOL will also affect the behaviour of any delimited text
-file databases in the same GRG file.
-
-</P>
-<P>
-To establish which field is which when not using <STRONG>NAMCOL</STRONG> and 
what the
-column names have been mapped to a simple GRG file can be created that
-uses the default header and record text bodies.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_97.html">previous</A>, 
<A HREF="grg_99.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_99.html
===================================================================
RCS file: doc/grg/grg_99.html
diff -N doc/grg/grg_99.html
--- doc/grg/grg_99.html 13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,43 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - NULL Value Handling</TITLE>
-</HEAD>
-<BODY>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_98.html">previous</A>, 
<A HREF="grg_100.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-<P><HR><P>
-
-
-<H3><A NAME="SEC99" HREF="grg_toc.html#TOC99">NULL Value Handling</A></H3>
-
-<P>
-<A NAME="IDX341"></A>
-<A NAME="IDX342"></A>
-By default any column value in the query that is <CODE>null</CODE> will just be
-created in the database file as an empty string value. For some applications
-it may be neccessary to distinguish the <CODE>null</CODE> value from empty 
strings.
-You can redefine the value used for a <CODE>null</CODE> by using the
-DEFINE predefined macro and setting the environment variable
-<STRONG>NULL</STRONG>, as in the example below.
-
-</P>
-
-<PRE>
-%%DEFINE       NULL -
-</PRE>
-
-<P>
-The above sets the value to use for a <CODE>null</CODE> to the dash character.
-
-</P>
-<P>
-Note that like <STRONG>NAMCOL</STRONG> the <STRONG>NULL</STRONG> directive is 
globally applied to
-all queries in the GRG file and cannot be set on a per-query basis.
-
-</P>
-<P><HR><P>
-Go to the <A HREF="grg_1.html">first</A>, <A HREF="grg_98.html">previous</A>, 
<A HREF="grg_100.html">next</A>, <A HREF="grg_108.html">last</A> section, <A 
HREF="grg_toc.html">table of contents</A>.
-</BODY>
-</HTML>

Index: doc/grg/grg_toc.html
===================================================================
RCS file: doc/grg/grg_toc.html
diff -N doc/grg/grg_toc.html
--- doc/grg/grg_toc.html        13 Feb 2001 01:01:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,156 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from ../grg.texi on 15 December 1997 -->
-
-<TITLE>GRG - GNU Report Generator User Manual - Table of Contents</TITLE>
-</HEAD>
-<BODY>
-<H1>GRG - GNU Report Generator</H1>
-<H2>User Manual</H2>
-<H2>Version 1.43 as at 15th December, 1997.</H2>
-<ADDRESS>Tim E. Colles</ADDRESS>
-<P>
-<P><HR><P>
-<UL>
-<UL>
-<LI><A NAME="TOC1" HREF="grg_1.html#SEC1">Introduction</A>
-<LI><A NAME="TOC2" HREF="grg_2.html#SEC2">Running GRG</A>
-<LI><A NAME="TOC3" HREF="grg_3.html#SEC3">GRG File Format</A>
-<UL>
-<LI><A NAME="TOC4" HREF="grg_4.html#SEC4">Structure</A>
-<LI><A NAME="TOC5" HREF="grg_5.html#SEC5">Processing Sequence</A>
-<LI><A NAME="TOC6" HREF="grg_6.html#SEC6">Environment Variables</A>
-<UL>
-<LI><A NAME="TOC7" HREF="grg_7.html#SEC7">NPAGE</A>
-<LI><A NAME="TOC8" HREF="grg_8.html#SEC8">FESCSUB</A>
-<LI><A NAME="TOC9" HREF="grg_9.html#SEC9">TEXEXT</A>
-<LI><A NAME="TOC10" HREF="grg_10.html#SEC10">DELIM</A>
-<LI><A NAME="TOC11" HREF="grg_11.html#SEC11">DFAMODE</A>
-<LI><A NAME="TOC12" HREF="grg_12.html#SEC12">CONCAT</A>
-<LI><A NAME="TOC13" HREF="grg_13.html#SEC13">PHYSDB</A>
-<LI><A NAME="TOC14" HREF="grg_14.html#SEC14">NAMCOL</A>
-<LI><A NAME="TOC15" HREF="grg_15.html#SEC15">NULL</A>
-<LI><A NAME="TOC16" HREF="grg_16.html#SEC16">PAGE1 and PAGEN</A>
-</UL>
-<LI><A NAME="TOC17" HREF="grg_17.html#SEC17">Predefined Macros</A>
-<UL>
-<LI><A NAME="TOC18" HREF="grg_18.html#SEC18">INCLUDE</A>
-<LI><A NAME="TOC19" HREF="grg_19.html#SEC19">DEFINE</A>
-<LI><A NAME="TOC20" HREF="grg_20.html#SEC20">DATABASE</A>
-<LI><A NAME="TOC21" HREF="grg_21.html#SEC21">SORTON</A>
-<LI><A NAME="TOC22" HREF="grg_22.html#SEC22">REVSORT</A>
-<LI><A NAME="TOC23" HREF="grg_23.html#SEC23">FILTER</A>
-<LI><A NAME="TOC24" HREF="grg_24.html#SEC24">EQUATE</A>
-<LI><A NAME="TOC25" HREF="grg_25.html#SEC25">EQGUILE</A>
-<LI><A NAME="TOC26" HREF="grg_26.html#SEC26">HEADER</A>
-<LI><A NAME="TOC27" HREF="grg_27.html#SEC27">FOOTER</A>
-<LI><A NAME="TOC28" HREF="grg_28.html#SEC28">BANNER</A>
-<LI><A NAME="TOC29" HREF="grg_29.html#SEC29">PAGE01</A>
-<LI><A NAME="TOC30" HREF="grg_30.html#SEC30">PAGENN</A>
-<LI><A NAME="TOC31" HREF="grg_31.html#SEC31">RECORD</A>
-<LI><A NAME="TOC32" HREF="grg_32.html#SEC32">BLOCK</A>
-<LI><A NAME="TOC33" HREF="grg_33.html#SEC33">PATTERN</A>
-<LI><A NAME="TOC34" HREF="grg_34.html#SEC34">END</A>
-</UL>
-</UL>
-<LI><A NAME="TOC35" HREF="grg_35.html#SEC35">Equate Expressions</A>
-<UL>
-<LI><A NAME="TOC36" HREF="grg_36.html#SEC36">Predefined Equates</A>
-<LI><A NAME="TOC37" HREF="grg_37.html#SEC37">Predefined System Variables</A>
-<LI><A NAME="TOC38" HREF="grg_38.html#SEC38">Keywords</A>
-<LI><A NAME="TOC39" HREF="grg_39.html#SEC39">Defining</A>
-<LI><A NAME="TOC40" HREF="grg_40.html#SEC40">Data Types</A>
-<LI><A NAME="TOC41" HREF="grg_41.html#SEC41">Variables</A>
-<UL>
-<LI><A NAME="TOC42" HREF="grg_42.html#SEC42">Local Variables</A>
-<LI><A NAME="TOC43" HREF="grg_43.html#SEC43">Global Variables</A>
-</UL>
-<LI><A NAME="TOC44" HREF="grg_44.html#SEC44">Variable Assignment</A>
-<LI><A NAME="TOC45" HREF="grg_45.html#SEC45">Field Reference</A>
-<LI><A NAME="TOC46" HREF="grg_46.html#SEC46">Constructs</A>
-<LI><A NAME="TOC47" HREF="grg_47.html#SEC47">Flow Control</A>
-<LI><A NAME="TOC48" HREF="grg_48.html#SEC48">Calling Other Equates</A>
-<LI><A NAME="TOC49" HREF="grg_49.html#SEC49">Numeric Operators</A>
-<LI><A NAME="TOC50" HREF="grg_50.html#SEC50">Comparison Operators</A>
-<LI><A NAME="TOC51" HREF="grg_51.html#SEC51">Boolean Operators</A>
-<LI><A NAME="TOC52" HREF="grg_52.html#SEC52">String Operators</A>
-<LI><A NAME="TOC53" HREF="grg_53.html#SEC53">I/O Operators</A>
-<LI><A NAME="TOC54" HREF="grg_54.html#SEC54">Miscellaneous Operators</A>
-<LI><A NAME="TOC55" HREF="grg_55.html#SEC55">Operator Precedence</A>
-<LI><A NAME="TOC56" HREF="grg_56.html#SEC56">Comments</A>
-<LI><A NAME="TOC57" HREF="grg_57.html#SEC57">Debugging</A>
-</UL>
-<LI><A NAME="TOC58" HREF="grg_58.html#SEC58">Reversed Equate Expressions</A>
-<UL>
-<LI><A NAME="TOC59" HREF="grg_59.html#SEC59">Defining Reversed Equates</A>
-<LI><A NAME="TOC60" HREF="grg_60.html#SEC60">The Stack</A>
-<LI><A NAME="TOC61" HREF="grg_61.html#SEC61">Reversed Equate Data Types</A>
-<LI><A NAME="TOC62" HREF="grg_62.html#SEC62">Reversed Equate Variables</A>
-<UL>
-<LI><A NAME="TOC63" HREF="grg_63.html#SEC63">Reversed Equate Local 
Variables</A>
-<LI><A NAME="TOC64" HREF="grg_64.html#SEC64">Reversed Equate Global 
Variables</A>
-</UL>
-<LI><A NAME="TOC65" HREF="grg_65.html#SEC65">Reversed Equate Operators</A>
-<UL>
-<LI><A NAME="TOC66" HREF="grg_66.html#SEC66">Reversed Equate Variable 
Operators</A>
-<LI><A NAME="TOC67" HREF="grg_67.html#SEC67">Reversed Equate Numeric 
Operators</A>
-<LI><A NAME="TOC68" HREF="grg_68.html#SEC68">Reversed Equate Comparison 
Operators</A>
-<LI><A NAME="TOC69" HREF="grg_69.html#SEC69">Reversed Equate Boolean 
Operators</A>
-<LI><A NAME="TOC70" HREF="grg_70.html#SEC70">Reversed Equate String 
Operators</A>
-<LI><A NAME="TOC71" HREF="grg_71.html#SEC71">Reversed Equate Stack 
Operators</A>
-<LI><A NAME="TOC72" HREF="grg_72.html#SEC72">Reversed Equate Field 
Operators</A>
-<LI><A NAME="TOC73" HREF="grg_73.html#SEC73">Reversed Equate Calling 
Mechanism</A>
-<LI><A NAME="TOC74" HREF="grg_74.html#SEC74">Reversed Equate I/O Operators</A>
-<LI><A NAME="TOC75" HREF="grg_75.html#SEC75">Reversed Equate Miscellaneous 
Operators</A>
-<LI><A NAME="TOC76" HREF="grg_76.html#SEC76">Reversed Equate Constructs</A>
-<LI><A NAME="TOC77" HREF="grg_77.html#SEC77">Reversed Equate Flow Control</A>
-<LI><A NAME="TOC78" HREF="grg_78.html#SEC78">Reversed Equate Comments</A>
-<LI><A NAME="TOC79" HREF="grg_79.html#SEC79">Reversed Equate Debugging</A>
-</UL>
-</UL>
-<LI><A NAME="TOC80" HREF="grg_80.html#SEC80">Hard Limits</A>
-<LI><A NAME="TOC81" HREF="grg_81.html#SEC81">Text Processing</A>
-<UL>
-<LI><A NAME="TOC82" HREF="grg_82.html#SEC82">Declaring Text Input Files</A>
-<LI><A NAME="TOC83" HREF="grg_83.html#SEC83">Changing the Delimiter</A>
-<LI><A NAME="TOC84" HREF="grg_84.html#SEC84">Referencing Fields</A>
-<LI><A NAME="TOC85" HREF="grg_85.html#SEC85">Redefining Patterns</A>
-<UL>
-<LI><A NAME="TOC86" HREF="grg_86.html#SEC86">Tokens and Syntax</A>
-<LI><A NAME="TOC87" HREF="grg_87.html#SEC87">Mode</A>
-<LI><A NAME="TOC88" HREF="grg_88.html#SEC88">Input Pattern</A>
-<LI><A NAME="TOC89" HREF="grg_89.html#SEC89">Equates</A>
-<LI><A NAME="TOC90" HREF="grg_90.html#SEC90">New Mode</A>
-<LI><A NAME="TOC91" HREF="grg_91.html#SEC91">Token</A>
-<LI><A NAME="TOC92" HREF="grg_92.html#SEC92">AWK Patterns</A>
-<LI><A NAME="TOC93" HREF="grg_93.html#SEC93">Pattern Debugging</A>
-<LI><A NAME="TOC94" HREF="grg_94.html#SEC94">Limits</A>
-</UL>
-</UL>
-<LI><A NAME="TOC95" HREF="grg_95.html#SEC95">RDBMS Queries</A>
-<UL>
-<LI><A NAME="TOC96" HREF="grg_96.html#SEC96">Declaring SQL Input Files</A>
-<LI><A NAME="TOC97" HREF="grg_97.html#SEC97">Physical Database</A>
-<LI><A NAME="TOC98" HREF="grg_98.html#SEC98">Referencing Columns</A>
-<LI><A NAME="TOC99" HREF="grg_99.html#SEC99">NULL Value Handling</A>
-<LI><A NAME="TOC100" HREF="grg_100.html#SEC100">Miscellaneous</A>
-</UL>
-<LI><A NAME="TOC101" HREF="grg_101.html#SEC101">Using GUILE</A>
-<UL>
-<LI><A NAME="TOC102" HREF="grg_102.html#SEC102">GRG Procedures</A>
-</UL>
-<LI><A NAME="TOC103" HREF="grg_103.html#SEC103">Errors</A>
-<LI><A NAME="TOC104" HREF="grg_104.html#SEC104">Examples</A>
-<LI><A NAME="TOC105" HREF="grg_105.html#SEC105">Revision History</A>
-</UL>
-<LI><A NAME="TOC106" HREF="grg_106.html#SEC106">Command Index</A>
-<LI><A NAME="TOC107" HREF="grg_107.html#SEC107">Variable Index</A>
-<LI><A NAME="TOC108" HREF="grg_108.html#SEC108">Concept Index</A>
-</UL>
-<P><HR><P>
-This document was generated on 15 December 1997 using the
-<A HREF="http://wwwcn.cern.ch/dci/texi2html/";>texi2html</A>
-translator version 1.51.</P>
-</BODY>
-</HTML>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]