mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-19 13:59:29 +02:00
+ More include identifiers and solved double string character in tex3ht overview
This commit is contained in:
parent
67b4ce128e
commit
d27d686565
153
docs/prog.tex
153
docs/prog.tex
@ -110,12 +110,12 @@ influence the compiler's behaviour from the moment they're encountered
|
||||
until the moment another switch annihilates their behaviour, or the end
|
||||
of the current unit or program is reached.
|
||||
|
||||
\subsection{\var{\$A} or \var{\$ALIGN} : Align Data}
|
||||
\subsection{\var{\protect\$A} or \var{\protect\$ALIGN} : Align Data}
|
||||
|
||||
This switch is recognized for Turbo Pascal Compatibility, but is not
|
||||
yet implemented. The alignment of data will be different in any case.
|
||||
|
||||
\subsection{\var{\$ASMMODE} : Assembler mode (Intel 80x86 only)}
|
||||
\subsection{\var{\protect\$ASMMODE} : Assembler mode (Intel 80x86 only)}
|
||||
\label{se:AsmReader}
|
||||
|
||||
The \var{\{\$ASMMODE XXX\}} directive informs the compiler what kind of assembler
|
||||
@ -134,7 +134,7 @@ The command-line switch that corresponds to this switch is \var{-R}.
|
||||
|
||||
The default assembler reader is the AT\&T reader.
|
||||
|
||||
\subsection{\var{\$B} or \var{\$BOOLEVAL} : Complete boolean evaluation}
|
||||
\subsection{\var{\protect\$B} or \var{\protect\$BOOLEVAL} : Complete boolean evaluation}
|
||||
|
||||
This switch is understood by the \fpc compiler, but is ignored. The compiler
|
||||
always uses shortcut evaluation, i.e. the evaluation of a boolean expression
|
||||
@ -149,7 +149,7 @@ If False and Bofu then
|
||||
This has as a consequence that any additional actions that are done by
|
||||
\var{Bofu} are not executed.
|
||||
|
||||
\subsection{\var{\$C} or \var{\$ASSERTIONS} : Assertion support}
|
||||
\subsection{\var{\protect\$C} or \var{\protect\$ASSERTIONS} : Assertion support}
|
||||
|
||||
The \var{\{\$ASSERTIONS\}} switch determines if assert statements are
|
||||
compiled into the binary or not. If the switch is on, the statement
|
||||
@ -174,7 +174,7 @@ This can be used mainly for debugging purposes. The \file{system} unit sets the
|
||||
and simply exits. The \file{sysutils} unit catches the run-time error 227
|
||||
and raises an \var{EAssertionFailed} exception.
|
||||
|
||||
\subsection{\var{\$DEFINE} : Define a symbol}
|
||||
\subsection{\var{\protect\$DEFINE} : Define a symbol}
|
||||
|
||||
The directive
|
||||
\begin{verbatim}
|
||||
@ -189,7 +189,7 @@ insensitive.
|
||||
The symbols that are defined in a unit, are not saved in the unit file,
|
||||
so they are also not exported from a unit.
|
||||
|
||||
\subsection{\var{\$ELSE} : Switch conditional compilation}
|
||||
\subsection{\var{\protect\$ELSE} : Switch conditional compilation}
|
||||
|
||||
The \var{\{\$ELSE\}} switches between compiling and ignoring the source
|
||||
text delimited by the preceding \var{\{\$IFxxx\}} and following
|
||||
@ -204,7 +204,7 @@ is the same as
|
||||
\end{verbatim}
|
||||
This is useful for indication what switch is meant.
|
||||
|
||||
\subsection{\var{\$ENDIF} : End conditional compilation}
|
||||
\subsection{\var{\protect\$ENDIF} : End conditional compilation}
|
||||
|
||||
The \var{\{\$ENDIF\}} directive ends the conditional compilation initiated by the
|
||||
last \var{\{\$IFxxx\}} directive. Any text after the \var{ENDIF} keyword but
|
||||
@ -218,7 +218,7 @@ is the same as
|
||||
\end{verbatim}
|
||||
This is useful for indication what switch is meant to be ended.
|
||||
|
||||
\subsection{\var{\$ERROR} : Generate error message}
|
||||
\subsection{\var{\protect\$ERROR} : Generate error message}
|
||||
|
||||
The following code
|
||||
\begin{verbatim}
|
||||
@ -228,7 +228,7 @@ will display an error message when the compiler encounters it,
|
||||
and increase the error count of the compiler.
|
||||
The compiler will continue to compile, but no code will be emitted.
|
||||
|
||||
\subsection{\var{\$F} : Far or near functions}
|
||||
\subsection{\var{\protect\$F} : Far or near functions}
|
||||
This directive is recognized for compatibility with Turbo Pascal. Under the
|
||||
32-bit and 64-bit programming models, the concept of near and far calls have
|
||||
no meaning, hence the directive is ignored. A warning is printed to the screen,
|
||||
@ -278,7 +278,7 @@ displayed in that case is:
|
||||
testf.pp(3) Warning: NEAR ignored
|
||||
\end{verbatim}
|
||||
|
||||
\subsection{\var{\$FATAL} : Generate fatal error message}
|
||||
\subsection{\var{\protect\$FATAL} : Generate fatal error message}
|
||||
|
||||
The following code
|
||||
\begin{verbatim}
|
||||
@ -290,7 +290,7 @@ and the compiler will immediatly stop the compilation process.
|
||||
This is mainly useful inc conjunction wih \var{\{\$IFDEF\}} or
|
||||
\var{\{\$IFOPT\}} statements.
|
||||
|
||||
\subsection{\var{\$GOTO} : Support \var{Goto} and \var{Label}}
|
||||
\subsection{\var{\protect\$GOTO} : Support \var{Goto} and \var{Label}}
|
||||
|
||||
If \var{\{\$GOTO ON\}} is specified, the compiler will support \var{Goto}
|
||||
statements and \var{Label} declarations. By default, \var{\$GOTO OFF} is
|
||||
@ -315,7 +315,7 @@ readers, any labels used in the assembler code must be declared, and
|
||||
the \var{\{\$GOTO ON\}} directive should be used.
|
||||
\end{remark}
|
||||
|
||||
\subsection{\var{\$H} or \var{\$LONGSTRINGS} : Use AnsiStrings}
|
||||
\subsection{\var{\protect\$H} or \var{\protect\$LONGSTRINGS} : Use AnsiStrings}
|
||||
|
||||
If \var{\{\$LONGSTRINGS ON\}} is specified, the keyword \var{String} (no
|
||||
length specifier) will be treated as \var{AnsiString}, and the compiler
|
||||
@ -327,7 +327,7 @@ The \file{system} unit is compiled without ansistrings, all its functions accept
|
||||
shortstring arguments. The same is true for all RTL units, except the
|
||||
\file{sysutils} unit, which is compiled with ansistrings.
|
||||
|
||||
\subsection{\var{\$HINT} : Generate hint message}
|
||||
\subsection{\var{\protect\$HINT} : Generate hint message}
|
||||
|
||||
If the generation of hints is turned on, through the \var{-vh} command-line
|
||||
option or the \var{\{\$HINTS ON\}} directive, then
|
||||
@ -338,14 +338,14 @@ will display a hint message when the compiler encounters it.
|
||||
|
||||
By default, no hints are generated.
|
||||
|
||||
\subsection{\var{\$HINTS} : Emit hints}
|
||||
\subsection{\var{\protect\$HINTS} : Emit hints}
|
||||
|
||||
\var{\{\$HINTS ON\}} switches the generation of hints on.
|
||||
\var{\{\$HINTS OFF\}} switches the generation of hints off.
|
||||
Contrary to the command-line option \var{-vh} this is a local switch,
|
||||
this is useful for checking parts of the code.
|
||||
|
||||
\subsection{\var{\$IF} : Start conditional compilation}
|
||||
\subsection{\var{\protect\$IF} : Start conditional compilation}
|
||||
|
||||
The directive \var{\{\$IF expr\}} will continue the compilation
|
||||
if the boolean expression \var{expr} evaluates to \var{true}. If the
|
||||
@ -359,7 +359,7 @@ the source cannot be used. Macros and symbols may be used, however.
|
||||
More information on this can be found in the section about
|
||||
conditionals.
|
||||
|
||||
\subsection{\var{\$IFDEF Name} : Start conditional compilation}
|
||||
\subsection{\var{\protect\$IFDEF Name} : Start conditional compilation}
|
||||
|
||||
If the symbol \var{Name} is not defined then the \var{\{\$IFDEF name\}}
|
||||
will skip the compilation of the text that follows it to the first
|
||||
@ -367,7 +367,7 @@ will skip the compilation of the text that follows it to the first
|
||||
If \var{Name} is defined, then compilation continues as if the directive
|
||||
wasn't there.
|
||||
|
||||
\subsection{\var{\$IFNDEF} : Start conditional compilation}
|
||||
\subsection{\var{\protect\$IFNDEF} : Start conditional compilation}
|
||||
|
||||
If the symbol \var{Name} is defined then the \var{\{\$IFNDEF name\}}
|
||||
will skip the compilation of the text that follows it to the first
|
||||
@ -375,7 +375,7 @@ will skip the compilation of the text that follows it to the first
|
||||
If it is not defined, then compilation continues as if the directive
|
||||
wasn't there.
|
||||
|
||||
\subsection{\var{\$IFOPT} : Start conditional compilation}
|
||||
\subsection{\var{\protect\$IFOPT} : Start conditional compilation}
|
||||
|
||||
The \var{\{\$IFOPT switch\}} will compile the text that follows it if the
|
||||
switch \var{switch} is currently in the specified state.
|
||||
@ -394,7 +394,7 @@ Will compile the writeln statement if generation of type information is on.
|
||||
i.e. \var{\{\$IFOPT TYPEINFO\}} will not be accepted.
|
||||
\end{remark}
|
||||
|
||||
\subsection{\var{\$INFO} : Generate info message}
|
||||
\subsection{\var{\protect\$INFO} : Generate info message}
|
||||
|
||||
If the generation of info is turned on, through the \var{-vi} command-line
|
||||
option, then
|
||||
@ -406,7 +406,7 @@ will display an info message when the compiler encounters it.
|
||||
This is useful in conjunction with the \var{\{\$IFDEF\}} directive, to show
|
||||
information about which part of the code is being compiled.
|
||||
|
||||
\subsection{\var{\$INLINE} : Allow inline code.}
|
||||
\subsection{\var{\protect\$INLINE} : Allow inline code.}
|
||||
|
||||
The \var{\{\$INLINE ON\}} directive tells the compiler that the \var{Inline}
|
||||
procedure modifier should be allowed. Procedures that are declared inline
|
||||
@ -419,7 +419,7 @@ By default, \var{Inline} procedures are not allowed. This directive must be
|
||||
specified to use inlined code. The directive is equivalent to the command-line
|
||||
switch \var{-Si}. For more information on inline routines, consult the \refref.
|
||||
|
||||
\subsection{\var{\$I} or \var{\$IOCHECKS} : Input/Output checking}
|
||||
\subsection{\var{\protect\$I} or \var{\protect\$IOCHECKS} : Input/Output checking}
|
||||
|
||||
The \var{\{\$I-\}} or \var{\{\$IOCHECKS OFF\}} directive tells the compiler
|
||||
not to generate input/output checking code in the program. By default, the
|
||||
@ -454,7 +454,7 @@ See the \var{IOResult} function explanation in \refref for a
|
||||
detailed description of the possible errors that can occur when using
|
||||
input/output checking.
|
||||
|
||||
\subsection{\var{\$I} or \var{\$INCLUDE} : Include file }
|
||||
\subsection{\var{\protect\$I} or \var{\protect\$INCLUDE} : Include file }
|
||||
|
||||
The \var{\{\$I filename\}} or \var{\{\$INCLUDE filename\}} directive
|
||||
tells the compiler to read further statements from the file \var{filename}.
|
||||
@ -484,16 +484,27 @@ path.
|
||||
Directories can be added to the include file search path with the \var{-I}
|
||||
command-line option.
|
||||
|
||||
\subsection{\var{\$I} or \var{\$INCLUDE} : Include compiler info}
|
||||
\subsection{\var{\protect\$I} or \var{\protect\$INCLUDE} : Include compiler info}
|
||||
|
||||
In this form:
|
||||
\begin{verbatim}
|
||||
{$INCLUDE %xxx%}
|
||||
\end{verbatim}
|
||||
where \var{xxx} is one of \var{TIME}, \var{DATE}, \var{FPCVERSION} or
|
||||
\var{FPCTARGET}, will generate a macro with the value of these things.
|
||||
If \var{xxx} is none of the above, then it is assumed to be the value of
|
||||
an environment variable. It's value will be fetched, and inserted in the code
|
||||
where \var{xxx} is one of the following:
|
||||
\begin{description}
|
||||
\item[DATE] Inserts the current date.
|
||||
\item[FPCTARGET] Inserts the target CPU name. (deprecated, use
|
||||
\var{FPCTARGETCPU})
|
||||
\item[FPCTARGETCPU] Inserts the target CPU name.
|
||||
\item[FPCTARGETOS] Inserts the target OS name.
|
||||
\item[FPCVERSION] Current compiler version number.
|
||||
\item[FILE] Filename in which the directive is found.
|
||||
\item[LINE] Linenumer on which the directive is found.
|
||||
\item[TIME] Current time.
|
||||
\end{description}
|
||||
If \var{xxx} is none of the above, then it is assumed to be the name of
|
||||
an environment variable. Its value will be fetched.
|
||||
As a reult, this will generate a macro with the value of these things,
|
||||
as if it were a string.
|
||||
|
||||
For example, the following program
|
||||
@ -519,7 +530,7 @@ Target CPU: i386
|
||||
\end{verbatim}
|
||||
% Assembler type
|
||||
|
||||
\subsection{\var{\$I386\_XXX} : Specify assembler format (Intel 80x86 only)}
|
||||
\subsection{\var{\protect\$I386\_XXX} : Specify assembler format (Intel 80x86 only)}
|
||||
|
||||
This switch selects the assembler reader. \var{\{\$I386\_XXX\}}
|
||||
has the same effect as \var{\{\$ASMMODE XXX\}}, \sees{AsmReader}
|
||||
@ -527,7 +538,7 @@ has the same effect as \var{\{\$ASMMODE XXX\}}, \sees{AsmReader}
|
||||
This switch is deprecated, the \var{\{\$ASMMODE XXX\}} directive should
|
||||
be used instead.
|
||||
|
||||
\subsection{\var{\$L} or \var{\$LINK} : Link object file}
|
||||
\subsection{\var{\protect\$L} or \var{\protect\$LINK} : Link object file}
|
||||
|
||||
The \var{\{\$L filename\}} or \var{\{\$LINK filename\}} directive
|
||||
tells the compiler that the file \file{filename} should be linked to
|
||||
@ -560,7 +571,7 @@ they will be passed to the linker, in the order that they were specified on
|
||||
the command line, just before the names of the object files that must be
|
||||
linked.
|
||||
|
||||
\subsection{\var{\$LINKLIB} : Link to a library}
|
||||
\subsection{\var{\protect\$LINKLIB} : Link to a library}
|
||||
\label{se:linklib}
|
||||
|
||||
The \var{\{\$LINKLIB name\}} will link to a library \file{name}.
|
||||
@ -595,7 +606,7 @@ above unit, and specify \var{-k-lc} on the command-line:
|
||||
ppc386 -k-lc foo.pp
|
||||
\end{verbatim}
|
||||
|
||||
\subsection{\var{\$M} or \var{\$TYPEINFO} : Generate type info}
|
||||
\subsection{\var{\protect\$M} or \var{\protect\$TYPEINFO} : Generate type info}
|
||||
|
||||
For classes that are compiled in the \var{\{\$M+\}} or \var{\{\$TYPEINFO ON\}}
|
||||
state, the compiler will generate Run-Time Type Information (RTTI). All
|
||||
@ -615,7 +626,7 @@ The streaming system implemented by \fpc requires that all
|
||||
streamable components be descendent from \var{TPersistent}.
|
||||
\end{remark}
|
||||
|
||||
\subsection{\var{\$MACRO} : Allow use of macros.}
|
||||
\subsection{\var{\protect\$MACRO} : Allow use of macros.}
|
||||
|
||||
In the \var{\{\$MACRO ON\}} state, the compiler allows to use C-style
|
||||
(although not as elaborate) macros. Macros provide a means for simple text
|
||||
@ -625,7 +636,7 @@ switch \var{-Sm}.
|
||||
|
||||
By default, macros are not allowed.
|
||||
|
||||
\subsection{\var{\$MAXFPUREGISTERS} : Maximum number of FPU registers for variables (Intel 80x86 only)}
|
||||
\subsection{\var{\protect\$MAXFPUREGISTERS} : Maximum number of FPU registers for variables (Intel 80x86 only)}
|
||||
|
||||
The \var{\{\$MAXFPUREGISTERS XXX\}} directive tells the compiler how much floating point
|
||||
variables can be kept in the floating point processor registers. This switch is ignored
|
||||
@ -650,7 +661,7 @@ Currently this can be in the range 0 to 7.
|
||||
\begin{remark}This directive is valid until the end of the current procedure.
|
||||
\end{remark}
|
||||
|
||||
\subsection{\var{\$MESSAGE} : Generate info message}
|
||||
\subsection{\var{\protect\$MESSAGE} : Generate info message}
|
||||
|
||||
If the generation of info is turned on, through the \var{-vi} command-line
|
||||
option, then
|
||||
@ -661,7 +672,7 @@ will display an info message when the compiler encounters it. The effect is
|
||||
the same as the \var{\{\$INFO\}} directive.
|
||||
|
||||
|
||||
\subsection{\var{\$MMX} : Intel MMX support (Intel 80x86 only)}
|
||||
\subsection{\var{\protect\$MMX} : Intel MMX support (Intel 80x86 only)}
|
||||
|
||||
\fpc supports optimization for the \textbf{MMX} Intel
|
||||
processor (see also chapter \ref{ch:MMXSupport}).
|
||||
@ -709,7 +720,7 @@ end.
|
||||
See, however, the chapter on MMX (\ref{ch:MMXSupport}) for more information
|
||||
on this topic.
|
||||
|
||||
\subsection{\var{\$NOTE} : Generate note message}
|
||||
\subsection{\var{\protect\$NOTE} : Generate note message}
|
||||
|
||||
If the generation of notes is turned on, through the \var{-vn} command-line
|
||||
option or the \var{\{\$NOTES ON\}} directive, then
|
||||
@ -719,7 +730,7 @@ option or the \var{\{\$NOTES ON\}} directive, then
|
||||
will display a note message when the compiler encounters it.
|
||||
|
||||
|
||||
\subsection{\var{\$NOTES} : Emit notes}
|
||||
\subsection{\var{\protect\$NOTES} : Emit notes}
|
||||
|
||||
\var{\{\$NOTES ON\}} switches the generation of notes on.
|
||||
\var{\{\$NOTES OFF\}} switches the generation of notes off.
|
||||
@ -728,7 +739,7 @@ this is useful for checking parts of the code.
|
||||
|
||||
By default, \var{\{\$NOTES\}} is off.
|
||||
|
||||
\subsection{\var{\$OUTPUT\_FORMAT} : Specify the output format}
|
||||
\subsection{\var{\protect\$OUTPUT\_FORMAT} : Specify the output format}
|
||||
|
||||
\var{\{\$OUTPUT\_FORMAT format\}} has the same functionality as the \var{-A}
|
||||
command-line option: it tells the compiler what kind of object file must be
|
||||
@ -753,7 +764,7 @@ PECOFF & PECOFF object file (Win32).\\
|
||||
TASM & Tasm assembler file.\\
|
||||
\end{FPCltable}
|
||||
|
||||
\subsection{\var{\$P} or \var{\$OPENSTRINGS} : Use open strings}
|
||||
\subsection{\var{\protect\$P} or \var{\protect\$OPENSTRINGS} : Use open strings}
|
||||
|
||||
If this switch is on, all function or procedure parameters of type string
|
||||
are considered to be open string parameters; this parameter only has effect
|
||||
@ -766,7 +777,7 @@ with the \var{High(P)} call.
|
||||
|
||||
Default the use of openstrings is off.
|
||||
|
||||
\subsection{\var{\$PACKENUM} : Minimum enumeration type size}
|
||||
\subsection{\var{\protect\$PACKENUM} : Minimum enumeration type size}
|
||||
|
||||
This directive tells the compiler the minimum number of bytes it should
|
||||
use when storing enumerated types. It is of the following form:
|
||||
@ -798,7 +809,7 @@ Type
|
||||
\end{verbatim}
|
||||
|
||||
|
||||
\subsection{\var{\$PACKRECORDS} : Alignment of record elements}
|
||||
\subsection{\var{\protect\$PACKRECORDS} : Alignment of record elements}
|
||||
|
||||
This directive controls the byte alignment of the elements in a record,
|
||||
object or class type definition.
|
||||
@ -823,7 +834,7 @@ More information on this and an example program can be found in the reference
|
||||
guide, in the section about record types.
|
||||
|
||||
|
||||
\subsection{\var{\$Q} \var{\$OVERFLOWCHECKS}: Overflow checking}
|
||||
\subsection{\var{\protect\$Q} \var{\protect\$OVERFLOWCHECKS}: Overflow checking}
|
||||
The \var{\{\$Q+\}} or \var{\{\$OVERFLOWCHECKS ON\}} directive turns on
|
||||
integer overflow checking. This means that the compiler inserts code
|
||||
to check for overflow when doing computations with integers.
|
||||
@ -842,7 +853,7 @@ generation.
|
||||
The generation of overflow checking code can also be controlled
|
||||
using the \var{-Co} command line compiler option (see \userref).
|
||||
|
||||
\subsection{\var{\$R} or \var{\$RANGECHECKS} : Range checking}
|
||||
\subsection{\var{\protect\$R} or \var{\protect\$RANGECHECKS} : Range checking}
|
||||
|
||||
By default, the compiler doesn't generate code to check the ranges of array
|
||||
indices, enumeration types, subrange types, etc. Specifying the
|
||||
@ -861,14 +872,14 @@ will be generated.
|
||||
when the call is compiled in \var{\{\$R+\}} mode.
|
||||
\end{remark}
|
||||
|
||||
\subsection{\var{\$SATURATION} : Saturation operations (Intel 80x86 only)}
|
||||
\subsection{\var{\protect\$SATURATION} : Saturation operations (Intel 80x86 only)}
|
||||
|
||||
This works only on the intel compiler, and MMX support must be on
|
||||
(\var{\{\$MMX +\}}) for this to have any effect. See the section on
|
||||
saturation support (\sees{SaturationSupport}) for more information
|
||||
on the effect of this directive.
|
||||
|
||||
\subsection{\var{\$SMARTLINK} : Use smartlinking}
|
||||
\subsection{\var{\protect\$SMARTLINK} : Use smartlinking}
|
||||
|
||||
A unit that is compiled in the \var{\{\$SMARTLINK ON\}} state will be
|
||||
compiled in such a way that it can be used for smartlinking. This means that
|
||||
@ -897,7 +908,7 @@ Interface
|
||||
|
||||
This directive is equivalent to the \var{-Cx} command-line switch.
|
||||
|
||||
\subsection{\var{\$STATIC} : Allow use of \var{Static} keyword.}
|
||||
\subsection{\var{\protect\$STATIC} : Allow use of \var{Static} keyword.}
|
||||
|
||||
If you specify the \var{\{\$STATIC ON\}} directive, then \var{Static}
|
||||
methods are allowed for objects. \var{Static} objects methods do not require
|
||||
@ -909,7 +920,7 @@ By default, the address operator returns an untyped pointer.
|
||||
|
||||
This directive is equivalent to the \var{-St} command-line option.
|
||||
|
||||
\subsection{\var{\$STOP} : Generate fatal error message}
|
||||
\subsection{\var{\protect\$STOP} : Generate fatal error message}
|
||||
|
||||
The following code
|
||||
\begin{verbatim}
|
||||
@ -920,7 +931,7 @@ The compiler will immediatly stop the compilation process.
|
||||
|
||||
It has the same effect as the \var{\{\$FATAL\}} directive.
|
||||
|
||||
\subsection{\var{\$T} or \var{\$TYPEDADDRESS} : Typed address operator (@)}
|
||||
\subsection{\var{\protect\$T} or \var{\protect\$TYPEDADDRESS} : Typed address operator (@)}
|
||||
|
||||
In the \var{\{\$T+\}} or \var{\{\$TYPEDADDRESS ON\}} state the @ operator,
|
||||
when applied to a variable, returns a result of type \var{\^{}T}, if the
|
||||
@ -928,7 +939,7 @@ type of the variable is \var{T}. In the \var{\{\$T-\}} state, the result is
|
||||
always an untyped pointer, which is assignment compatible with all other
|
||||
pointer types.
|
||||
|
||||
\subsection{\var{\$UNDEF} : Undefine a symbol}
|
||||
\subsection{\var{\protect\$UNDEF} : Undefine a symbol}
|
||||
|
||||
The directive
|
||||
\begin{verbatim}
|
||||
@ -938,13 +949,13 @@ un-defines the symbol \var{name} if it was previously defined.
|
||||
\var{Name} is case insensitive.
|
||||
|
||||
|
||||
\subsection{\var{\$V} or \var{\$VARSTRINGCHECKS} : Var-string checking}
|
||||
\subsection{\var{\protect\$V} or \var{\protect\$VARSTRINGCHECKS} : Var-string checking}
|
||||
|
||||
When in the \var{+} or \var{ON} state, the compiler checks that strings
|
||||
passed as parameters are of the same, identical, string type as the declared
|
||||
parameters of the procedure.
|
||||
|
||||
\subsection{\var{\$WAIT} : Wait for enter key press}
|
||||
\subsection{\var{\protect\$WAIT} : Wait for enter key press}
|
||||
|
||||
If the compiler encounters a
|
||||
\begin{verbatim}
|
||||
@ -961,7 +972,7 @@ before waiting for a keypress.
|
||||
compilation processes. It should be used for debugging purposes only.
|
||||
\end{remark}
|
||||
|
||||
\subsection{\var{\$WARNING} : Generate warning message}
|
||||
\subsection{\var{\protect\$WARNING} : Generate warning message}
|
||||
|
||||
If the generation of warnings is turned on, through the \var{-vw}
|
||||
command-line option or the \var{\{\$WARNINGS ON\}} directive, then
|
||||
@ -970,7 +981,7 @@ command-line option or the \var{\{\$WARNINGS ON\}} directive, then
|
||||
\end{verbatim}
|
||||
will display a warning message when the compiler encounters it.
|
||||
|
||||
\subsection{\var{\$WARNINGS} : Emit warnings}
|
||||
\subsection{\var{\protect\$WARNINGS} : Emit warnings}
|
||||
|
||||
\var{\{\$WARNINGS ON\}} switches the generation of warnings on.
|
||||
\var{\{\$WARNINGS OFF\}} switches the generation of warnings off.
|
||||
@ -979,7 +990,7 @@ is a local switch, this is useful for checking parts of your code.
|
||||
|
||||
By default, no warnings are emitted.
|
||||
|
||||
\subsection{\var{\$X} or \var{\$EXTENDEDSYNTAX} : Extended syntax}
|
||||
\subsection{\var{\protect\$X} or \var{\protect\$EXTENDEDSYNTAX} : Extended syntax}
|
||||
|
||||
Extended syntax allows you to drop the result of a function. This means that
|
||||
you can use a function call as if it were a procedure. Standard this feature
|
||||
@ -1016,7 +1027,7 @@ Global directives affect the whole of the compilation process. That is why
|
||||
they also have a command-line counterpart. The command-line counterpart is
|
||||
given for each of the directives.
|
||||
|
||||
\subsection{\var{\$APPTYPE} : Specify type of application (Win32 and AmigaOS only)}
|
||||
\subsection{\var{\protect\$APPTYPE} : Specify type of application (Win32 and AmigaOS only)}
|
||||
|
||||
The \var{\{\$APPTYPE XXX\}} accepts one argument that can have two possible
|
||||
values: \var{GUI} or \var{CONSOLE}. It is used to tell the \windows
|
||||
@ -1042,7 +1053,7 @@ Const
|
||||
contains \var{True} if the application is a console application, \var{False}
|
||||
if the application is a GUI application.
|
||||
|
||||
\subsection{\var{\$D} or \var{\$DEBUGINFO} : Debugging symbols}
|
||||
\subsection{\var{\protect\$D} or \var{\protect\$DEBUGINFO} : Debugging symbols}
|
||||
|
||||
When this switch is on,
|
||||
the compiler inserts GNU debugging information in
|
||||
@ -1051,12 +1062,12 @@ switch \var{-g}.
|
||||
|
||||
By default, insertion of debugging information is off.
|
||||
|
||||
\subsection{\var{\$DESCRIPTION} : Application description}
|
||||
\subsection{\var{\protect\$DESCRIPTION} : Application description}
|
||||
|
||||
This switch is recognised for compatibility only, but is ignored completely
|
||||
by the compiler. At a later stage, this switch may be activated.
|
||||
|
||||
\subsection{\var{\$E} : Emulation of coprocessor}
|
||||
\subsection{\var{\protect\$E} : Emulation of coprocessor}
|
||||
|
||||
This directive controls the emulation of the coprocessor. There is no
|
||||
command-line counterpart for this directive.
|
||||
@ -1088,12 +1099,12 @@ For unix targets, floating point emulation (if required) is handled
|
||||
by the operating system, and by default it is off.
|
||||
\end{remark}
|
||||
|
||||
\subsection{\var{\$G} : Generate 80286 code}
|
||||
\subsection{\var{\protect\$G} : Generate 80286 code}
|
||||
|
||||
This option is recognised for Turbo Pascal compatibility, but is ignored,
|
||||
since the compiler works only on 32-bit and 64-bit processors.
|
||||
|
||||
\subsection{\var{\$INCLUDEPATH} : Specify include path.}
|
||||
\subsection{\var{\protect\$INCLUDEPATH} : Specify include path.}
|
||||
|
||||
This option serves to specify the include path, where the compiler looks for
|
||||
include files. \var{\{\$INCLUDEPATH XXX\}} will add \var{XXX} to the include
|
||||
@ -1120,13 +1131,13 @@ paths, as in the example above. Only use this directive if you are certain
|
||||
of the places where the files reside. If you are not sure, it is better
|
||||
practice to use makefiles and makefile variables.
|
||||
|
||||
\subsection{\var{\$L} or \var{\$LOCALSYMBOLS} : Local symbol information}
|
||||
\subsection{\var{\protect\$L} or \var{\protect\$LOCALSYMBOLS} : Local symbol information}
|
||||
|
||||
This switch (not to be confused with the \var{\{\$L file\}} file linking
|
||||
directive) is recognised for Turbo Pascal compatibility, but is ignored.
|
||||
Generation of symbol information is controlled by the \var{\$D} switch.
|
||||
|
||||
\subsection{\var{\$LIBRARYPATH} : Specify library path.}
|
||||
\subsection{\var{\protect\$LIBRARYPATH} : Specify library path.}
|
||||
|
||||
This option serves to specify the library path, where the linker looks for
|
||||
static or dynamic libraries. \var{\{\$LIBRARYPATH XXX\}} will add \var{XXX}
|
||||
@ -1151,7 +1162,7 @@ directory structure may be different. In general it would be fair to say
|
||||
that you should avoid using this directive. If you are not sure, it is better
|
||||
practice to use makefiles and makefile variables.
|
||||
|
||||
\subsection{\var{\$M} or \var{\$MEMORY} : Memory sizes}
|
||||
\subsection{\var{\protect\$M} or \var{\protect\$MEMORY} : Memory sizes}
|
||||
|
||||
This switch can be used to set the heap and stacksize. It's format is as
|
||||
follows:
|
||||
@ -1164,7 +1175,7 @@ second the size of the heap. (Stack setting is ignored under \linux, \netbsd and
|
||||
The two numbers can be set on the command line using the \var{-Ch}
|
||||
and \var{-Cs} switches.
|
||||
|
||||
\subsection{\var{\$MODE} : Set compiler compatibility mode}
|
||||
\subsection{\var{\protect\$MODE} : Set compiler compatibility mode}
|
||||
|
||||
The \var{\{\$MODE\}} sets the compatibility mode of the compiler. This
|
||||
is equivalent to setting one of the command-line options \var{-So},
|
||||
@ -1188,18 +1199,18 @@ option.
|
||||
For an exact description of each of these modes, see appendix \ref{ch:AppD},
|
||||
on page \pageref{ch:AppD}.
|
||||
|
||||
\subsection{\var{\$N} : Numeric processing }
|
||||
\subsection{\var{\protect\$N} : Numeric processing }
|
||||
|
||||
This switch is recognised for Turbo Pascal compatibility, but is otherwise
|
||||
ignored, since the compiler always uses the coprocessor for floating point
|
||||
mathematics.
|
||||
|
||||
\subsection{\var{\$O} : Overlay code generation }
|
||||
\subsection{\var{\protect\$O} : Overlay code generation }
|
||||
|
||||
This switch is recognised for Turbo Pascal compatibility, but is otherwise
|
||||
ignored.
|
||||
|
||||
\subsection{\var{\$OBJECTPATH} : Specify object path.}
|
||||
\subsection{\var{\protect\$OBJECTPATH} : Specify object path.}
|
||||
|
||||
This option serves to specify the object path, where the compiler looks for
|
||||
object files. \var{\{\$OBJECTPATH XXX\}} will add \var{XXX} to the object
|
||||
@ -1226,7 +1237,7 @@ paths, as in the example above. Only use this directive if you are certain
|
||||
of the places where the files reside. If you are not sure, it is better
|
||||
practice to use makefiles and makefile variables.
|
||||
|
||||
\subsection{\var{\$S} : Stack checking}
|
||||
\subsection{\var{\protect\$S} : Stack checking}
|
||||
|
||||
The \var{\{\$S+\}} directive tells the compiler to generate stack checking
|
||||
code. This generates code to check if a stack overflow occurred, i.e. to see
|
||||
@ -1241,7 +1252,7 @@ The command-line compiler switch \var{-Ct} has the same effect as the
|
||||
|
||||
By default, no stack checking is performed.
|
||||
|
||||
\subsection{\var{\$UNITPATH} : Specify unit path.}
|
||||
\subsection{\var{\protect\$UNITPATH} : Specify unit path.}
|
||||
|
||||
This option serves to specify the unit path, where the compiler looks for
|
||||
unit files. \var{\{\$UNITPATH XXX\}} will add \var{XXX} to the unit
|
||||
@ -1268,7 +1279,7 @@ paths, as in the example above. Only use this directive if you are certain
|
||||
of the places where the files reside. If you are not sure, it is better
|
||||
practice to use makefiles and makefile variables.
|
||||
|
||||
\subsection{\var{\$W} or \var{\$STACKFRAMES} : Generate stackframes}
|
||||
\subsection{\var{\protect\$W} or \var{\protect\$STACKFRAMES} : Generate stackframes}
|
||||
|
||||
The \var{\{\$W\}} switch directove controls the generation of stackframes.
|
||||
In the on state, the compiler will generate a
|
||||
@ -1285,7 +1296,7 @@ a \var{asm \dots end;} block.
|
||||
\end{itemize}
|
||||
If these conditions are satisfied, the stack frame will be omitted.
|
||||
|
||||
\subsection{\var{\$Y} or \var{\$REFERENCEINFO} : Insert Browser information}
|
||||
\subsection{\var{\protect\$Y} or \var{\protect\$REFERENCEINFO} : Insert Browser information}
|
||||
|
||||
This switch controls the generation of browser inforation. It is recognized
|
||||
for compatibility with Turbo Pascal and Delphi only, as Browser information
|
||||
|
Loading…
Reference in New Issue
Block a user