[Oberon] Oberon-07 expression0
John R. Strohm
strohm at airmail.net
Sun Jun 21 12:41:32 CEST 2020
It appears that this is for comparisons. The original code allowed comparisons of pointers. The revised code appears to be intended to continue allowing comparisons of pointers, and add capability for comparison of procedure variables.
--- thomas.kral at email.cz wrote:
From: Tomas Kral <thomas.kral at email.cz>
To: "Oberon at lists.inf.ethz.ch" <Oberon at lists.inf.ethz.ch>
Subject: [Oberon] Oberon-07 expression0
Date: Sun, 21 Jun 2020 11:52:24 +0200
Hi,
Looking at some history of `ORP' development, I spot a change in
`expression0'
Cannot understand the code, applies to pointer assignments?
Earlier only base or extended type assignments allowed, newer allows
also procs of the same signature assignment?
from earlier
ELSIF (xf = ORB.Pointer) & (yf = ORB.Pointer) &
(IsExtension(x.type.base, y.type.base) OR IsExtension(y.type.base, x.type.base)) THEN
IF rel <= ORS.neq THEN ORG.IntRelation(rel, x, y) ELSE ORS.Mark("only = or #") END
to newer
ELSIF (xf = ORB.Pointer) & (yf = ORB.Pointer) &
(IsExtension(x.type.base, y.type.base) OR IsExtension(y.type.base, x.type.base))
OR (xf = ORB.Proc) & (yf = ORB.Proc) & EqualSignatures(x.type, y.type) THEN
IF rel <= ORS.neq THEN ORG.IntRelation(rel, x, y) ELSE ORS.Mark("only = or #") END
Many thanks
--
Tomas Kral <thomas.kral at email.cz>
--
Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
https://lists.inf.ethz.ch/mailman/listinfo/oberon
More information about the Oberon
mailing list