Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-07 - decus/20-0172/pretty.h20
There is 1 other file named pretty.h20 in the archive. Click here to see a list.


                     Help file for PRETTY (2 Pages)
                     Version No. 8.2, February 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 'BLF>' for a
file specification line of the form

input.type [/OUTPUT:name.type] [/LISTING:name.type] [/(NO)LOG] [/EXIT]

where
'input.type' is the source file specification (default type = 'BLI') and
'list.type'  is  the  listing  file specification (default type = 'LST',
name = the input file name).  /NOLOG is the default;  no syntax  errors,
module or routine names be displayed.  If errors occur during parsing an
informational message will be output.  /LOG will display errors,  module
and  routine names.  The output filespec designates the new, reformatted
source file.  If it is omitted, a new generation of the  input  file  is
created.   (Note:   Production of the listing file approximately doubles
the 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.
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, builtins, and predeclared names to appear
        in lower case.
LOWERCASE_USER
        Causes user names to appear in lower case.
LOWERCASE
        Causes all names, keywords, and  builtins  to  appear  in  lower
        case.
UPPERCASE_KEY
        Causes BLISS keywords, builtins, and predeclared names to appear
        in upper case.
UPPERCASE_USER
        Causes user names to appear in upper case.
UPPERCASE
        Causes all names, keywords, and  builtins  to  appear  in  upper
        case.
NOCASE_KEY
        Causes BLISS keywords, builtins, and  predeclared  names  to  be
        left alone.
NOCASE_USER
        Causes user names to be left alone.
NOCASE (D)
        Causes all names, keywords, and builtins to be left alone.
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.)