Appendix A: Reserved words, special characters, operator precedence

View without frame


A.1 Reserved words

The reserved words in Eiffel are listed below. You are not allowed to use them as names.
 

alias ass and  as BIT BOOLEAN CHARACTER
check class creation Current debug deferred
do DOUBLE else elseif end ensure
expanded  export external false feature from
frozen if implies indexing infix inherit
inspect INTEGER invariant is like local 
loop NONE not obsolete old once
or POINTER prefix REAL redefine rename
require rescue Result retry select separate
STRING strip then  true undefine unique
until variant when xor
 
 Precursor will soon be added to this list.

 

A.2 Special characters

Character Code Mnemonic name
 

Character Code
Mnemonic name
@
%A
At-sign
BS
%B
Backspace
^
%C
Circumflex
$
%D
Dollar
FF
%F
Form feed
\
%H
backslash
~
%L
tilda
CR
%R
(carriage) Return
#
%S
sharp
HT
%T
(horizontal) Tab
NUL
%U
null character
|
%V
Vertical bar
%
%%
percent
'
%'
single quote
"
%"
double quote
[
%(
opening bracket
]
%)
closing bracket
{
%<
opening brace
}
%>
closing brace
 

A.3 Operator precedence order

The precedence order for all Eiffel operators is shown below; highest precedence is at the top of the table, lowest precedence at the bottom. Operators at the same precedence level are shown together; these operators are evaluated left to right in a flat expression. Brackets override the default precedence order. A free operator (levels 10 and 11) is an operator whose name begins with one of the characters '@', '#', '|', or '&'.

Level Operators
 

12                                 (Dot notation for client feature calls)

11                                 old strip

                                     not unary + unary -  All free unary operators

10                                All free binary operators

9                                  ^    (power)

8                                 * / // (integer division) \\ (integer remainder)

7                                 binary + binary -

6                                 = /= (not equal) < > <= >=

5                                 and and then

4                                 or or else

3                                 implies

2                                 << >> (for manifest arrays)

1                                 ;    (semicolon separator between assertion clauses)