102x 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.