diff options
Diffstat (limited to 'ipl/docs')
-rw-r--r-- | ipl/docs/README | 9 | ||||
-rw-r--r-- | ipl/docs/address.txt | 132 | ||||
-rw-r--r-- | ipl/docs/hebcalen.hlp | 81 | ||||
-rw-r--r-- | ipl/docs/hebcalpi.hlp | 86 | ||||
-rw-r--r-- | ipl/docs/iconmake.txt | 44 | ||||
-rw-r--r-- | ipl/docs/ipp.txt | 261 | ||||
-rw-r--r-- | ipl/docs/mr.man | 98 | ||||
-rw-r--r-- | ipl/docs/polywalk.txt | 60 | ||||
-rw-r--r-- | ipl/docs/post.1 | 61 | ||||
-rw-r--r-- | ipl/docs/pt.man | 99 |
10 files changed, 931 insertions, 0 deletions
diff --git a/ipl/docs/README b/ipl/docs/README new file mode 100644 index 0000000..02aeb3b --- /dev/null +++ b/ipl/docs/README @@ -0,0 +1,9 @@ + address.txt documentation for address procedures + hebcalen.hlp documentation for hebcalen.icn + hebcalpi.hlp documentation for hebcalpi.icn + iconmake.txt make skeleton for Icon + ipp.txt supplementary documentation for ipp.icn + mr.man manual page for mr.icn + post.1 manual page source for post.icn + polywalk.txt description of polynomial programs + pt.man manual page for pt.icn diff --git a/ipl/docs/address.txt b/ipl/docs/address.txt new file mode 100644 index 0000000..f42757d --- /dev/null +++ b/ipl/docs/address.txt @@ -0,0 +1,132 @@ + + + + + + + Processing Address Lists in Icon + + Ralph E. Griswold + Department of Computer Science, The University of Arizona + +Introduction + + Version 8.1 of the Icon program library contains a collection +of programs for processing address lists. These programs check +the correctness of address lists, filter them for designated +entries, sort them, and format mailing labels. + + The format of addresses lists processed by these programs is +loosely structured. This allows such lists to be created and +maintained using any text editor and allows them to be used for a +variety of purposes (not just for addresses, although that term +is used here for simplicity). The lack of structure, on the other +hand, allows ambiguities and the possibility of incorrectly +organized data. These programs are no substitute for a database +system or an application specifically dedicated to the handling +of mailing lists. + +Address_List_Format + + An address list, in the sense the term is used here, is a +sequence of entries. Each entry begins with a header line, in +which the first character is a #. Subsequent lines contain the +address information in a natural format with a few constraints +that are necessary if some of the programs described in the next +section are to be used. For example, an address list might look +like this: + + # + Mr. Fred Burfle + 1010 Wayside Lane + Scottsdale, AZ 85254 + # + Prof. M. Elwood Mork + 5235 Courtland Blvd., Apt. 23 + Minneapolis, MN 55432 + . + . + . + + + Since a # at the beginning of a line constitutes a header, a # +cannot appear as the first character of a line in an entry. One +work-around for this problem is to put a blank in front of a # +that otherwise would appear at the beginning of a line in an +entry. + + Within an entry, a line whose first character is a * is con- +sidered to be a comment and is not treated as significant text. +For example, such comment lines are ignored when formatting + + + +IPD171 - 1 - September 4, 1991 + + + + + + + + +mailing labels. Comment lines can be used for information like +telephone numbers. + + The # that starts a header line can be followed by one or more +designator characters. Several of the programs can select only +those entries with specific designators. + + The choice of designator characters is up to the user. For +example, #a might be used to designate active accounts, while #b +might be used to designate bad addresses. + +Organization_of_Entry_Information + + Some of the programs that process address lists expect the +entries to be in a specific form. For example, the first line of +an entry (after the header) is expected to be a name if the entry +is an actual address. + + Similarly, for addresses in the United States, the last line +of an entry is expected to be the city, followed by a comma, fol- +lowed by the postal-code abbreviation for the state, followed by +one or more blanks, followed by the ZIP code. See the examples +above. + + For an address outside the United States, the last line is +expected to consist only of the country name, in all uppercase +letters. + +Programs + + The following programs are available for processing address +lists: + + adlcheck Checks lists for bad data. Options include checking + the state and ZIP code (U.S. only), country name, + and for fitting in the confines of a standard one- + up mailing label. + + adlcount Counts the number of labels in a list with optional + restriction to entries with specified designators. + + adlfiltr Filters a list, outputting only those entries with + specified designators. + + adllist Lists ``fields'' of address list entries, including + addressee name, city, state, ZIP code, and country. + + adlsort Sorts address list entries by addressee name, ZIP + code, or country. + + labels Produces one-up mailing labels for designated + entries. + + See the programs themselves for detailed documentation. + + + +IPD171 - 2 - September 4, 1991 + + diff --git a/ipl/docs/hebcalen.hlp b/ipl/docs/hebcalen.hlp new file mode 100644 index 0000000..f5bdc29 --- /dev/null +++ b/ipl/docs/hebcalen.hlp @@ -0,0 +1,81 @@ +This program accepts a year of the Jewish calendar, for example +"5750", and produces on the screen a calendar of that year with a +visually equivalent civil calendar opposite it for easy conversion of +dates. The months of the civil year are abbreviated to + +JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC + +and of the Jewish calendar to + +NIS IYA SIV TAM AV ELU TIS HES KIS TEV SHE ADA AD2. + +Months are normally displayed three at a time. You call up the next +three by hitting spacebar. At the end of the year you can indicate if +you wish the program to conclude, by hitting spacebar again. If in +response to the question, Do you wish to continue? you enter "y" and +hit return, the next year will be displayed. + +Each Jewish month has its name on the left. The corresponding secular +dates will have the name of the month on the right, and when the month +changes it will be indicated on the right also. + + + + +If you wish, you may enter a civil year in the form -70 for BCE dates +and +70 for CE dates. The Jewish year beginning prior to Jan 1 of that +year will be displayed, and you can continue with the next Jewish year +if you wish to complete the desired civil year. + +You may enter CE or AD instead of + or BC or BCE instead of the minus +sign if you wish. It is best to avoid spaces, so enter 1987AD, for +example. + +The year 0 is not meaningful in either calendar. No date prior to 1 +in the Jewish calendar should be entered. The program will calculate +any future year, but will take longer for years much beyond the year +6000 in the Jewish reckoning. For example, the year 7000 will take +three minutes or so to appear if your machine is not very fast. +Earlier years should appear in a few seconds. + +A status line at the bottom of the screen indicates the civil and +Jewish year, and the number of days in each. Jewish years may contain +354, 355, 356, 384, 385 or 386 days according to circumstances. + + + + +When you are familiar with this program you can enter the years you +wish to see on the command line. For example, if you call the program + iconx calendar 5704 +1987 1BC +you will see in turn the Jewish year 5704, the Jewish year commencing +in 1986 and the Jewish year commencing in 2 B.C.E. You still have the +option of seeing the years subsequent to these years if you wish. Just +enter "y" when asked if you want to continue. When you enter "n", you +will get the next year of your list. + +All civil dates are according to the Gregorian Calendar which first +came into use in 1582 and was accepted in different places at +different times. Prior to that date the Julian calendar was in use. At +the present time the Julian calendar is 13 days behind the Gregorian +Calendar, so that March 15 1917 in our reckoning is March 2 in the +Julian Calendar. The following table shows the number of days that +must be subtracted from the Gregorian date given here to find the Julian +date. In the early centuries of this table and before, the calendar was +intercalated erratically, so a simple subtraction is not possible. Note that +the change in the number to subtract applies from March 1 in the century +year, since in the Julian Calendar that will be February 29 except in years +divisible by 400 which are leap years in the Gregorian calendar also. + +Century # to subtract Century # to subtract + 21 13 11 6 + 20 13 10 5 + 19 12 9 4 + 18 11 8 4 + 17 10 7 3 + 16 10 6 2 + 15 9 5 1 + 14 8 4 1 + 13 7 3 0 + 12 7 2 -1 + 1 -2 diff --git a/ipl/docs/hebcalpi.hlp b/ipl/docs/hebcalpi.hlp new file mode 100644 index 0000000..92016b6 --- /dev/null +++ b/ipl/docs/hebcalpi.hlp @@ -0,0 +1,86 @@ +Here is the alternate help for the calendar in ProIcon. + +This program accepts a year of the Jewish calendar, for example +"5750", and produces on the screen a calendar of that year with a +visually equivalent civil calendar opposite it for easy conversion of +dates. The months of the civil year are abbreviated to + +JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC + +and of the Jewish calendar to + +NIS IYA SIV TAM AV ELU TIS HES KIS TEV SHE ADA AD2. + +Months are normally displayed three at a time. You call up the next +three by hitting the space bar (or any other character). You may +conclude at this point if you wish by clicking on the word "Run" at +the top of the screen, dragging down to "Stop" and releasing. +At the end of the year you can indicate if you wish to +view the next following year by entering the letter "y" in response to +the question, Do you wish to continue? If you enter "n" the program +will conclude, or go on to the next year you wished to see if you +called the program with multiple entries of years. (See below.) + +Each Jewish month has its name on the left. The corresponding secular +dates will have the name of the month on the right, and when the month +changes it will be indicated on the right also. + +If you wish, you may enter a civil year in the form -70 for BCE dates +and +70 for CE dates. The Jewish year beginning prior to Jan 1 of that +year will be displayed, and you can continue with the next Jewish year +if you wish to complete the desired civil year. + +You may enter CE or AD instead of +, or BC or BCE instead of the minus +sign if you wish. Avoid spaces, so enter 1987AD, for example. + +The year 0 is not meaningful in either calendar. No date prior to 1 +in the Jewish calendar should be entered. The program will calculate +any future year, but will take longer for years much beyond the year +6020 in the Jewish reckoning. For example, the year 7000 will take +three minutes or so to appear. Earlier years should appear in a few +seconds. + +A status line at the bottom of the screen indicates the civil and +Jewish year, and the number of days in each. Jewish years may contain +354, 355, 356, 384, 385 or 386 days according to circumstances. + +When you are familiar with this program you can enter any number of years +you wish to see. Before you start the program, click on "Options", drag +to "Parameter String" and release. You can then enter, for example + 5704 +1987 1BC +then click on the box marked "OK". If you want to change these later, go +back to "Options" and type in your new list. You will see in turn the +Jewish year 5704, the Jewish year commencing in 1986 and the Jewish year +commencing in 2 B.C.E. You still have the option of seeing the years +subsequent to these years if you wish. Just enter "y" when asked if you +want to continue. When you enter "n", you will get the next year of your +original list. + +When you are completely through with the program, click on "File" at +the top of the screen, drag to "Quit" and release. If you wish you can +drag to "Transfer" and you will see a dialogue box to transfer to another +program, or to Hypercard. + +All civil dates are according to the Gregorian Calendar which first +came into use in 1582 and was accepted in different places at +different times. Prior to that date the Julian calendar was in use. At +the present time the Julian calendar is 13 days behind the Gregorian +Calendar, so that January 20 1990 in our reckoning is January 7 in the +Julian Calendar. The following table shows the number of days that +must be subtracted from the Gregorian date given here to find the Julian +date. In the centuries before the current era the calendar was +intercalated erratically, so a simple subtraction is not possible. + +Century # to subtract Century # to subtract + 21 13 11 6 + 20 13 10 5 + 19 12 9 4 + 18 11 8 4 + 17 10 7 3 + 16 10 6 2 + 15 9 5 1 + 14 8 4 1 + 13 7 3 0 + 12 7 2 -1 + 1 -2 + diff --git a/ipl/docs/iconmake.txt b/ipl/docs/iconmake.txt new file mode 100644 index 0000000..e656c49 --- /dev/null +++ b/ipl/docs/iconmake.txt @@ -0,0 +1,44 @@ + +A generic makefile skeleton for Icon programs by Bob Alexander: + +------------------------------------------------------------------------- +# +# Makefile for Icon Programming Language program: +# +PROGRAM=|>Program Name<| + +# +# To customize this file, usually only the definitions of macros +# PROGRAM and FILES require modification. +# + +# +# Specification of separate files that make up the program. +# +# Note that the .u1 suffix is used here; the corresponding .icn files +# are automatically identified by the implicit rule. +# +FILES=|>List of component files, space separated, using .u1 suffix<| + +# +# Option flag definitions, etc. +# +ICFLAGS=-s +IFLAGS=-s +ICONT=icont + +# +# Implicit rule for making ucode files. +# +.SUFFIXES: .u1 .icn +.icn.u1: + $(ICONT) -c $(ICFLAGS) $* + +# +# Explicit rules for making an Icon program. +# +all: $(PROGRAM) + +$(PROGRAM): $(FILES) + $(ICONT) -o $(PROGRAM) $(IFLAGS) $(FILES) + diff --git a/ipl/docs/ipp.txt b/ipl/docs/ipp.txt new file mode 100644 index 0000000..9f3923a --- /dev/null +++ b/ipl/docs/ipp.txt @@ -0,0 +1,261 @@ + + + + + + + An Icon Pre-Processor + + + Frank J. Lhota + Mei Associates, Inc. + 1050 Waltham Street + Lexington, MA 02173-8024 + Voice: (617) 862-3390 + FAX: (617) 862-5053 + + + + The Icon Programming Library comes with an Icon preprocessor +called IPP. I have made several enhancements to this program, and I +would like to submit the enhanced version of the IPP to the IPL. + + + + + + New IPP features + + For those who are not familiar with the IPP, the header comments +in the IPP.ICN file provide complete intructions on its use. The rest +of this section assumes a familiarity with the previous version of +the IPP. + + This new version of the IPP processes #line directives, which can +be used to change the value of the _LINE_ and _FILE_ symbols. Also, +the new IPP wiil generates #line directives when needed, so that the +preprocessor output will always indicate the original source of its +text. As a result, if we pipe the output of IPP to icont, e.g., + + iconx ipp.icx foo.icn | icont -ofoo - + +then (assuming that the source itself does not have any line +directives) the &file and &line keywords refer to the lines in the +original source file, not to "stdin" and the line numbers of the IPP +output. The #line directives will be generated even when other +comments are being stripped from the input. + + The preprocessor command syntax has been relaxed a bit. The +basic form of a preprocessor command line is still + + $command [arguments] + +but now the user is permitted to include spaces around the '$', so +that preproccessor commands can have a pretty-print look, e.g. + + $ifndef FOO + $if BAR = 0 + $ define FOO -1 + $else + $ define FOO BAR + $endif + $endif # ndef FOO + + + + - 1 - + + + + + + + + + On non-UNIX systems, the new IPP has a more liberal search +algorithm for $include files. For files enclosed with <>, the +directories specified in the IPATH environment variable are searched +for the file. The search for file enclosed in "" starts with the +current directory, then proceeds to the IPATH directories. As +before, the -I command line option can be used to add directories to +the beginning of the standard search path. + + The following preprocessor commands have been added to IPP: + + $elif: + Invoked as 'elif constant-expression'. If the lines + preceding this command were processed, this command and the + lines following it up to the matching $endif command are + ignored. Otherwise, the constant-expression is evaluated, + and the lines following this command are processed only if + it produces a result. + + $error: + This command issues a error, with the text coming from + the argument field of the command. As with all errors, + processing is terminated. + + $warning: + This command issues a warning, with the text coming from + the argument field of the command. + + In addition to the operators previously supported, the constant +expressions appearing in $if / $elif command can now use the unary +versions of the '+' and '-' operators, and the 'not' control +structure. Also, backtracking is used in the evaluation of constant +expressions, so that when the command + + $if FOO = (2|3) + +is processed, the lines following it are processed precisely when +either FOO equals 2 or FOO equals 3. + + + Uses of the IPP + + To understand the following examples, the reader should keep in +mind this feature of the IPP: The IPP creates a pre-defined symbol +out of each string generated by &features. These symbols are created +by taking the non-letter characters of the &features strings and +replacing them with underscores. Thus, if &features includes UNIX, +the symbol UNIX is defined; if co-expressions are supported, the +symbol co_expressions is defined, and so on. + + The IPP can be an handy tool for distributing Icon programs that +require some customization for specific implementations. A prime +example of this is the IPP itself. IPP must be able to contruct a + + + + + - 2 - + + + + + + + +full pathname for a file, given a directory and file name. On many +systems, this is done by performing the catenation + + directory || "/" || filename + +This file naming convention is not, however, universal. On DOS and +OS/2 systems, "\\" should be used instead of "/" to separate the +directory and filename. Under VMS, the separator should be "". + + To accomodate these system-dependant variations, the IPP source +(in the file IPP.ICN, on this disk) is written using the symbol +DIR_SEP for the string that separates the directory and filename +portions of a complete path. The IPP code starts with the +preprocessor directives: + + $ifndef DIR_SEP + $ifdef UNIX + $define DIR_SEP "/" + $elif def(MS_DOS) | def(MS_DOS_386) | def(OS_2) + $define DIR_SEP "\\" + $elif def(VMS) + $define DIR_SEP "" + $else + $error Need a definition for DIR_SEP + $endif + $endif # ndef DIR_SEP + +After preprocessing this code, DIR_SEP will be "/" on UNIX systems, +and "\\" on DOS and OS/2 systems. For other systems, an appropriate +value for DIR_SEP could be specified on the preprocessor command line +by using the -D options, e.g. + + ipp -D DIR_SEP=\"\" ipp.ipp ipp.icn + + Another example of Icon software that could exploit IPP +customization is BINCVT, the IPL package of utilities for converting +between integers and their internal binary representations. The +version of BINCVT currently included in the IPL assumes a +"big-endian" system. On "big-endian" systems, the bytes in the binary +representation of an integer are arranged from most significant to +least significant. However, major platforms such as the IBM PC family +or the VAX machines use the "little-endian" method for storing +integers, in which the bytes representing an integer go from least +significant to most significant. + + Using IPP, one can write a version of BINCVT that can be +preprocessed to produce a working package for either big-endian or +little-endian systems. The symbol LITTLE_ENDIAN will be defined (via +the command line option -D LITTLE_ENDIAN) to produce output for +little endian systems. Most of the functions in BINCVT can be +expressed in terms of starting at the most significant byte, and +moving to the less significant bytes. Hence, the generalized BINCVT +starts with the definitions: + + + + + - 3 - + + + + + + + + + $ifdef LITTLE_ENDIAN + $define GOTO_BIG_END tab (0) + $define TO_SMALL_END -1 + $else + $define GOTO_BIG_END + $define TO_SMALL_END 1 + $endif + + Using these definitions, we can write a version of the unsigned +function that will work for either integer storage method: + + procedure unsigned(s) + local result + result := 0 + s ? { + GOTO_BIG_END + while result := ord(move(TO_SMALL_END)) + result * 16r100 + } + return result + end + +The file BINCVT.IPP on this disk contains the source code for this +example. + + + Conclusions + + The IPP allows Icon programmers to write more flexable and more +portable code. The latest version of the IPP is easier to use and +more powerful than the previous version. + + + + + + + + + + + + + + + + + + + + + + + + + + + - 4 - diff --git a/ipl/docs/mr.man b/ipl/docs/mr.man new file mode 100644 index 0000000..6f4dde7 --- /dev/null +++ b/ipl/docs/mr.man @@ -0,0 +1,98 @@ +.\" mr.man version 1.0 +.\" copyright 1991 Ronald Florence +.TH MR LOCAL "7 Feb 1992" +.SH NAME +mr \- mail (or news) reader +.SH SYNOPSIS +.B mr +[ +.I spool +] +.SH DESCRIPTION +Mr is a simple reader for mail and/or news spools. It won't obsolete +elm, mailtool, emacs, mush, or even /usr/ucb/Mail, but it allows a +reader to page, reply-to, save, append, print, forward, pipe, +originate, conceal or reveal headers, and delete or undelete mail. Mr +can also be used to read the news spools produced by the bsnews news +system for leaf nodes. +.SH COMMANDS +An alternate mail or news spool can be named on the command line. The +initial display lists waiting messages: +.ta .5i 1i 3.5i +.sp +.nf +.if t .ft CR +1 FOP [ 22:ron@mlfarm.com (R] How to use mr +.ie t .ft CB +.el .ft B +2 DOR [985:goer@sophist.uchi] Improving MR (part I) +.ie t .ft CR +.el .ft R +3 N [ 61:ralph@cs.arizona.] MS-Dos Pipes +.ft R +.fi +.P +The letters after the message number indicate the status of the +message; New, Old, Replied-to, Printed, Deleted, Saved, Forwarded. +The number inside the square brackets is the number of lines in the +message, followed by the author's name and/or email address, and the +subject. The current message is highlighted in bold or reverse video, +depending on the capabilities of the display. The prompt shows the +current message number and the total number of messages. The +following commands can be given: +.sp +.nf +.RS +A Append current message to a file +D Delete current message +F Forward current message +G Get new mail +H Help +L List headers +M Mail to a new recipient +N Next message +P Print current message +Q Quit, saving changes +R Reply-to current message +S Save current message to a file +U Undelete current message +V View all headers +X eXit without saving changes +| pipe current message to a command +! execute command +# make # current message ++ next message +- previous message +? help +.RE +.fi +.P +Pressing +.RI < return > +will page thru the current message, then advance the current message +number. Press +.I Q +or +.I N +at a +.SM MORE +prompt to return to the command prompt. +.SH ENVIRONMENT +The +.SM EDITOR +and +.SM MAILSPOOL +environmental variables can be used to override default settings. Mr +uses the +.SM TERM +and +.SM TERMCAP +variables to lookup screen parameters and control strings. +.SH SEE ALSO +mail(1), sendmail(1), bsnews(\s-1LOCAL\s0) +.SH BUGS +The pseudo-pipes used for ms-dos cannot handle a complex command. +Some users would undoubtedly prefer getch() style command parsing. +The pager used to display messages does not back-up. +.SH AUTHOR +Ronald Florence (ron\s-2@\s0mlfarm.com). diff --git a/ipl/docs/polywalk.txt b/ipl/docs/polywalk.txt new file mode 100644 index 0000000..8310e79 --- /dev/null +++ b/ipl/docs/polywalk.txt @@ -0,0 +1,60 @@ +1.0 Introduction +---------------- + This is a short walkthrough of the polydemo program, with examples of +the use of all of the available commands. I am assuming that you have +already looked at the header of the source code of polydemo, which describes +the options available in the polydemo. + When a series of commands or entries must be given, they will be listed +here separated by commas. Each entry in such a list should be followed by +pressing Return or Enter. Single-letter commands must always be followed +with Enter as well. The case of any letter is ignored. + +2.0 Preparing the polydemo program +---------------------------------- + Polydemo requires the library polystuf, also included on this disk. To +set up polydemo for running, first translate polystuf into ucode files with + ICONT -c polystuf +and then translate polydemo with + ICONT polydemo +after which you can run polydemo in whatever manner your system allows. + +3.0 A sample run +---------------- + Let's say we had to perform the following: find the result of evaluating + 4 3.1 0.7 5 4 + (9x + 6x + 5 - 3x ) - (12x - 4.2x + x) at x = 2.2. + Start the polydemo program. A menu of options will be displayed, as +will the slots that are filled (none yet) and a prompt containing valid +characters corresponding to the options. Enter R to read in a polynomial from +the keyboard, then give A as the slot of the first polynomial. Enter these +numbers: 9, 4, 6, 3.1, 5, 0, -3, 0.7, 0. Now, the first polynomial will be +stored in slot "a." Note that the 0 is necessary after the 5 to use a +constant term, and that the 0 at the end is for stopping data entry. + A similar process can be used for the second polynomial. Inputting +R, B, 12, 5, -4.2, 4, 1, 1, 0 will place that polynomial in slot "b." + Now, check to make sure you've entered the polynomials correctly. Type +W for "write" and A for slot "a," to display the first polynomial on the +screen. It should appear as 9x^4 + 6x^3.1 + -3x^0.7 + 5. Do the same for +the second polynomial (replacing the A with a B). The output should be +12x^5 + -4.2x^4 + x. + To find their difference, enter S for subtract, then A, B to indicate +those two polynomials, then C as a slot for the answer. Note that the result +isn't immediately displayed; you must use W, C for that. The answer should +be -12x^5 + 13.2x^4 + 6x^3.1 + -x + -3x^0.7 + 5. + Finally, to evaluate this polynomial at x = 2.2, type E for evaluate, +C for the slot in which that polynomial is held, then 2.2 for the x-value. +You should receive the message "The result is -242.498468213815," or something +similar, depending on the precision of real numbers in your implementation of +Icon. + The Add and Multiply commands are invoked similarly to the Subtract +command. The Clear option allows you to empty a slot, making room for a new +polynomial. This is necessary because you cannot overwrite an existing +polynomial. Asking for Help displays the list of options and the letters +needed to access them. Lastly, using Quit exits the program. + It would be good to test operations in which one or both polynomials +are zero. A zero polynomial is made when, during entry, a 0 is the first and +only coefficient given, or when it is the result of an operation. Also, to +make sure no "1x", "-1x" or "x^1" appears in a written polynomial (these +should be "x", "-x", and "x," respectively), try working with polynomials that +have these terms. + diff --git a/ipl/docs/post.1 b/ipl/docs/post.1 new file mode 100644 index 0000000..9c3f9d4 --- /dev/null +++ b/ipl/docs/post.1 @@ -0,0 +1,61 @@ +.\" post.man version 1.5 +.TH POST LOCAL "2 Oct 1991" +.SH NAME +post \- news poster +.SH SYNOPSIS +.B post +[ +.BI \-n\ newsgroups +] [ +.BI \-s\ subject +] [ +.BI \-d\ distribution +] [ +.BI \-f\ followup-to +] [ +.BI \-p\ quote-prefix +] [ +.B \- +| +.I news-article +] +.SH DESCRIPTION +.I Post +posts a news article to Usenet via inews, uux, or mail. Given an +optional argument of the name of a file containing a news article, or +an argument of `\-' and a news article via stdin, +.I post +creates a follow-up article, with an attribution and quoted text. +.I Post +can be invoked as a filter from a newsreader: +.RB ` "|post \-" ' +would create a followup article to the current article in the +newsreader. The newsgroups, subject, distribution, follow-up, and +quote-prefix (the default is ` > ') can be specified on the command +line. +.PP +.I Post +is compatible with C-News, B-news, and bsnews (Bootstrap News). On +systems with inews, the newsgroups and distribution are validated in +the appropriate news system files. +.SH ENVIRONMENT +The environment variable +.SM EDITOR +overrides the default editor. +.SM ORGANIZATION +overrides the file /usr/lib/news/organization to specify an optional +Organization header. On non-Unix\u\s-3TM\s0\d systems, the +environment variable +.SM HOST +may be used to override the Icon keyword +.I &host +as the sitename. +.SH BUGS +The code to validate newsgroups assumes the file +/usr/lib/news/active +is sorted. +.SH AUTHOR +Ronald Florence (ron\s-2@\s0mlfarm.com). The code to generate a +temporary file name is from Richard Goerwitz +(goer\s-2@\s0sophist.uchicago.edu). Options.icn is from the Icon +Program Library. diff --git a/ipl/docs/pt.man b/ipl/docs/pt.man new file mode 100644 index 0000000..2f14d02 --- /dev/null +++ b/ipl/docs/pt.man @@ -0,0 +1,99 @@ +PT + + +NAME + pt - canonical LR(1) parse (action and goto) table generator. + The input grammar productions with added enumerations, + needed as part of the reduction in the action + table, is also part of the output. + (Various optional outputs are possible:- + terminal sets + nonterminal sets + first sets for nonterminals + items in each state) + +SYNOPSIS + pt [ option | option | ... ] + +DESCRIPTION + Pt reads the grammar from the file called grammar, if one exists, + else it will read from standard input. The grammar MUST conform + to the following:- + + 1. It must be a context-free grammar, augmented or unaugmented. + 2. Each production is of the form:- + + A -> B ; C a + + The arrow separates the left side of the production + from the right side. + The left side of the production consists of only one + nonterminal. + The right side of the production consists of a sequence + of symbols (terminals, nonterminals) with one or + more white spaces (blanks and tabs) separating them. + A symbol is thus either a terminal or a nonterminal but + not both. + + 3. One production per line; no alternation allowed. Thus, + represent the following 2 productions:- + + A -> B ; C a | b + by:- + A -> B ; C a + A -> b + + 4. Newline character, tab and blank cannot be a grammar token + (terminal or nonterminal). + + 5. The left hand side symbol of the very first production + represents the starting symbol of the grammar. + + 6. The following are "reserved" words:- + + START + EOI + + and cannot be used as a terminal or nonterminal. + + 7. EPSILON is considered another "reserved" word and can be + used to represent an empty production, viz. + + H -> EPSILON + + No error messages will be issued if the input grammar does not + conform to the above specifications. + + The options, which can appear in any order, are:- + + -t Print the list of terminals in the grammar. + + -nt Print the list of nonterminals in the grammar. + + -f Print the list of first sets of the nonterminals + in the grammar. + + -e Print the list of items (i.e. closure) in each state. + + +FILES + grammar grammar file with format specified above. + +SEE ALSO + yacc + Aho A.V., Sethi, R. and Ullman, J.D., Compilers: Principles, + Techniques, and Tools. Addison-Wesley, 1986. + +DIAGNOSTICS + All shift/reduce conflicts will be reported (to errout). In the + table form, only shift will be shown. + To avoid reduce/reduce conflict the grammar should be unambiguous + with left-factoring performed if necessary. + Unrecognized options or arguments in the command line will be + ignored. + +BUGS + No known bugs! + +AUTHOR + Deeporn H. Beardsley |