The GNU Pascal Manual
Welcome to GNU Pascal...
Some of GPC's most interesting features.
New Features of GNU Pascal.
General Changes And Possible Incompatibilies with Previous Versions
Command Line Options and Compiler Directives
Compiler and RTS Built-in Declarations
GPC Units
GPC Manual
Demo Programs
Utilities
Test Suite
Legend
The GNU Pascal Frequently Asked Questions List.
GNU Pascal
What and why?
What is the current version?
Is it compatible with Turbo Pascal (R)?
Which platforms are supported by GNU Pascal?
Installing GPC
What to read next
Which components do I need to compile Pascal code?
How do I debug my Pascal programs?
What additional libraries should I have?
Contributed units
Can you recommend an IDE?
GNU Pascal on the DJGPP (MS-DOS) platform
What is DJGPP?
If you need more information
What do I download?
How do I install the compiler?
I cannot read the Info documentation!
GPC says: no DPMI
I have troubles with assembly code
Tell me how to do DPMI, BIOS and other DOS related things.
I got an exception when accessing an
`array [1 .. 4000000] of Byte'
.
Strings
What's this confusion about strings?
Overlaying strings in variant records
Why does
`s[0]'
not contain the length?
Support for BP compatible short strings
What about C strings?
Getting Help
Miscellaneous
I want to contribute; where do I start?
Where is the GNU Pascal FTP site? WWW?
About this FAQ
How to download, compile and install GNU Pascal.
Where and what to download
Installation instructions for a GPC binary distribution
Compiling GPC
Compilation notes for specific platforms
MS-DOS with DJGPP
MS-DOS or OS/2 with EMX
MS Windows 95/98/NT
Building and Installing a cross-compiler
Crossbuilding a compiler.
A QuickStart Guide from Borland Pascal to GNU Pascal.
BP Compatibility
BP Incompatibilities
String type
Qualified identifiers
Assembler
Move; FillChar
Real type
Graph unit
OOP units
Keep; GetIntVec; SetIntVec
TFDDs
Mem; Port; Ptr; Seg; Ofs; PrefixSeg; etc.
Endianness assumptions
- -borland-pascal - disable GPC extensions
-w - disable all warnings
- -uses=System - Swap; HeapError; etc.
-D__BP_TYPE_SIZES__ - small integer types etc.
- -pack-struct - disable structure alignment
-D__BP_RANDOM__ - BP compatible pseudo random number generator
-D__BP_UNPORTABLE_ROUTINES__ - Intr; DosVersion; etc.
-D__BP_PARAMSTR_0__ - BP compatible ParamStr (0) behaviour
IDE versus command line
Comments
BP Compatible Compiler Directives
Units, GPI files and AutoMake
Optimization
Debugging
Objects
Strings in BP and GPC
Typed Constants
Bit, Byte and Memory Manipulation
User-defined Operators in GPC
Data Types in BP and GPC
BP Procedural Types
Files
Built-in Constants
Built-in Operators in BP and GPC
Built-in Procedures and Functions
Special Parameters
Miscellaneous
BP and Extended Pascal
Portability hints
Portability -- why?
Low-level features
Command Line Options supported by GNU Pascal.
GPC options besides those of GCC.
The most commonly used options to GPC
The Programmer's Guide to GPC
Source Structures
The Source Structure of Programs
Label Declaration
Constant Declaration
Type Declaration
Variable Declaration
Subroutine Declaration
The Procedure
The Function
The Operator
Subroutine Parameter List Declaration
Statements
Assignment
begin end Compound Statement
if Statement
case Statement
for Statement
while Statement
repeat Statement
asm Inline
with Statement
goto Statement
Procedure Call
The Declaring Statement
Loop Control Statements
Import Part and Module/Unit Concept
The Source Structure of ISO-10206 Extended Pascal Modules
The Source Structure of UCSD/Borland Pascal Units
Data Types
Type Definition
Ordinal Types
Integer Types
The CPU's Natural Integer Types
The Main Branch of Integer Types
Integer Types with Specified Size
Integer Types and Compatibility
Summary of Integer Types
Built-in Real (Floating Point) Types
Strings Types
Character Types
File Types
Boolean (Intrinsic)
Pointer (Intrinsic)
Type Definition Possibilities
Subrange Types
Enumerated Types
Array Types
Record Types
Variant Records
EP's Schema Types including
`String'
Set Types
Pointer Types
Procedural and Functional Types
Object Types
Initial values to type denoters
Restricted Types
Machine-dependent Type Implementation
Endianness
Alignment
Operators
Built-in Operators
User-defined Operators
Procedure And Function Parameters
Parameters declared as
`protected'
or
`const'
The Standard way to pass arrays of variable size
BP's alternative to Conformant Arrays
Pointer Arithmetics
Type Casts
Object-Orientated Programming
Compiler Directives And The Preprocessor
Routines Built-in or in the Run Time System
File Routines
String Operations
Accessing Command Line Arguments
Memory Management Routines
Operations for Integer and Ordinal Types
Complex Number Operations
Set Operations
Date And Time Routines
Interfacing with Other Languages
Importing Libraries from Other Languages
Exporting GPC Libraries to Other Languages
Notes for Debugging
Pascal declarations for GPC's Run Time System
Units included with GPC
BP compatibility: CRT & WinCRT, portable, with many extensions
BP compatibility: Dos
Overcome some differences between Dos and Unix
Higher level file and directory handling
Arithmetic with unlimited size and precision
Turbo Power compatibility, etc.
Primitive heap checking
`MD5'
Message Digests
BP compatibility: Overlay
Start a child process, connected with pipes, also on Dos
BP compatibility (partly):
`Port'
,
`PortW'
arrays
BP compatibility: Printer, portable
Regular Expression matching and substituting
BP compatibility: Strings
Higher level string handling
BP compatibility: System
Trap runtime errors
BP compatibility: Turbo3
BP compatibility: WinDos
The Alphabetical GPC Language Reference
Abs
absolute
abstract
Addr
AlignOf
all
and
and then
and_then
AnsiChar
Append
ArcTan
Arg
array
asm
asmname
Assign
Assigned
attribute
begin
Bind
bindable
Binding
BindingType
BitSizeOf
BlockRead
BlockWrite
Boolean
Break
Byte
ByteBool
ByteCard
ByteInt
C
Card
Cardinal
case
Char
ChDir
Chr
C_Language
class
Close
Cmplx
Comp
Complex
Concat
Conjugate
const
constructor
Continue
Copy
Cos
CString
CString2String
CStringCopyString
Date
Dec
DefineSize
Delete
destructor
Dispose
div
do
Double
downto
else
Empty
end
EOF
EOLn
EpsReal
Eq
Erase
Exclude
Exit
Exp
export
exports
Extend
Extended
extern
external
Fail
False
far
file
FileMode
FilePos
FileSize
FillChar
Flush
for
forward
Frac
FrameAddress
FreeMem
function
GE
Get
GetMem
GetTimeStamp
goto
GT
Halt
High
if
Im
implementation
import
in
Inc
Include
Index
inherited
inline
InOutRes
InOutResStr
Input
Insert
Int
Integer
interface
interrupt
IOResult
is
label
LastPosition
LE
Length
library
Ln
LoCase
LongBool
LongCard
LongestBool
LongestCard
LongestInt
LongestReal
LongestWord
LongInt
LongReal
LongWord
Low
LT
Mark
Max
MaxChar
MaxInt
MaxReal
MedBool
MedCard
MedInt
MedReal
MedWord
Min
MinReal
MkDir
mod
module
Move
MoveLeft
MoveRight
Name
NE
near
New
NewCString
nil
not
Null
object
Odd
of
only
operator
or
or else
Ord
or_else
otherwise
Output
Override
Pack
packed
Page
PAnsiChar
ParamCount
ParamStr
PChar
Pi
Pointer
Polar
Pos
Position
pow
Pred
private
procedure
program
property
protected
PtrCard
PtrDiffType
PtrInt
PtrWord
public
published
Put
qualified
Random
Randomize
Re
Read
ReadLn
ReadStr
Real
record
register
Release
Rename
repeat
Reset
resident
restricted
Result
Return
ReturnAddress
Rewrite
RmDir
Root
Round
RunError
Seek
SeekRead
SeekUpdate
SeekWrite
segment
Self
set
SetFileTime
SetLength
SetType
shl
ShortBool
ShortCard
ShortInt
ShortReal
ShortWord
shr
Sin
Single
SizeOf
SizeType
SmallInt
Sqr
SqRt
StandardError
StandardInput
StandardOutput
static
StdErr
Str
String
String2CString
SubStr
Succ
Text
TextWritable
then
Time
TimeStamp
to
to begin do
to end do
Trim
True
Trunc
Truncate
type
type of
TypeOf
UnBind
unit
Unpack
until
UpCase
Update
uses
Val
value
var
view
virtual
Void
volatile
while
with
Word
WordBool
Write
WriteLn
WriteStr
xor
Pascal keywords and operators supported by GNU Pascal.
Where to get support for GNU Pascal; how to report bugs.
The GPC Mailing List
The GPC Mailing List Archives
Newsgroups relevant to GPC
Where to get individual support for GPC
If the compiler crashes...
How to report GPC bugs
Running the GPC Test Suite
The GNU Pascal To-Do List.
Known bugs in GPC
Things left to do until the next release of GPC
Other known bugs in GPC
Features planned for GPC
Planned features: Strings
Planned features: Records/arrays
Planned features: Files
Planned features: Other types
Planned features: Units and modules
Planned features: OOP
Planned features: Misc
Planned features: Utilities
Fixed bugs and implemented features
Problems that have been solved
Features that have been implemented
The GPC Source Reference
GPC's Lexical Analyzer
Language Definition: GPC's Parser
Tree Nodes
Parameter Passing
GPI files -- GNU Pascal Interfaces
GPC's AutoMake Mechanism -- How it Works
Files that make up GPC; Integrating GNU Pascal in GCC
Contributors to GNU Pascal.
GNU GENERAL PUBLIC LICENSE
Preamble
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
How to Apply These Terms to Your New Programs
The GNU Project.
The GNU Manifesto
What's GNU? Gnu's Not Unix!
Why I Must Write GNU
Why GNU Will Be Compatible with Unix
How GNU Will Be Available
Why Many Other Programmers Want to Help
How You Can Contribute
Why All Computer Users Will Benefit
Some Easily Rebutted Objections to GNU's Goals
Funding Free Software
GPC Index
This document was generated on 15 March 2001 using
texi2html
1.56k.