SEARCH
NEW RPMS
DIRECTORIES
ABOUT
FAQ
VARIOUS
BLOG
DONATE


YUM REPOSITORY

 
 

MAN page from OpenSuSE fpc-3.0.4-lp152.5.59.x86_64.rpm

ptop.cfg

Section: ptop source beautifier config file (5)
Updated: 25 January 2007
Index 

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 theptop FPC source beautifier

The configuration file forptop(1)isn't necessarily called ptop.cfg, and is alsonot auto-loaded, so the name doesn't matter much. This man-page describesthe structure of such a configuration file forptop(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 tofind 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..3in the above example) and options, (option1..3 above).

Keywordsare 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 operatorsand 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 beforethe 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 areset by a second line for that keyword (the one with the square brackets), which istherefore only needed if the options contain "dinkdonkey" (contraction ofde-indent on assiociated keyword).

"dinkdonkey" deindents if any of the keywords specified by the extra options of thesquare-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 keywordshould be passed through unchanged until a terminal symbol is reached. The list of acceptable termialsymbols 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 iselse, it's on the LEFT side of both equal signs.

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

- (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 iscase, it's on the LEFT side of both equal signs.

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

- (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. Theconfigurability and possibilities of ptop are quite large compared to other sharewaresource beautifiers found on e.g. SIMTEL.

 

ACKNOWLEDGEMENTS

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

Questions/corrections can be mailed to fpc-develAATTvekoll.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)


 

Index

NAME
DESCRIPTION
STRUCTURE
EXAMPLES
ACKNOWLEDGEMENTS
SEE ALSO

This document was created byman2html,using the manual pages.