213x Filetype PDF File size 0.85 MB Source: www.ic.uff.br
Free Pascal :
Reference guide.
Reference guide for Free Pascal, version 1.0.6
1.9
April 2002
Michaël Van Canneyt
Contents
I ThePascallanguage 12
1 Pascal Tokens 13
1.1 Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2 Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3 Reserved words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Turbo Pascal reserved words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Delphi reserved words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Free Pascal reserved words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Modifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4 Identifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.5 Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.6 Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.7 Character strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2 Constants 18
2.1 Ordinary constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2 Typed constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3 Resource strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3 Types 21
3.1 Base types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Ordinal types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Integers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Boolean types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Enumeration types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Subrange types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Real types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2 Character types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Char . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Short strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1
CONTENTS
Ansistrings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Constant strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
PChar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3 Structured Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Record types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Set types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
File types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.4 Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.5 Procedural types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4 Objects 39
4.1 Declaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2 Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3 Constructors and destructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.4 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.5 Methodinvocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Static methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Virtual methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Abstract methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.6 Visibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5 Classes 46
5.1 Class definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.2 Class instantiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.3 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
invocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Virtual methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Message methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.4 Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6 Expressions 54
6.1 Expression syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
6.2 Function calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.3 Set constructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
6.4 Value typecasts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.5 The@operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6.6 Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Arithmetic operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Logical operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Boolean operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2
CONTENTS
String operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Set operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Relational operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
7 Statements 63
7.1 Simple statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Procedure statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Goto statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
7.2 Structured statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Compoundstatements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
TheCasestatement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
TheIf..then..elsestatement . . . . . . . . . . . . . . . . . . . . . . . . . . 67
TheFor..to/downto..dostatement . . . . . . . . . . . . . . . . . . . . . . . 68
TheRepeat..untilstatement . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
TheWhile..dostatement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
TheWithstatement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Exception Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
7.3 Assembler statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
8 Using functions and procedures 74
8.1 Procedure declaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
8.2 Function declaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
8.3 Parameter lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Value parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Variable parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Constant parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Openarray parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Array of const . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
8.4 Function overloading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
8.5 Forward defined functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
8.6 External functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
8.7 Assembler functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
8.8 Modifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
cdecl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
inline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
pascal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
popstack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3
no reviews yet
Please Login to review.