Man Linux: Main Page and Category List

NAME

       ptop.cfg - The ptop source-beautifier configuration file.

       ptop is the source beautifier of the FreePascal project.

       Origin probably Pascal-TO-Pascal.cfg

DESCRIPTION

       This is the main configuration file of the ptop FPC source beautifier

       The  configuration  file for ptop(1) isn’t necessarily called ptop.cfg,
       and is also not auto-loaded, so the  name  doesn’t  matter  much.  This
       man-page  describes  the  structure  of  such  a configuration file for
       ptop(1)

STRUCTURE

       The structure of a ptop configuration file is a simple  building  block
       repeated  several  (60-70) times, once for each pascal keyword known to
       the ptop program. (see  the  default  configuration  file  or  ptopu.pp
       source to find out which keywords are known)

       The basic building block of the configuration file consists out of one,
       two or three lines, describing how  ptop  should  react  on  a  certain
       keyword.   First  a  line  without  square  brackets with the following
       format:

       keyword=option1,option2,option3,...

       If one of the options is "dindonkey" (see further below), a second line
       (with square brackets) is needed like this:

       [keyword]=otherkeyword1,otherkeyword2,otherkeyword3,...

       Then  if  one  of  the  options  is  "gobsym", a third line (with angle
       brackets) is needed like this:

       <keyword>=terminalword1,terminalword2,terminalword3,...

       As  you  can  see  the  block  contains  two  types   of   identifiers,
       keywords(keyword,  otherkeyword1..3  and  terminalword1..3 in the above
       example) and options, (option1..3 above).

       Keywords are  the  built-in  valid  Pascal  structure-identifiers  like
       BEGIN,   END,   CASE,  IF,  THEN,  ELSE,  IMPLEMENTATION.  The  default
       configuration file lists most of these.

       Besides the real Pascal keywords, some other  codewords  are  used  for
       operators  and  comment  expressions. These are listed in the following
       table:

       Name of codeword         operator
       -------------            -----
       casevar                  : in a case label (<>’colon’)
       becomes                  :=
       delphicomment            //
       opencomment              { or (*
       closecomment             } or *)
       semicolon                ;
       colon                    :
       equals                   =
       openparen                [
       closeparen               ]
       period                   .

       The Options codewords define actions  to  be  taken  when  the  keyword
       before the equal sign is found.

       Option              does what
       -------             ---------
       crsupp              suppress CR before the keyword.
       crbefore            force CR before keyword
                           (doesn’t go with crsupp :) )
       blinbefore          blank line before keyword.
       dindonkey           de-indent on assiociated keywords (see below)
       dindent             de-indent (always)
       spbef               space before
       spaft               space after
       gobsym              Print symbols which follow a keyword,
                           but which do not affect layout.
                           Prints until terminators occur.
       inbytab             indent by tab.
       crafter             force CR after keyword.
       upper               prints keyword all uppercase
       lower               prints keyword all lowercase
       capital             capitalizes keyword: 1st letter
                           uppercase, rest lowercase.

       The option "dindonkey" requires some extra parameters, which are set by
       a second line for that keyword (the  one  with  the  square  brackets),
       which  is  therefore  only  needed  if the options contain "dinkdonkey"
       (contraction of de-indent on assiociated keyword).

       "dinkdonkey" deindents if any of the keywords specified  by  the  extra
       options of the square-bracket line is found.

       In  a  similar  manner  the  option "gobsym", short for gobble symbols,
       requires some additional information in order to perform its  function.
       The  "gobsym"  option  indicates that all symbols following the keyword
       should be passed through unchanged until a terminal symbol is  reached.
       The list of acceptable termial symbols is provided by the angle-bracket
       line.

EXAMPLES

       The block

       else=crbefore,dindonkey,inbytab,upper
       [else]=if,then,else

       Means:

       The keyword this is about is else , it’s on the LEFT side of both equal
       signs.

       When  the  ptop  parser  finds  ELSE,  the  options  tell  it to do the
       following things:

       - (crbefore) Don’t allow other code on the line before
          the keyword. (ELSE alone on a line)
       - (dindonkey) De-indent on the keywords
          in square brackets line (if,then,else)
       - (inbytab) indent by tab.
       - (upper) uppercase the keyword (ELSE)

       The block

       case=spaft,gobsym,inbytab,crafter,capital
       <case>=ofsym

       Means:

       The keyword this is about is case , it’s on the LEFT side of both equal
       signs.

       When case is found, the options tell it to do the following things:

       - (spaft) Insure that there is a space
          after the keyword. (case)
       - (gobsym) pass symbols through unchanced until one of
          the words in the angle brackets line (of) is found.
       - (crafter) Make sure terminator (of) ends the line.
       - (inbytab) indent by tab.
       - (capital) Capitalize the keyword (case becomes Case).

       Try  to  play with the configfile until you find the effect you desire.
       The configurability and possibilities of ptop are quite large  compared
       to other shareware source beautifiers found on e.g. SIMTEL.

ACKNOWLEDGEMENTS

       The  writer  of  the  program, Michael van Canneyt, who also helped out
       explaining the format of ptop.cfg.

       Questions/corrections         can         be         mailed          to
       fpc-devel@vekoll.saturnus.vein.hu

       Also thanks to the rest of the FPC development team.

SEE ALSO

       ptop binary
              ptop(1)

       Compiler
              ppc386(1)

       Other FPC utils
              ppdep(1) ppudump(1) ppumove(1) h2pas(1)