diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/pp/README |
Initial commit
Diffstat (limited to 'support/pp/README')
-rw-r--r-- | support/pp/README | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/support/pp/README b/support/pp/README new file mode 100644 index 0000000000..f794cb945b --- /dev/null +++ b/support/pp/README @@ -0,0 +1,99 @@ +README. + +PP.MOD +PP.EXE +MOD.RES +PAS.RES + +Author: Mike Piff <M.Piff@sheffield.ac.uk> + + +PP is a program that takes a free-standing Modula-2 or Pascal +program, and converts it into a Pretty-Printed \LaTeX/plain \TeX\ file +ready to input into your document. This is more attractive than +a verbatim listing. + +Example of Usage +================ + +As an example, suppose we run PP on the file PP.MOD (with its header +removed), to produce PP.TEX---a file that is both a plain \TeX\ and +\LaTeX\ file: + +PP +PP Copyright (C) 1992 by Mike Piff, 10/29/92 01:27pm +Input filename for reserved words +in> MOD. +Give input file: in> PP.MOD +Give output file: out> PP.TEX + + +Notes +===== + +The source code is included in this distribution, +together with an MS-DOS executable. + +As Modula-2 is case-sensitive, whereas Pascal is not, +it is necessary to inform the program which language is +being used. Two customization files MOD.RES and PAS.RES +are included. It is possible that customization files +can be built for other languages too---I haven't tried, +but please let me know if you produce any. + +The current format of each customization file is + +No. of keywords +optional * to indicate case-insensitive +list of keywords + +The first thing the program does is prompt for the list of +keywords. After that it asks for an input file and an output +file, and that is it! + +...almost. One problem with this kind of listing is that +\TeX\ has trouble breaking a program at a meaningful place, +eg, after declarations. Thus, we need to give it some clues. +A BLANK LINE in the input indicates a good breakpoint, but +DOES NOT result in blank lines in the output. However, +n>1 blank lines result in n-1 blank output lines. Thus, +space your program carefully! + +Another problem is the way that Modula-2 and Pascal delimit +comments. Whereas Wirth used [ ] for sets in Pascal, +contrary to all mathematical practices, and { } or (* *) +for comments, in Modula-2 he +reserved { } for sets. Thus, the results will look better +if you use (* *) for comments in Pascal rather than +{ }. Maybe this could be added to the customization file, +but I haven't found the need yet. + +To make your comments come out reasonable, assume that you +are in horizontal (text) mode inbetween (* and *). Thus, +write +(* and so $2^n\geq\log m$ *) +rather than +(* and so 2^n>= log m *) +If you want to include a bit of code inside a comment, +precede it and follow it by **. Thus +(* Or use +** +PROCEDURE xxx;FORWARD; +** +if yours is a single pass compiler *) + +The output of PP is similar to that of WEB, say, but your +program is free-standing and you do not need to learn to +use WEB. Generally, horizontal spacing is respected in the +output, but you should use spaces rather than tabs for this +to work. I have used := rather than <- for assignments. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Dr M J Piff %% e-mail: +%% Department of Pure Mathematics %% +%% University of Sheffield %% M.Piff@sheffield.ac.uk +%% Hicks Building %% PM1MJP@derwent.shef.ac.uk +%% Hounsfield Road %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% SHEFFIELD S3 7RH %% Telephone: (0742) 824431 +%% England %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |