| - 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>, <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> ::= | |||
|
| <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
| <expression>, <label>, <feature> ::= | |||
|
| <pattern> ::= | |||
|
| <expression>, <label>, <feature> ::= | |||
|
| <pattern> ::= | |||
|
| <expression>, <label>, <feature> ::= | |||
|
| <pattern> ::= | |||
|
| - Up - | Next >> |