1.3.3 Modifiers

The following is a list of all modifiers. They are not exactly reserved words in the sense that they can be used as identifiers, but in specific places, they have a special meaning for the compiler, i. e., the compiler considers them as part of the Pascal language.

absolute
abstract
alias
assembler
bitpacked
break
cdecl
compilerproc
continue
cppdecl
cvar
default
deprecated
dynamic
enumerator
experimental
export
external
far
far16
forward
generic
helper
implements
index
inline
interrupt
iocheck
local
message
mwpascal
name
near
nodefault
noinline
noreturn
nostackframe
oldfpccall
otherwise
overload
override
pascal
platform
private
protected
public
published
read
register
                                                                            

                                                                            
reintroduce
result
safecall
saveregisters
sealed
softfloat
specialize
static
stdcall
stored
strict
unaligned
unimplemented
varargs
vectorcall
virtual
weakexternal
winapi
write

Remark Predefined types such as Byte, Boolean and constants such as maxint are not reserved words. They are identifiers, declared in the system unit. This means that these types can be redefined in other units. The programmer is however not encouraged to do this, as it will cause a lot of confusion.

Remark As of version 2.5.1 it is possible to use reserved words as identifiers by escaping them with a & sign. This means that the following is possible

var
  &var : integer;

begin
  &var:=1;
  Writeln(&var);
end.

however, it is not recommended to use this feature in new code, as it makes code less readable. It is mainly intended to fix old code when the list of reserved words changes and encompasses a word that was not yet reserved (See also section 1.4, page 48).