Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-11 - 43,50544/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.)