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).