Típusnév | Értékei |
BOOLEAN | TRUE, FALSE |
CHAR | Az ASCII karakterkészlet |
SHORTINT | Egész számok MIN ( SHORTINT )-tol MAX ( SHORTINT )-ig |
INTEGER | Egész számok MIN ( INTEGER )-tol MAX ( INTEGER )-ig |
LONGINT | Egész számok MIN ( LONGINT )-tol MAX ( LONGINT )-ig |
REAL | Valós számok MIN ( REAL )-tol MAX ( REAL )-ig |
LONGREAL | Valós számok MIN ( LONGREAL )-tol MAX ( LONGREAL )-ig |
SET | MIN ( SET ) és MAX ( SET ) közötti egész számokból álló halmazok |
BYTE | Egész számok 0-tól 255-ig |
A SHORTINT, INTEGER és a LONGINT egész típusok; a REAL és LONGREAL valós típusok; ezek a numerikus típusok.
A numerikus típusok hierarchikusan rendezõdnek: a nagyobb típus tartalmazza a kisebbeket:
LONGREAL tartalmazza REAL tartalmazza LONGINT tartalmazza INTEGER tartalmazza SHORTINT
Length = ConstExpr
A hossz nélkül deklarált tömböket nyílt tömböknek nevezzük. A megszorítás az, hogy az elemei csak alaptípusok lehetnek.
BaseType = QualIdent
FieldListSequence = FieldList {";" FieldList}
FieldList = [IdentList] ":" Type
IdentList = ident {"," ident}
A rekord típusok kiterjeszthetõk. A kiterjesztés reláció a következõ:
T0 típus kiterjesztése a T típusnak, ha
- T azonos T0-al, vagy
- T0 közvetlen kiterjesztése a T egy kiterjesztésének.
A kiterjesztés reláció inverze a bázistípus reláció:
T a T0-nak egy bázistípusa, ha
- T0 azonos T-vel, vagy
- T a T0 egy bázistípusának bázistípusa.
Ha p egy T típusra mutató pointer típusú változó, akkor a NEW( p ) eljárás lefoglal egy T típusú objektumnak helyet és p erre a helyre fog mutatni. A p^ egy T típusú objektum. Ha T egy többdimenziós nyílt tömb akkor a helyfoglalás: NEW(p,e0,e1,e2,...,en-1), ahol a T-t e0,e1,...en-1 hosszokkal deklaráltuk. Akármelyik pointernek lehet NIL értéke, ekkor a pointer nem mutat egy objektumra sem.
FormalTypeList = "(" [[VAR] FormalType {"," [VAR] FormalType}] ")" [":" QualIdent]