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  
continue  
cppdecl  
cvar  
default  
deprecated  
dynamic  
enumerator  
experimental  
export  
external  
far  
far16  
forward  
generic  
helper  
implements  
index  
interrupt  
iocheck  
local  
message  
name  
near  
nodefault  
noreturn  
nostackframe  
oldfpccall  
otherwise  
overload  
override  
pascal  
platform  
private  
protected  
public  
published  
read  
register  
reintroduce  
result  
safecall  
saveregisters  
softfloat  
specialize  
static  
stdcall  
stored  
strict  
unaligned  
unimplemented  
varargs  
virtual  
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 47).