mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-16 03:06:04 +02:00
186 lines
4.5 KiB
Groff
186 lines
4.5 KiB
Groff
.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\-devel@vekoll.saturnus.vein.hu
|
|
.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)
|