| - Up - | Next >> | 
| <in statement> ::= | |||
              
  | 
          
| <in expression> ::= | |||
              
  | 
          
          The following rule makes implicit declarations explicit, i. e.,
          declarations only name variables between
          local and
          in. We need an auxiliary definition: The function PV returns the
          set of pattern variables of a statement (or expression).
          Furthermore, we call a position p in a given
          statement S a pattern position iff the following
          holds: If the subterm at position p of S is
          replaced by a fresh variable X, then X
          
          PV(S[X/p]).
        
| 
               D  | 
            
               PV(D)  | 
          
|---|---|
| 
               D1  | 
            
               
                PV(D1)
                  | 
          
| 
               x  | 
            {x}  | 
          
| 
               
  | 
            
               PV(S)  | 
          
| 
               
                  | 
            
               PV(S) - PV(D)  | 
          
| 
               
                  | 
            
               PV(S) - PV(D)  | 
          
| 
               
                  | 
            
               PV(E)  | 
          
| 
               
                  | 
            
               PV(E)  | 
          
| 
               
                  | 
            
               PV(E)  | 
          
| 
               
                  | 
            
               PV(E)  | 
          
| 
               E  | 
            
               PV(E)  | 
          
otherwise  | 
            
               
                  | 
          
| 
               E  | 
            
               PV(E)  | 
          
|---|---|
| 
               x  | 
            {x}  | 
          
| 
               
  | 
            
               PV(E)  | 
          
| 
               
                  | 
            
               
                (PV(S)
                  | 
          
| 
               
                  | 
            
               
                (PV(S)
                  | 
          
| 
               E1  | 
            
               
                PV(E1)
                  | 
          
| 
               
                  | 
            
               
                PV(E1)
                  | 
          
| 
               
                E1  | 
            
               
                PV(E1)
                  | 
          
| 
               
                E1  | 
            
               
                PV(E1)
                  | 
          
| 
               
                l  | 
            
               
                PV(E1)
                  | 
          
otherwise  | 
            
               
                  | 
          
| <statement> ::= | |||
              
  | 
          |||
| 
               if D is not a sequence of distinct variables and where {x1, ..., xn} = PV(D) and D' is D with singleton variables and escapes in pattern position removed.  | 
          
| <statement> ::= | |||
              
  | 
          
| <statement> ::= | |||
              
  | 
          |||
| 
               if E is no variable.  | 
          
| <statement>, <expression> ::= | |||
              
  | 
          |||
| 
               
                where all occurrences of   | 
          
| <statement>, <expression> ::= | |||
              
  | 
          |||
| 
               
                if no   | 
          
| <statement>, <expression> ::= | |||
              
  | 
          |||
| 
               
                if   | 
          
| <statement>, <expression> ::= | |||
              
  | 
          |||
| 
               
                if P1 ... Pn are not distinct variables and no
                  | 
          
| <statement> ::= | |||
              
  | 
          
Actual arguments are evaluated from left to right and after the designator expression.
| <statement> ::= | |||
              
  | 
          |||
| 
               if Ek is no variable and all Ei with i < k are variables.  | 
          
| <statement> ::= | |||
              
  | 
          |||
| 
               
                if no   | 
          
| <statement> ::= | |||
              
  | 
          |||
| 
               
                if   | 
          
| <else statement>, <else expression> ::= | |||
              
  | 
          
| <else statement>, <else expression> ::= | |||
              
  | 
          
| <statement> ::= | |||
              
  | 
          
| <expression> ::= | |||
              
  | 
          |||
| 
               where the omitted parts of the exception are implementation-dependent.  | 
          
| <statement>, <expression> ::= | |||
              
  | 
          |||
| 
               where the omitted parts of the exception are implementation-dependent.  | 
          
| <statement>, <expression> ::= | |||
              
  | 
          |||
| 
               if E is no variable.  | 
          
| <statement>, <expression> ::= | |||
              
  | 
          |||
| 
               where the omitted parts of the exception are implementation-dependent.  | 
          
            Missing: expansion of
            case statement/expression
            to cond
          
| <statement>, <expression> ::= | |||
              
  | 
          |||
| 
               if E is no variable.  | 
          
| <statement> ::= | |||
              
  | 
          
| <statement> ::= | |||
              
  | 
          
| <statement>, <expression> ::= | |||
              
  | 
          |||
| 
               
                if C1  | 
          
          In the following rule, the intermediate variable X
          ensures that x is only bound iff evaluation of E does
          not raise an exception.
        
| <statement> ::= | |||
              
  | 
          
| <statement> ::= | |||
              
  | 
          
| <statement> ::= | |||
              
  | 
          
| <statement> ::= | |||
              
  | 
          
| <statement> ::= | |||
              
  | 
          
| <statement> ::= | |||
              
  | 
          |||
| 
               if E1 is no variable.  | 
          
| <expression> ::= | |||
              
  | 
          |||
| 
               
                where o
                  | 
          
| <expression> ::= | |||
              
  | 
          |||
| 
               
                where o
                  | 
          
          CV(o) denotes the Core variable to which
          operation o is bound. The following table summarizes in
          which module from
          ``The Oz Base Environment''
          each operator is available, e. g.,
          + is available as
          Number.'+', which means that CV(o) =
          `Number.'+'`.
        
Operators  | 
            Located in Module  | 
          
|---|---|
| 
               
                  | 
            
               
  | 
          
| 
               
                  | 
            
               
  | 
          
| 
               
                  | 
            
               
  | 
          
| 
               
                  | 
            
               
  | 
          
| 
               
  | 
            
               
  | 
          
| <expression> ::= | |||
              
  | 
          
| <expression> ::= | |||
              
  | 
          
| <expression>, <pattern> ::= | |||
              
  | 
          
| <expression>, <pattern> ::= | |||
              
  | 
          
| <expression>, <pattern> ::= | |||
              
  | 
          
Missing: dots, omitted features
| <statement> ::= | |||
              
  | 
          |||
| 
               if E is no variable.  | 
          
| <statement> ::= | |||
              
  | 
          
| <statement> ::= | |||
              
  | 
          
| <statement> ::= | |||
              
  | 
          |||
| 
               if E1 is no variable.  | 
          
| <statement> ::= | |||
              
  | 
          |||
| 
               if E is no variable.  | 
          
| <statement> ::= | |||
              
  | 
          |||
| 
               if E1 is no variable.  | 
          
| <statement> ::= | |||
              
  | 
          |||
| 
               if E is no variable.  | 
          
| <expression>, <label>, <feature> ::= | |||
              
  | 
          
| <pattern> ::= | |||
              
  | 
          
| <expression>, <label>, <feature> ::= | |||
              
  | 
          
| <pattern> ::= | |||
              
  | 
          
| <expression>, <label>, <feature> ::= | |||
              
  | 
          
| <pattern> ::= | |||
              
  | 
          
| - Up - | Next >> |