bionic (5) ptop-3.0.4.cfg.5.gz

Provided by: fp-utils-3.0.4_3.0.4+dfsg-18ubuntu2_amd64 bug

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)