Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-07 - decus/20-0172/blfhlp.r32
There is 1 other file named blfhlp.r32 in the archive. Click here to see a list.
.no headers
.no paging
.sk.rm 72
.br;.nf
1 pretty
.br;.f
PRETTY is a utility program which accepts a BLISS (-16, -32, or -36) 
source file and produces a reformatted source file (and optionally
a specially formatted listing file),
using generally accepted guidelines for formatting rules. 
The output file will have all whitespace (except in strings,
macro definitions, and comments) removed and replaced. 
Control expressions are indented according to hierarchical structure.
.sk1
Format:  PRETTY file-spec [,...]
.sk;where 'file-spec' is the source file specification. The
default type is '.BLI'.
.sk
The input and output files are BLISS source files; the listing file contains
the same data as the output file in an augmented format. Only the
input file spec is required.
.sk
PRETTY must be defined as a foreign
command (preferably in your LOGIN.COM) with a line of the
form "PRETTY:==$PRETTY".
.sk
.br;.nf
2 Parameters
.br;.f
.sk
file-spec [,...]
.sk
If only the input file spec is given, the only output will
be to the terminal: module and routine names plus error messages. These
will appear only if /LOG has been used. The default (/NOLOG) will provide
the user with no display other than an informational message if error messages
are discovered during parsing. Pretty accepts comma lists, but will not
correctly handle the concatenation ('+') character.
.sk
.br;.nf
2 Qualifiers
.br;.f
.sk
/NOLOG (D)
.sk
No module or routine names, or syntactic error messages will be displayed
to the terminal. If errors are discovered during parsing, an informational
message will be displayed.
.sk
/LOG
.sk
The current PRETTY version number, module and routine names, and error
messages will be displayed on the terminal.
.sk
/LISTING [=file-spec]  (D= file-spec.LIS)
.sk
Note:  Production of the listing file approximately doubles PRETTY
execution time.
.sk
/OUTPUT [=file-spec]  (D= file-spec.BLI)
.sk
The output file-spec designates the new, reformatted source file.
The output file will default to the input file.
.sk
.br;.nf
2 Directives
.br;.f
Formatting options are supplied to PRETTY by means of directives 
inserted as full-line comments into the source text.
The comments have the general form
.br;.nf
	!<BLF/directive>	example: !<BLF/remark:9>
.br;.f;where "directive" may be one of the following
(either lower or upper case may be used):
.sk
.br;.nf
3 REQUIRE'file-spec'
.br;.f
Accesses the specified file for further options of the following types.
The specified file must not contain another REQUIRE directive.
.sk
.br;.nf
3 PAGE
.br;.f
Produces a page break (formfeed) after the comment line.
.sk
.br;.nf
3 WIDTH:n (D= 110)
.br;.f
Causes the output file line width to be set to "n" columns, where
.br;#71_<n_<141.
.sk
.br;.nf
3 REMARK:n (D= 6)
.br;.f
Causes the remark column to be set to 8*n+1, i.e., "n" tabs are
issued to place the "!" in the proper column. The range of n 
is 2_<n_<16.
.sk
.br;.nf
3 NOFORMAT
.br;.f
Inhibits automatic formatting until a PAGE or FORMAT
directive is encountered.
.sk
.br;.nf
3 FORMAT (D)
.br;.f
Resumes automatic formatting.
.sk
.br;.nf
3 NOMACRO (D)
.br;.f
Causes formatting of macro definitions to be inhibited until a
subsequent MACRO directive is found.
.sk
.br;.nf
3 MACRO
.br;.f
Causes macros to be formatted (which may cause error messages to be 
issued) until a subsequent NOMACRO directive is found.
.sk
.br;.nf
3 NOERROR
.br;.f
Inhibits the insertion of error messages into the output files (they
will appear at the terminal only).
.sk
.br;.nf
3 ERROR (D)
.br;.f
Resumes the insertion of error messages into the output files.
Error messages are automatically deleted from source files on subsequent
runs.
.sk
.br;.nf
3 LOWERCASE__KEY
.br;.f
Causes BLISS keywords, builtins, and predeclared names to appear in lower case.
.sk
.br;.nf
3 LOWERCASE__USER
.br;.f
Causes user names to appear in lower case.
.sk
.br;.nf
3 LOWERCASE
.br;.f
Causes all names and keywords to appear in lower case.
.sk
.br;.nf
3 UPPERCASE__KEY
.br;.f
Causes BLISS keywords, builtins, and predeclared names to appear in upper case.
.sk
.br;.nf
3 UPPERCASE__USER
.br;.f
Causes user names to appear in upper case.
.sk
.br;.nf
3 UPPERCASE
.br;.f
Causes all names and keywords to appear in upper case. 
.sk
.br;.nf
3 NOCASE__KEY
.br;.f
Causes BLISS keywords, builtins, and predeclared names to be left alone.
.sk
.br;.nf
3 NOCASE__USER
.br;.f
Causes user names to be left alone.
.sk
.br;.nf
3 NOCASE (D)
.br;.f
Causes all names and keywords to be left alone.
.sk
.br;.nf
3 SYNONYM name = lexeme lexeme lexeme ...
.br;.f;Allows PRETTY to associate with "name" one or more lexemes
for formatting and syntax checking. The general use is for XPORT
or user-defined BLISS macros in instances where PRETTY would
consider such macros syntactically incorrect. Subsequent
occurrences of "name" will be treated as if the given sequence of
associated lexemes had been parsed. The special token "*" can be
used to indicate where to position "name" with regard to the normal
position of the tokens that it replaces. This is for formatting
purposes. Only "name"  will be output.
.sk
For example,
.BR;####!<BLF/SYNONYM ELIF = ELSE IF * >
.br;permits the sequence
.br;####IF expr THEN expr ELIF expr THEN expr;
.br;to be formatted without error messages. (The name, ELIF, is
output, but it is parsed and indented as though ELSE IF had been found there.)