123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- .TH ptop.cfg 5 "31 may 1999" FreePascal "ptop source beautifier config file"
- .SH NAME
- ptop.cfg \- The ptop source\-beautifier configuration file.
- ptop is the source beautifier of the FreePascal project.
- Origin probably Pascal\-TO\-Pascal.cfg
- .SH DESCRIPTION
- This is the main configuration file of the
- .I ptop FPC source beautifier
- .PP
- The configuration file for
- .BR 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
- .BR ptop (1)
- .SH Structure
- The structure of a ptop configuration file is a simple buildingblock repeated several (20-30) times,
- 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)
- .PP
- The basic building block of the configuration file consists out of one or two lines,
- describing how ptop should react on a certain keyword.
- First a line without square brackets with the following format:
- .PP
- keyword=option1,option2,option3,...
- .PP
- If one of the options is "dindonkey" (see further below), a second line
- (with square brackets) is needed like this:
- .PP
- [keyword]=otherkeyword1,otherkeyword2,otherkeyword3,...
- .PP
- As you can see the block contains two types of identifiers, keywords(keyword and otherkeyword1..3 in above example)
- and options, (option1..3 above).
- .PP
- \fIKeywords\fP
- are the built-in valid Pascal structure-identifiers like BEGIN, END, CASE, IF,
- THEN, ELSE, IMPLEMENTATION. The default configuration file lists most of these.
- .PP
- 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
- .br
- -------------\ \ \ -----
- .br
- casevar\ \ \ \ : in a case label (<>'colon')
- .br
- becomes\ \ \ \ :=
- .br
- delphicomment\ \ \ //
- .br
- opencomment\ \ \ { or (*
- .br
- closecomment\ \ \ } or *)
- .br
- semicolon\ \ \ \ ;
- .br
- colon\ \ \ \ :
- .br
- equals\ \ \ \ =
- .br
- openparen\ \ \ \ [
- .br
- closeparen\ \ \ ]
- .br
- period\ \ \ \ .
- .PP
- The \fIOptions\fP codewords define actions to be taken when the keyword before
- the equal sign is found.
- .PP
- Option \ \ does what
- .br
- -------\ \ \ ---------
- .br
- crsupp\ \ \ suppress CR before the keyword.
- .br
- crbefore\ \ \ force CR before keyword
- \ \ \ \ (doesn't go with crsupp :) )
- .br
- blinbefore\ \ blank line before keyword.
- .br
- dindonkey\ \ \ de\-indent on assiociated keywords
- \ \ \ \ (see below)
- .br
- dindent\ \ \ deindent (always)
- .br
- spbef\ \ \ space before
- .br
- spaft\ \ \ space after
- .br
- gobsym\ \ \ Print symbols which follow a
- .br
- \ \ \ \ keyword but which do not
- .br
- \ \ \ \ affect layout. prints until
- .br
- \ \ \ \ terminators occur.
- .br
- \ \ \ \ (terminators are hard-coded in pptop,
- .br
- \ \ \ \ still needs changing)
- .br
- inbytab\ \ \ indent by tab.
- .br
- crafter\ \ \ force CR after keyword.
- .br
- upper\ \ \ prints keyword all uppercase
- .br
- lower\ \ \ prints keyword all lowercase
- .br
- capital\ \ \ capitalizes keyword: 1st letter
- .br
- \ \ \ \ uppercase, rest lowercase.
- .PP
- 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).
- .PP
- "dinkdonkey" deindents if any of the keywords specified by the extra options of the
- square-bracket line is found.
- .PP
- .SH Example
- The line
- else=crbefore,dindonkey,inbytab,upper
- .br
- [else]=if,then,else
- .PP
- Means:
- The keyword this is about is
- .I else
- , it's on the LEFT side of both equal signs.
- .PP
- 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
- .br
- \ the keyword. (ELSE alone on a line)
- .br
- \- (dindonkey) De\-indent on the keywords
- .br
- \ in square brackets line (if,then,else)
- .br
- \- (inbytab) indent by tab.
- .br
- \- (upper) uppercase the keyword (ELSE)
- .PP
- Try to play with the configfile until you find the effect you desire. The
- configurability and possibilities of ptop are quite large compared to shareware
- source beautifier found on e.g. SIMTEL.
- .PP
- .SH Acknowledgements
- The writer of the program, Michael van Canneyt, who also helped out explaining
- the format of ptop.cfg.
- .PP
- Questions/corrections can be mailed to fpc\[email protected]
- .PP
- Also thanks to the rest of the FPC development team.
- .SH SEE ALSO
- .IP "ptop binary"
- .BR ptop (1)
- .IP "Compiler"
- .BR ppc386 (1)
- .IP "Other FPC utils"
- .BR ppdep (1)
- .BR ppudump (1)
- .BR ppumove (1)
- .BR h2pas (1)
|