Trailing-Edge
-
PDP-10 Archives
-
decuslib20-07
-
decus/20-0172/pretty.h10
There is 1 other file named pretty.h10 in the archive. Click here to see a list.
Help file for PRETTY (2 Pages)
Version No. 8.2, Feb. 1982
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.
To invoke PRETTY, type RUN BLI:PRETTY. It will prompt with '*' for a
file specification line of the form
[outspec [, listspec] =] inputspec [/(NO)LOG]
where 'inputspec' is the source file specification (default type =
'BLI') and 'listspec' is the listing file specification (default type =
'LST', name = the input file name). /NOLOG (the default) will display
no syntax errors, module names, or timing. If errors are detected
during parsing with /NOLOG, an informational message will be output to
the terminal. /LOG will display all of the above. The output filespec
designates the new, reformatted source file. If it is omitted, the
input file is renamed with an extension of 'BLF' and the output is given
the filespec of the input. (Note: Production of the listing file
approximately doubles PRETTY run time.)
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
!<BLF/directive> example: !<BLF/remark:9>
where "directive" may be one of the following (either lower or upper
case may be used):
REQUIRE'file-spec'
Accesses the specified file for further options of the following
types. The specified file must not contain another REQUIRE
directive.
PAGE
Produces a page break (formfeed) after the comment line.
WIDTH:n (D= 110)
Causes the output file line width to be set to "n" columns,
where 71<n<141.
REMARK:n (D= 6)
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.
NOFORMAT
Inhibits automatic formatting until a PAGE or FORMAT directive
is encountered.
FORMAT (D)
Resumes automatic formatting.
NOMACRO (D)
Causes formatting of macro definitions to be inhibited until a
subsequent MACRO directive is found.
Page 2
MACRO
Causes macros to be formatted (which may cause error messages to
be issued) until a subsequent NOMACRO directive is found.
PLIT
Causes the second and following lines of PLIT or UPLIT bodies to
be formatted. This may produce layouts inferior to
hand-formatting, e.g. in large tables of constant values.
NOPLIT (D)
Inhibits formatting of the second and following lines of PLITs.
NOERROR
Inhibits the insertion of error messages into the output files
(they will appear at the terminal only).
ERROR (D)
Resumes the insertion of error messages into the output files.
Error messages are automatically deleted from source files on
subsequent runs.
LOWERCASE_KEY
Causes BLISS keywords to appear in lower case.
LOWERCASE_USER
Causes user names to appear in lower case.
LOWERCASE
Causes all names and keywords to appear in lower case.
UPPERCASE_KEY
Causes BLISS keywords to appear in upper case.
UPPERCASE_USER
Causes user names to appear in upper case.
UPPERCASE
Causes all names and keywords to appear in upper case.
NOCASE_KEY
Causes BLISS keywords to be left alone.
NOCASE_USER
Causes user names to be left alone.
NOCASE (D)
Causes all names and keywords to be left alone.
SYNONYM name = lexeme lexeme lexeme ... 3 SYNONYM name = lexeme lexeme
lexeme ...
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.
For example,
!<BLF/SYNONYM ELIF = ELSE IF * >
permits the sequence
IF expr THEN expr ELIF expr THEN expr;
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.)