This is Info file gpc.info, produced by Makeinfo version 1.68 from the
input file /usr/local/src/gcc-2.8.1/p/doc/gpc.texi.

   This file documents the use and the internals of the GNU Pascal
compiler.

   Copyright (C) 1988, 1996 Free Software Foundation, Inc.

   Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.

   Permission is granted to copy and distribute modified versions of
this manual under the conditions for verbatim copying, provided also
that the sections entitled "GNU General Public License," "Funding for
Free Software," and "Protect Your Freedom--Fight `Look And Feel'" are
included exactly as in the original, and provided that the entire
resulting derived work is distributed under the terms of a permission
notice identical to this one.

   Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that the sections entitled "GNU General Public
License," "Funding for Free Software," and "Protect Your Freedom--Fight
`Look And Feel'", and this permission notice, may be included in
translations approved by the Free Software Foundation instead of in the
original English.


File: gpc.info,  Node: Keywords,  Next: Built-in,  Prev: GPC source,  Up: Top

Keywords supported by GNU Pascal
********************************

   *This chapter is outdated.  We will include it until a replacement
exists.*

   This chapter lists all keywords understood by GNU Pascal.

   By default, keywords can be redefined to make it possible that every
correct ISO 7185 program can be compiled.  However, you can use the
compiler switches `--pascal-standard', `--pascal-extended',
`--pascal-object', `--pascal-borland', and `--pascal-sc' to tell GPC
that keywords of a given standard must not to be redefined.

   The keywords are taken from the following standards:

   * ISO 7185 Standard Pascal (SP)

   * ISO 10206 Extended Pascal (EP)

   * ANSI draft Object Pascal (OP) *(not yet implemented)*

   * Borland Pascal 7.0 (BP)

   * Pascal-SC (PXSC, Pascal eXtensions for Scientific Calculations)

     Keyword         Pascal standard        Remarks
     --------------------------------------------------------------------------
     Absolute        Borland                overload variables
     Abstract        Object                 not implemented
     All             GNU                    EP "export foo = all" extension
     And             ISO Standard
     And_then        ISO Extended           short-circuit Boolean AND operator
     Array           ISO Standard
     Asm             Borland, GNU           GNU-style assembler
     Begin           ISO Standard
     Bindable        ISO Extended           external binding of files, etc.
     Case            ISO Standard
     Class           Object                 not implemented
     Const           ISO Standard
     Constructor     Object, Borland        only BP version implemented
     Destructor      Object, Borland        only BP version implemented
     Div             ISO Standard
     Do              ISO Standard
     Downto          ISO Standard
     Else            ISO Standard
     End             ISO Standard
     Export          ISO Extended           Module Interface export
     File            ISO Standard
     For             ISO Standard
     Function        ISO Standard
     Goto            ISO Standard
     If              ISO Standard
     Import          ISO Extended           Module Interface import
     Implementation  ISO Extended, Borland  Module (EP) or Unit (BP) Impl. part
     Inherited       Object, Borland        only BP version implemented
     In              ISO Standard
     Inline          Borland, GNU           only GNU inline functions implem.
     Interface       ISO Extended, Borland  Module (EP) or Unit (BP) Int. part
     Is              Object                 not implemented
     Label           ISO Standard
     Mod             ISO Standard
     Module          ISO Extended, PXSC     PXSC version only partially implem.
     Nil             ISO Standard
     Not             ISO Standard
     Object          Borland                BP 7.0 style class definition
     Of              ISO Standard
     Only            ISO Extended           import specification
     Operator        PXSC                   operator definition
     Or              ISO Standard
     Or_else         ISO Extended           short-circuit Boolean OR operator
     Otherwise       ISO Extended           default case label
     Packed          ISO Standard           does not yet pack
     Pow             ISO Extended           exponentiation op. (integer expon.)
     Procedure       ISO Standard
     Program         ISO Standard
     Property        Object                 not implemented
     Protected       ISO Extended           read-only formal parameters
     Qualified       ISO Extended           import specification
     Record          ISO Standard
     Repeat          ISO Standard
     Restricted      ISO Extended           type specification
     Set             ISO Standard
     Shl             Borland                left bit-shift operator
     Shr             Borland                right bit-shift operator
     Then            ISO Standard
     To              ISO Standard
     Type            ISO Standard
     Unit            Borland                Borland (or UCSD) style Modules
     Until           ISO Standard
     Uses            Borland                Borland (or UCSD) style import
     Value           ISO Extended           variable initializer
     Var             ISO Standard
     View            Object                 not implemented
     Virtual         Borland, Object        only Borland version implemented
     While           ISO Standard
     With            ISO Standard
     Xor             Borland                Boolean/bitwise exclusive OR op.


