4.4 Expressions
Syntax
Name Resolution Rules
A 
name 
used as a 
primary 
shall resolve to denote an object or a value. 
 
Static Semantics
Each expression has a type; it specifies the computation 
or retrieval of a value of that type. 
Dynamic Semantics
The value of a 
primary 
that is a 
name 
denoting an object is the value of the object. 
 
Implementation Permissions
For 
the evaluation of a 
primary 
that is a 
name 
denoting an object of an unconstrained numeric subtype, if the value 
of the object is outside the base range of its type, the implementation 
may either raise Constraint_Error or return the value of the object. 
 
Examples
Examples of primaries: 
4.0                --  real literal
Pi                 --  named number
(1 .. 10 => 0)     --  array aggregate
Sum                --  variable
Integer'Last       --  attribute
Sine(X)            --  function call
Color'(Blue)       --  qualified expression
Real(M*N)          --  conversion
(Line_Count + 10)  --  parenthesized expression 
Examples of expressions: 
Volume                      -- primary
not Destroyed               -- factor
2*Line_Count                -- term
-4.0                        -- simple expression
-4.0 + A                    -- simple expression
B**2 - 4.0*A*C              -- simple expression
R*Sin(θ)*Cos(φ)             -- simple expression
Password(1 .. 3) = "Bwv"    -- relation
Count in Small_Int          -- relation
Count not in Small_Int      -- relation
Index = 0 or Item_Hit       -- expression
(Cold and Sunny) or Warm    -- expression (parentheses are required)
A**(B**C)                   -- expression (parentheses are required)
Ada 2005 and 2012 Editions sponsored in part by Ada-Europe