[
Top
]
[
Contents
]
[
Index
]
[
?
]
Table of Contents
1. Welcome to GNU Pascal
...
2. Some of GPC's most interesting features.
3. New Features of GNU Pascal.
3.1 General Changes And Possible Incompatibilies with Previous Versions
3.2 Command Line Options and Compiler Directives
3.3 Compiler and RTS Built-in Declarations
3.4 GPC Units
3.5 GPC Manual
3.6 Demo Programs
3.7 Utilities
3.8 Test Suite
3.9 Legend
4. The GNU Pascal Frequently Asked Questions List.
4.1 GNU Pascal
4.1.1 What and why?
4.1.2 What is the current version?
4.1.3 Is it compatible with Turbo Pascal (R)?
4.1.4 Which platforms are supported by GNU Pascal?
4.2 Installing GPC
4.2.1 What to read next
4.2.2 Which components do I need to compile Pascal code?
4.2.3 How do I debug my Pascal programs?
4.2.4 What additional libraries should I have?
4.2.5 Contributed units
4.2.6 Can you recommend an IDE?
4.3 GNU Pascal on the DJGPP (MS-DOS) platform
4.3.1 What is DJGPP?
4.3.2 If you need more information
4.3.3 What do I download?
4.3.4 How do I install the compiler?
4.3.5 I cannot read the Info documentation!
4.3.6 GPC says: no DPMI
4.3.7 I have troubles with assembly code
4.3.8 Tell me how to do DPMI, BIOS and other DOS related things.
4.3.9 I got an exception when accessing an
`array [1 .. 4000000] of Byte'
.
4.4 Strings
4.4.1 What's this confusion about strings?
4.4.2 Overlaying strings in variant records
4.4.3 Why does
`s[0]'
not contain the length?
4.4.4 Support for BP compatible short strings
4.4.5 What about C strings?
4.5 Getting Help
4.6 Miscellaneous
4.6.1 I want to contribute; where do I start?
4.6.2 Where is the GNU Pascal FTP site? WWW?
4.6.3 About this FAQ
5. How to download, compile and install GNU Pascal.
5.1 Where and what to download
5.2 Installation instructions for a GPC binary distribution
5.3 Compiling GPC
5.4 Compilation notes for specific platforms
5.4.1 MS-DOS with DJGPP
5.4.2 MS-DOS or OS/2 with EMX
5.4.3 MS Windows 95/98/NT
5.5 Building and Installing a cross-compiler
5.6 Crossbuilding a compiler.
6. A QuickStart Guide from Borland Pascal to GNU Pascal.
6.1 BP Compatibility
6.2 BP Incompatibilities
6.2.1 String type
6.2.2 Qualified identifiers
6.2.3 Assembler
6.2.4 Move; FillChar
6.2.5 Real type
6.2.6 Graph unit
6.2.7 OOP units
6.2.8 Keep; GetIntVec; SetIntVec
6.2.9 TFDDs
6.2.10 Mem; Port; Ptr; Seg; Ofs; PrefixSeg; etc.
6.2.11 Endianness assumptions
6.2.12 - -borland-pascal - disable GPC extensions
6.2.13 -w - disable all warnings
6.2.14 - -uses=System - Swap; HeapError; etc.
6.2.15 -D__BP_TYPE_SIZES__ - small integer types etc.
6.2.16 - -pack-struct - disable structure alignment
6.2.17 -D__BP_RANDOM__ - BP compatible pseudo random number generator
6.2.18 -D__BP_UNPORTABLE_ROUTINES__ - Intr; DosVersion; etc.
6.2.19 -D__BP_PARAMSTR_0__ - BP compatible ParamStr (0) behaviour
6.3 IDE versus command line
6.4 Comments
6.5 BP Compatible Compiler Directives
6.6 Units, GPI files and AutoMake
6.7 Optimization
6.8 Debugging
6.9 Objects
6.10 Strings in BP and GPC
6.11 Typed Constants
6.12 Bit, Byte and Memory Manipulation
6.13 User-defined Operators in GPC
6.14 Data Types in BP and GPC
6.15 BP Procedural Types
6.16 Files
6.17 Built-in Constants
6.18 Built-in Operators in BP and GPC
6.19 Built-in Procedures and Functions
6.20 Special Parameters
6.21 Miscellaneous
6.22 BP and Extended Pascal
6.23 Portability hints
7. Command Line Options supported by GNU Pascal.
7.1 GPC options besides those of GCC.
7.2 The most commonly used options to GPC
8. The Programmer's Guide to GPC
8.1 Source Structures
8.1.1 The Source Structure of Programs
8.1.2 Label Declaration
8.1.3 Constant Declaration
8.1.4 Type Declaration
8.1.5 Variable Declaration
8.1.6 Subroutine Declaration
8.1.6.1 The Procedure
8.1.6.2 The Function
8.1.6.3 The Operator
8.1.6.4 Subroutine Parameter List Declaration
8.1.7 Statements
8.1.7.1 Assignment
8.1.7.2 begin end Compound Statement
8.1.7.3 if Statement
8.1.7.4 case Statement
8.1.7.5 for Statement
8.1.7.6 while Statement
8.1.7.7 repeat Statement
8.1.7.8 asm Inline
8.1.7.9 with Statement
8.1.7.10 goto Statement
8.1.7.11 Procedure Call
8.1.7.12 The Declaring Statement
8.1.7.13 Loop Control Statements
8.1.8 Import Part and Module/Unit Concept
8.1.8.1 The Source Structure of ISO-10206 Extended Pascal Modules
8.1.8.2 The Source Structure of UCSD/Borland Pascal Units
8.2 Data Types
8.2.1 Type Definition
8.2.2 Ordinal Types
8.2.3 Integer Types
8.2.3.1 The CPU's Natural Integer Types
8.2.3.2 The Main Branch of Integer Types
8.2.3.3 Integer Types with Specified Size
8.2.3.4 Integer Types and Compatibility
8.2.3.5 Summary of Integer Types
8.2.4 Built-in Real (Floating Point) Types
8.2.5 Strings Types
8.2.6 Character Types
8.2.7 File Types
8.2.8 Boolean (Intrinsic)
8.2.9 Pointer (Intrinsic)
8.2.10 Type Definition Possibilities
8.2.10.1 Subrange Types
8.2.10.2 Enumerated Types
8.2.10.3 Array Types
8.2.10.4 Record Types
8.2.10.5 Variant Records
8.2.10.6 EP's Schema Types including
`String'
8.2.10.7 Set Types
8.2.10.8 Pointer Types
8.2.10.9 Procedural and Functional Types
8.2.10.10 Object Types
8.2.10.11 Initial values to type denoters
8.2.10.12 Restricted Types
8.2.11 Machine-dependent Type Implementation
8.2.11.1 Endianness
8.2.11.2 Alignment
8.3 Operators
8.3.1 Built-in Operators
8.3.2 User-defined Operators
8.4 Procedure And Function Parameters
8.4.1 Parameters declared as
`protected'
or
`const'
8.4.2 The Standard way to pass arrays of variable size
8.4.3 BP's alternative to Conformant Arrays
8.5 Pointer Arithmetics
8.6 Type Casts
8.7 Object-Orientated Programming
8.8 Compiler Directives And The Preprocessor
8.9 Routines Built-in or in the Run Time System
8.9.1 File Routines
8.9.2 String Operations
8.9.3 Accessing Command Line Arguments
8.9.4 Memory Management Routines
8.9.5 Operations for Integer and Ordinal Types
8.9.6 Complex Number Operations
8.9.7 Set Operations
8.9.8 Date And Time Routines
8.10 Interfacing with Other Languages
8.10.1 Importing Libraries from Other Languages
8.10.2 Exporting GPC Libraries to Other Languages
8.11 Notes for Debugging
8.12 Pascal declarations for GPC's Run Time System
8.13 Units included with GPC
8.13.1 BP compatibility: CRT & WinCRT, portable, with many extensions
8.13.2 BP compatibility: Dos
8.13.3 Overcome some differences between Dos and Unix
8.13.4 Higher level file and directory handling
8.13.5 Arithmetic with unlimited size and precision
8.13.6 Turbo Power compatibility, etc.
8.13.7 Primitive heap checking
8.13.8
`MD5'
Message Digests
8.13.9 BP compatibility: Overlay
8.13.10 Start a child process, connected with pipes, also on Dos
8.13.11 BP compatibility (partly):
`Port'
,
`PortW'
arrays
8.13.12 BP compatibility: Printer, portable
8.13.13 Regular Expression matching and substituting
8.13.14 BP compatibility: Strings
8.13.15 Higher level string handling
8.13.16 BP compatibility: System
8.13.17 Trap runtime errors
8.13.18 BP compatibility: Turbo3
8.13.19 BP compatibility: WinDos
9. The Alphabetical GPC Language Reference
9.1 Abs
9.2 absolute
9.3 abstract
9.4 Addr
9.5 AlignOf
9.6 all
9.7 and
9.8 and then
9.9 and_then
9.10 AnsiChar
9.11 Append
9.12 ArcTan
9.13 Arg
9.14 array
9.15 asm
9.16 asmname
9.17 Assign
9.18 Assigned
9.19 attribute
9.20 begin
9.21 Bind
9.22 bindable
9.23 Binding
9.24 BindingType
9.25 BitSizeOf
9.26 BlockRead
9.27 BlockWrite
9.28 Boolean
9.29 Break
9.30 Byte
9.31 ByteBool
9.32 ByteCard
9.33 ByteInt
9.34 C
9.35 Card
9.36 Cardinal
9.37 case
9.38 Char
9.39 ChDir
9.40 Chr
9.41 C_Language
9.42 class
9.43 Close
9.44 Cmplx
9.45 Comp
9.46 Complex
9.47 Concat
9.48 Conjugate
9.49 const
9.50 constructor
9.51 Continue
9.52 Copy
9.53 Cos
9.54 CString
9.55 CString2String
9.56 CStringCopyString
9.57 Date
9.58 Dec
9.59 DefineSize
9.60 Delete
9.61 destructor
9.62 Dispose
9.63 div
9.64 do
9.65 Double
9.66 downto
9.67 else
9.68 Empty
9.69 end
9.70 EOF
9.71 EOLn
9.72 EpsReal
9.73 Eq
9.74 Erase
9.75 Exclude
9.76 Exit
9.77 Exp
9.78 export
9.79 exports
9.80 Extend
9.81 Extended
9.82 extern
9.83 external
9.84 Fail
9.85 False
9.86 far
9.87 file
9.88 FileMode
9.89 FilePos
9.90 FileSize
9.91 FillChar
9.92 Flush
9.93 for
9.94 forward
9.95 Frac
9.96 FrameAddress
9.97 FreeMem
9.98 function
9.99 GE
9.100 Get
9.101 GetMem
9.102 GetTimeStamp
9.103 goto
9.104 GT
9.105 Halt
9.106 High
9.107 if
9.108 Im
9.109 implementation
9.110 import
9.111 in
9.112 Inc
9.113 Include
9.114 Index
9.115 inherited
9.116 inline
9.117 InOutRes
9.118 Input
9.119 Insert
9.120 Int
9.121 Integer
9.122 interface
9.123 interrupt
9.124 IOResult
9.125 is
9.126 label
9.127 LastPosition
9.128 LE
9.129 Length
9.130 library
9.131 Ln
9.132 LoCase
9.133 LongBool
9.134 LongCard
9.135 LongestBool
9.136 LongestCard
9.137 LongestInt
9.138 LongestReal
9.139 LongestWord
9.140 LongInt
9.141 LongReal
9.142 LongWord
9.143 Low
9.144 LT
9.145 Mark
9.146 Max
9.147 MaxChar
9.148 MaxInt
9.149 MaxReal
9.150 MedBool
9.151 MedCard
9.152 MedInt
9.153 MedReal
9.154 MedWord
9.155 Min
9.156 MinReal
9.157 MkDir
9.158 mod
9.159 module
9.160 Move
9.161 MoveLeft
9.162 MoveRight
9.163 Name
9.164 NE
9.165 near
9.166 New
9.167 NewCString
9.168 nil
9.169 not
9.170 Null
9.171 object
9.172 Odd
9.173 of
9.174 only
9.175 operator
9.176 or
9.177 Ord
9.178 or else
9.179 or_else
9.180 otherwise
9.181 Output
9.182 Override
9.183 Pack
9.184 packed
9.185 Page
9.186 PAnsiChar
9.187 ParamCount
9.188 ParamStr
9.189 PChar
9.190 Pi
9.191 Pointer
9.192 Polar
9.193 Pos
9.194 Position
9.195 pow
9.196 Pred
9.197 private
9.198 procedure
9.199 program
9.200 property
9.201 protected
9.202 PtrCard
9.203 PtrDiffType
9.204 PtrInt
9.205 PtrWord
9.206 public
9.207 published
9.208 Put
9.209 qualified
9.210 Random
9.211 Randomize
9.212 Re
9.213 Read
9.214 ReadLn
9.215 ReadStr
9.216 Real
9.217 record
9.218 register
9.219 Release
9.220 Rename
9.221 repeat
9.222 Reset
9.223 resident
9.224 restricted
9.225 Result
9.226 Return
9.227 ReturnAddress
9.228 Rewrite
9.229 RmDir
9.230 Root
9.231 Round
9.232 RunError
9.233 Seek
9.234 SeekRead
9.235 SeekUpdate
9.236 SeekWrite
9.237 segment
9.238 Self
9.239 set
9.240 SetFileTime
9.241 SetLength
9.242 SetType
9.243 shl
9.244 ShortBool
9.245 ShortCard
9.246 ShortInt
9.247 ShortReal
9.248 ShortWord
9.249 shr
9.250 Sin
9.251 Single
9.252 SizeOf
9.253 SizeType
9.254 SmallInt
9.255 Sqr
9.256 SqRt
9.257 StandardError
9.258 StandardInput
9.259 StandardOutput
9.260 static
9.261 StdErr
9.262 Str
9.263 String
9.264 String2CString
9.265 SubStr
9.266 Succ
9.267 Text
9.268 TextWritable
9.269 then
9.270 Time
9.271 TimeStamp
9.272 to
9.273 to begin do
9.274 to end do
9.275 Trim
9.276 True
9.277 Trunc
9.278 Truncate
9.279 type
9.280 type of
9.281 TypeOf
9.282 UnBind
9.283 unit
9.284 Unpack
9.285 until
9.286 UpCase
9.287 Update
9.288 uses
9.289 Val
9.290 value
9.291 var
9.292 view
9.293 virtual
9.294 Void
9.295 volatile
9.296 while
9.297 with
9.298 Word
9.299 WordBool
9.300 Write
9.301 WriteLn
9.302 WriteStr
9.303 xor
10. Pascal keywords and operators supported by GNU Pascal.
11. Where to get support for GNU Pascal; how to report bugs.
11.1 The GPC Mailing List
11.2 The GPC Mailing List Archives
11.3 Newsgroups relevant to GPC
11.4 Where to get individual support for GPC
11.5 If the compiler crashes
...
11.6 How to report GPC bugs
11.7 Running the GPC Test Suite
12. The GNU Pascal To-Do List.
12.1 Known bugs in GPC
12.1.1 Things left to do until the next release of GPC
12.1.2 Other known bugs in GPC
12.2 Features planned for GPC
12.2.1 Planned features: Strings
12.2.2 Planned features: Records/arrays
12.2.3 Planned features: Files
12.2.4 Planned features: Other types
12.2.5 Planned features: Units and modules
12.2.6 Planned features: OOP
12.2.7 Planned features: Misc
12.2.8 Planned features: Utilities
12.3 Fixed bugs and implemented features
12.3.1 Problems that have been solved
12.3.2 Features that have been implemented
13. The GPC Source Reference
13.1 The Pascal preprocessor
13.2 GPC's Lexical Analyzer
13.3 Interrelations between the lexer and parser
13.4 Language Definition: GPC's Parser
13.5 Tree Nodes
13.6 Parameter Passing
13.7 GPI files -- GNU Pascal Interfaces
13.8 GPC's AutoMake Mechanism -- How it Works
13.9 Files that make up GPC; Integrating GNU Pascal in GCC
A. Contributors to GNU Pascal.
B. Resources For Use With GPC.
C. GNU GENERAL PUBLIC LICENSE
C.1 Preamble
C.2 How to Apply These Terms to Your New Programs
D. The GNU Project.
D.1 The GNU Manifesto
D.1.1 What's GNU? Gnu's Not Unix!
D.1.2 Why I Must Write GNU
D.1.3 Why GNU Will Be Compatible with Unix
D.1.4 How GNU Will Be Available
D.1.5 Why Many Other Programmers Want to Help
D.1.6 How You Can Contribute
D.1.7 Why All Computer Users Will Benefit
D.1.8 Some Easily Rebutted Objections to GNU's Goals
D.2 Funding Free Software
E. GPC Index
This document was generated by
Peter Gerwinski
on
June, 24 2001
using
texi2html