Index

Abstract, 74
Address, 155
Alias, 197
Ansistring, 31, 35
Array, 38, 188, 189
    Constructor, 43
    Dynamic, 40
    Of const, 189
    Static, 39
array, 55
Array constructor, 43
Asm, 181
Assembler, 181, 196, 230

block, 219
Boolean, 25

Case, 167
cdecl, 198
Char, 29
Class, 76, 84
Class helpers, 128
Classes, 76
CodePage, 31, 33
    Conversion, 33
COM, 55, 105
Comments, 12
Comp, 28
Const, 22
    String, 22
Constants, 20
    Ordinary, 20
    String, 18, 21, 35
    Typed, 21
Constructor, 70, 81, 152
CORBA, 55, 105
Currency, 28

Delphi
    Compatibility, 113
    Syntax, 113
    Type overloads, 114
Destructor, 70, 82
Directives
    Hint, 16
Dispatch, 89
DispatchStr, 89
Double, 28

else, 167, 168
except, 226, 228
Exception, 224
Exceptions, 224
    Catching, 224, 226
    Classes, 228
    Handling, 227, 228
    Raising, 224
export, 198
Expression, 178, 179
Expressions, 148
Extended, 28
Extended records, 123
External, 195
external, 60, 196

Fields, 45, 68
File, 48
finally, 227, 228
For, 170, 171
    downto, 170
    in, 171
    to, 170
Forward, 51, 194
Function, 183
Functions, 182
    Assembler, 196, 230
    External, 195
    Forward, 194
    Modifiers, 196
    Overloaded, 194

Generics, 107
    Overloads, 114
    Type Restrictions, 111

Hint directives, 16

Identifiers, 15
If, 168
index, 93, 196
Inherited, 84
inherited, 73, 96
inline, 199
interface, 100
Interfaces, 55, 56, 100
    COM, 105
    CORBA, 105
    Implementations, 102
interrupt, 199
iocheck, 199

Labels, 18
Libraries, 222
library, 222
local, 199

Message, 89
message, 89
Methods, 71, 83
    Abstract, 74
    Class, 84
    Message, 88
    Static, 72, 87
    Virtual, 73, 74, 83
Modifiers, 14, 196, 203
    Alias, 197
    cdecl, 198
    export, 198
    inline, 199
    interrupt, 199
    iocheck, 199
    local, 199
    noreturn, 200
    nostackframe, 200
    overload, 200
    pascal, 201
    public, 201
    register, 202
    safecall, 202
    saveregisters, 203
    softfloat, 203
    stdcall, 203
    varargs, 203

name, 196
noreturn, 200
nostackframe, 200
Numbers, 17
    Binary, 17
    Decimal, 17
    Hexadecimal, 17
    Octal, 17
    Real, 17

object, 67
Objective-Pascal, 138
Objective-Pascal Classes, 138
Objects, 67
Operators, 20, 36, 50, 148, 155, 156
    Arithmetic, 156, 209
    Assignment, 205
    Binary, 209
    Boolean, 157
    Comparison, 210
    Logical, 156
    Relational, 159
    Set, 158
    String, 157
    Unary, 156
operators, 204
otherwise, 167
overload, 200
overloading
    operators, 204
Override, 84
override, 73

Packed, 45, 68, 82
Parameters, 184
    Constant, 184, 187
    Open Array, 188, 189
    Out, 186
    Untypes, 184
    Value, 184
    Var, 93, 184, 185
pascal, 201
PChar, 32, 35
Pointer, 49
Private, 75, 78, 92
    strict, 78
private, 68
Procedural, 51
Procedure, 51, 182
Procedures, 182
program, 213
Properties, 63, 91
    Array, 94
    Indexed, 93
Property, 85, 91
Protected, 75, 78
Public, 75, 78
public, 68, 201
Published, 78, 92
PUnicodeChar, 35

Raise, 224
Rawbytestring, 34
Read, 92
Real, 28
Record, 45
    Constant, 61
Record helpers, 128
register, 202
reintroduce, 84
Repeat, 178
Reserved words, 13
    Delphi, 14
    Free Pascal, 14
    Modifiers, 14
    Turbo Pascal, 13
Resourcestring, 22

safecall, 202
saveregisters, 203
Scope, 32, 41, 61, 67, 75, 77, 221
    block, 221
    Class, 221
    record, 221
    unit, 222
Self, 71, 85, 90
Set, 47
Shortstring, 30
Single, 28
softfloat, 203
Statements, 163
    Assembler, 181, 230
    Assignment, 163
    Case, 167
    Compound, 166
    Exception, 181
    For, 170, 171
    Goto, 165
    if, 168
    Loop, 170, 171, 178
    Procedure, 164
    Repeat, 178
    Simple, 163
    Structured, 166
    While, 178
    With, 179
Static class methods, 87
stdcall, 203
String, 18
    Ansistring, 31
    CodePage, 31
    Codepage, 33
    Constant, 35
    Multi-byte, 34
    RawByteString, 34
    ShortString, 30
    Single-byte string, 29
    UnicodeString, 35
    UTF8String, 34
    WideString, 35
Symbols, 11
Syntax diagrams, 9

Text, 48
then, 168
Thread Variables, 63
Threadvar, 63
Tokens, 11
    Comments, 12
    Identifiers, 15
    Numbers, 17
    Reserved words, 13
    Strings, 18
    Symbols, 11
try, 227, 228
Type, 23
    Compatibility, 25, 42, 58, 115, 153, 155, 185
    Generics, 107
    Helpers, 128
    Restrictions, 111
    Type overloads, 114
Typecast, 31, 32, 35, 153, 154
    Unaligned, 154
    Value, 153
    Variable, 153
Types, 23
    Ansistring, 31
    Array, 38–40
    Base, 23
    Boolean, 25
    Char, 29
    Class, 76
    Class helpers, 128
    Constructor, 43
    Enumeration, 26
    Extended record, 123
    File, 48
    Forward declaration, 51
    Integer, 24
    Object, 67
    Ordinal, 24
    PChar, 32, 36
    Pointer, 36, 49
    Procedural, 51
    Rawbytestring, 34
    Real, 28
    Record, 45
    Record helpers, 128
    Reference counted, 31, 33–35, 40, 41, 105, 191
    Set, 47
    ShortString, 30
    String, 29
    Structured, 37
    Subrange, 28
    Type helpers, 128
    UnicodeString, 34, 35
    UTF8String, 34
    Variant, 54
    Widestring, 35

Unicodestring, 35
unit, 214, 222
uses, 213
UTF8String, 34

Var, 59
varargs, 203
Variable, 59
Variables, 59
    Initialized, 21, 61, 62
Variant, 54
Virtual, 70, 73, 83, 89
Visibility, 67, 75, 100
    Private, 67, 78
    Protected, 78
    Public, 67, 78
    Published, 78
    Strict Private, 78
    Strict Protected, 78

While, 178
WideChar, 29
Widestring, 35
With, 179
Write, 92