File: gpc.info,  Node: Built-in,  Next: Extensions,  Prev: Keywords,  Up: Top

Redefineable built-in identifiers
*********************************

   The following identifiers are built in into GNU Pascal but may be
redefined according to any supported Pascal standard.

     Maxint
     False
     True
     Input
     Output
     
     Rewrite
     Reset
     Put
     Get
     Write
     Read
     Writeln
     Readln
     Page
     New
     Dispose
     Abs
     Sqr
     Sin
     Cos
     Exp
     Ln
     Sqrt
     Arctan
     Trunc
     Round
     Pack
     Unpack
     Ord
     Chr
     Succ
     Pred
     Odd
     Eof
     Eoln

   Directives

     Asmname            Specify case-sensitive external name for Function
     C                  External name for Function shall be lowercase
     C_language         same as C
     Forward
     External           External Name of Function Has First Letter Uppercase
     Extern             same as External

   Extended Pascal required module interfaces

     Standardoutput
     Standardinput

   Object Pascal directive (not implemented)

     Override

   Extended Pascal required words

     Maxchar
     Maxreal
     Minreal
     Epsreal

   Extended Pascal required Procedures and Functions

     Gettimestamp
     Date
     Time
     Halt
     Extend
     Seekwrite
     Seekread
     Seekupdate
     Empty
     Update
     Position
     Lastposition
     Re
     Im
     Cmplx
     Card
     Arg

   Extended Pascal external binding

     Bind
     Unbind
     Binding

   Extended Pascal complex type functions

     Polar

   Extended Pascal String functions

     Readstr            Read from a string rather than a file
     Writestr           Write to a string rather than a file
     Length
     Index              Search in a string
     Substr             also `MyStr [ 1..5 ]'
     Trim
     Eq                 lexical string comparision
     Lt
     Gt
     Ne
     Le
     Ge

   Extended pascal required string schema type generator

     String

   Object pascal (not implemented)

     Copy
     Null
     Root
     Textwritable
     Self

   Borland Pascal

     GetMem             Allocate memory with given size in bytes
     FreeMem            Free memory allocated with GetMem
     Inc                Increment
     Dec                Decrement

   More exotic fruits and birds (GPC extensions)

     Static             C-sense storage class specifications
     __const__
     __external__
     __inline__
     __static__
     __volatile__
     __byte__           C-style type size modifiers
     __short__
     __long__
     __longlong__
     __unsigned__
     
     Asm                Inline assembly (GNU style)
     Alignof
     Break              C-style
     Continue
     Return
     Sizeof
     Max                for enumeral and real types
     Min
     
     Conjugate
     Mark
     Release
     
     Default            like `otherwise' in a `case' statement
     Others
     
     Close
     Definesize

   Standard Pascal data types

     Integer
     Real
     Boolean
     Char
     Text

   Extended Pascal complex type

     Complex

   GPC extensions: void type (two spellings)

     __void__
     Void

   GPC extension: C compatibility string type

     __cstring__

   Extended Pascal: TimeStamp and BindingType

     Timestamp
     Bindingtype

