| - 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 >> |