mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-24 11:09:15 +02:00
+ support for octal included and Include/Exclude
This commit is contained in:
parent
fcd3bf3b1c
commit
e1031b6b30
98
docs/ref.tex
98
docs/ref.tex
@ -353,15 +353,24 @@ The following diagram gives the basic syntax for identifiers.
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% Numbers
|
||||
\section{Numbers}
|
||||
Numbers are denoted in decimal notation. Real (or decimal) numbers are
|
||||
written using engeneering notation (e.g. \var{0.314E1}).
|
||||
\fpc supports hexadecimal format the same way as Turbo Pascal does. To
|
||||
specify a constant value in hexadecimal format, prepend it with a dollar
|
||||
Numbers are by default denoted in decimal notation.
|
||||
Real (or decimal) numbers are written using engineering or scientific
|
||||
notation (e.g. \var{0.314E1}).
|
||||
|
||||
For integer type constants, \fpc supports 4 formats:
|
||||
\begin{enumerate}
|
||||
\item Normal, decimal format (base 10). This is the standard format.
|
||||
\item Hexadecimal format (base 16), in the same way as Turbo Pascal does.
|
||||
To specify a constant value in hexadecimal format, prepend it with a dollar
|
||||
sign (\var{\$}). Thus, the hexadecimal \var{\$FF} equals 255 decimal.
|
||||
In addition to the support for hexadecimal notation, \fpc also supports
|
||||
binary notation. A binary number can be specified by preceding it with a
|
||||
percent sign (\var{\%}). Thus, \var{255} can be specified in binary notation
|
||||
as \var{\%11111111}.
|
||||
Note that case is insignificant when using hexadecimal constants.
|
||||
\item As of version 1.0.7, Octal format (base 8) is also supported.
|
||||
To specify a constant in octal format, prepend it with a ampersand (\&).
|
||||
For instance 15 is specified in octal notation as \var{\&17}.
|
||||
\item Binary notation (base 2). A binary number can be specified
|
||||
by preceding it with a percent sign (\var{\%}). Thus, \var{255} can be
|
||||
specified in binary notation as \var{\%11111111}.
|
||||
\end{enumerate}
|
||||
The following diagrams show the syntax for numbers.
|
||||
\input{syntax/numbers.syn}
|
||||
|
||||
@ -4941,6 +4950,7 @@ All things connected to string handling.
|
||||
\procref{Insert}{Insert one string in another}
|
||||
\funcref{Length}{Return length of string}
|
||||
\funcref{Lowercase}{Convert string to all-lowercase}
|
||||
\funcref{OctStr}{Construct octal representation of integer}
|
||||
\funcref{Pos}{Calculate position of one string in another}
|
||||
\procref{SetLength}{Set length of a string}
|
||||
\procref{Str}{Convert number to string representation}
|
||||
@ -5096,7 +5106,7 @@ bits are needed, i.e. \var{cnt=32}
|
||||
\Errors
|
||||
None.
|
||||
\SeeAlso
|
||||
\seep{Str},\seep{Val},\seef{HexStr}
|
||||
\seep{Str},\seep{Val},\seef{HexStr}, \seef{OctStr}
|
||||
\end{function}
|
||||
|
||||
\FPCexample{ex82}
|
||||
@ -5531,6 +5541,28 @@ is opened by the program.
|
||||
|
||||
\FPCexample{ex20}
|
||||
|
||||
\begin{procedure}{Exclude}
|
||||
\Declaration
|
||||
Procedure Exclude (Var S : Any set type; E : Set element);
|
||||
\Description
|
||||
\var{Exclude} removes \var{E} from the set \var{S} if it is
|
||||
included inthe set. E should be of the same type as the base type
|
||||
of the set \var{S}.
|
||||
|
||||
Thus, the two following statements do the same thing:
|
||||
\begin{verbatim}
|
||||
S:=S-[E];
|
||||
Exclude(S,E);
|
||||
\end{verbatim}
|
||||
\Errors
|
||||
If the type of the element \var{E} is not equal to the base type of the
|
||||
set \var{S}, the compiler will generate an error.
|
||||
\SeeAlso
|
||||
\seep{Include}
|
||||
\end{procedure}
|
||||
|
||||
\FPCexample{ex111}
|
||||
|
||||
\begin{procedure}{Exit}
|
||||
\Declaration
|
||||
Procedure Exit ([Var X : return type )];
|
||||
@ -5771,9 +5803,10 @@ None.
|
||||
\begin{function}{HexStr}
|
||||
\Declaration
|
||||
Function HexStr (Value : longint; cnt : byte) : String;
|
||||
Function HexStr (Value : int64; cnt : byte) : String;
|
||||
\Description
|
||||
\var{HexStr} returns a string with the hexadecimal representation
|
||||
of \var{Value}. The string has at most \var{cnt} charaters.
|
||||
of \var{Value}. The string has exactly \var{cnt} charaters.
|
||||
(i.e. only the \var{cnt} rightmost nibbles are taken into account)
|
||||
To have a complete representation of a Longint-type value, 8
|
||||
nibbles are needed, i.e. \var{cnt=8}.
|
||||
@ -5844,6 +5877,28 @@ error, when an attempt is made to increase \var{X} over its maximum value.
|
||||
|
||||
\FPCexample{ex32}
|
||||
|
||||
\begin{procedure}{Include}
|
||||
\Declaration
|
||||
Procedure Include (Var S : Any set type; E : Set element);
|
||||
\Description
|
||||
\var{Include} includes \var{E} in the set \var{S} if it is
|
||||
not yet part of the set. E should be of the same type as the base type
|
||||
of the set \var{S}.
|
||||
|
||||
Thus, the two following statements do the same thing:
|
||||
\begin{verbatim}
|
||||
S:=S+[E];
|
||||
Include(S,E);
|
||||
\end{verbatim}
|
||||
\Errors
|
||||
If the type of the element \var{E} is not equal to the base type of the
|
||||
set \var{S}, the compiler will generate an error.
|
||||
\SeeAlso
|
||||
\seep{Exclude}
|
||||
\end{procedure}
|
||||
|
||||
For an example, see \seep{Exclude}
|
||||
|
||||
\begin{function}{IndexByte}
|
||||
\Declaration
|
||||
function IndexByte(var buf;len:longint;b:byte):longint;
|
||||
@ -6247,6 +6302,21 @@ None.
|
||||
|
||||
\FPCexample{ex43}
|
||||
|
||||
\begin{function}{OctStr}
|
||||
\Declaration
|
||||
Function OctStr (Value : longint; cnt : byte) : String;
|
||||
Function OctStr (Value : int64; cnt : byte) : String;
|
||||
\Description
|
||||
\var{OctStr} returns a string with the octal representation
|
||||
of \var{Value}. The string has exactly \var{cnt} charaters.
|
||||
\Errors
|
||||
None.
|
||||
\SeeAlso
|
||||
\seep{Str}, \seep{Val}, \seef{BinStr}, \seef{HexStr}
|
||||
\end{function}
|
||||
|
||||
\FPCexample{ex112}
|
||||
|
||||
\begin{function}{Ofs}
|
||||
\Declaration
|
||||
Function Ofs (Var X) : Longint;
|
||||
@ -7010,7 +7080,11 @@ value, and stores this value in the variable \var{V}, which
|
||||
can be of type \var{Longint}, \var{Real} and \var{Byte}.
|
||||
If the conversion isn't succesfull, then the parameter \var{Code} contains
|
||||
the index of the character in \var{S} which prevented the conversion.
|
||||
The string \var{S} isn't allowed to contain spaces.
|
||||
The string \var{S} is allowed to contain spaces in the beginning.
|
||||
|
||||
The string \var{S} can contain a number in decimal, hexadecimal, binary
|
||||
or octal format, as described in the language reference.
|
||||
|
||||
\Errors
|
||||
If the conversion doesn't succeed, the value of \var{Code} indicates the
|
||||
position where the conversion went wrong.
|
||||
@ -7449,4 +7523,4 @@ table \var{TableIndex} with index \var{StringIndex}.
|
||||
% The index.
|
||||
%
|
||||
\printindex
|
||||
\end{document}
|
||||
\end{document}
|
Loading…
Reference in New Issue
Block a user