All variables have a type. Free Pascal supports the same basic types as Turbo Pascal, with some extra types from Delphi as well as some of its own.
The programmer can declare his own types, which is in essence defining an identifier that can be used to denote this custom type when declaring variables further in the source code. Declaring a type happens in a Type block (section 16.5, page 948), which is a collection of type declarations, separated by semicolons:
_________________________________________________________________________________________________________
Type declaration
____________________________________________
There are eight major kinds of types:
_________________________________________________________________________________________________________
Types
____________________________________________
Each of these cases will be examined separately.
A syntax diagram has no notion of the type of an identifier or expression. However, sometimes it is useful (or necessary) to know the type of an identifier. To make the syntax diagrams more clear, the type of an identifier has been added as a prefix to the name. The following is a list of such typed identifiers:
_________________________________________________________________________________________________________
Typed identifiers
___________________________________________________________________
from a perspective of language syntax, they can all be replaced by fully-qualified-identifier