<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Dieter,<br>
(1)Forward declarations can be used but are not necessary.<br>
A procedure must be defined before it can be used.<br>
(2) Arrays can be assigned.<br>
<br>
Assignment compatible<br>
An expression e of type Te is assignment compatible with a variable
v of type Tv if one of the following conditions hold:<br>
1. Te and Tv are equal and neither abstract, extensible, or limited
record nor open array types;<br>
2. Te and Tv are numeric or character types and Tv includes Te;<br>
3. Te and Tv are pointer types and Te is an extension of Tv;<br>
4. Tv is a pointer or a procedure type and e is NIL;<br>
5. Tv is a numeric type and e is a constant expression whose value
is contained in Tv;<br>
6. Tv is an array of CHAR, Te is String or Shortstring, and LEN(e)
< LEN(v);<br>
7. Tv is an array of SHORTCHAR, Te is Shortstring, and LEN(e) <
LEN(v);<br>
8. Tv is a procedure type and e is the name of a procedure whose
formal parameters match those of Tv.<br>
<br>
Array compatible<br>
An actual parameter a of type Ta is array compatible with a formal
parameter f of type Tf if<br>
1. Tf and Ta are equal types, or<br>
2. Tf is an open array, Ta is any array, and their element types
are array compatible, or<br>
3. Tf is an open array of CHAR and Ta is String, or<br>
4. Tf is an open array of SHORTCHAR and Ta is Shortstring.<br>
<br>
(3) Yes, there is a module Strings which exports<br>
<br>
DEFINITION Strings;<br>
<br>
CONST<br>
charCode = -1;<br>
decimal = 10;<br>
digitspace = 8FX;<br>
hexadecimal = -2;<br>
hideBase = FALSE;<br>
roman = -3;<br>
showBase = TRUE;<br>
<br>
PROCEDURE Extract (s: ARRAY OF CHAR; pos, len: INTEGER; OUT res:
ARRAY OF CHAR);<br>
PROCEDURE Find (IN s: ARRAY OF CHAR; IN pat: ARRAY OF CHAR;
start: INTEGER; OUT pos: INTEGER);<br>
PROCEDURE IntToString (x: LONGINT; OUT s: ARRAY OF CHAR);<br>
PROCEDURE IntToStringForm (x: LONGINT; form, minWidth: INTEGER;
fillCh: CHAR; showBase: BOOLEAN; OUT s: ARRAY OF CHAR);<br>
PROCEDURE IsAlpha (ch: CHAR): BOOLEAN;<br>
PROCEDURE IsAlphaNumeric (ch: CHAR): BOOLEAN;<br>
PROCEDURE IsIdent (ch: CHAR): BOOLEAN;<br>
PROCEDURE IsIdentStart (ch: CHAR): BOOLEAN;<br>
PROCEDURE IsLower (ch: CHAR): BOOLEAN;<br>
PROCEDURE IsNumeric (ch: CHAR): BOOLEAN;<br>
PROCEDURE IsUpper (ch: CHAR): BOOLEAN;<br>
PROCEDURE Lower (ch: CHAR): CHAR;<br>
PROCEDURE RealToString (x: REAL; OUT s: ARRAY OF CHAR);<br>
PROCEDURE RealToStringForm (x: REAL; precision, minW, expW:
INTEGER; fillCh: CHAR; OUT s: ARRAY OF CHAR);<br>
PROCEDURE Replace (VAR s: ARRAY OF CHAR; pos, len: INTEGER; IN
rep: ARRAY OF CHAR);<br>
PROCEDURE SetToString (x: SET; OUT str: ARRAY OF CHAR);<br>
PROCEDURE StringToInt (IN s: ARRAY OF CHAR; OUT x, res:
INTEGER);<br>
PROCEDURE StringToLInt (IN s: ARRAY OF CHAR; OUT x: LONGINT; OUT
res: INTEGER);<br>
PROCEDURE StringToReal (IN s: ARRAY OF CHAR; OUT x: REAL; OUT
res: INTEGER);<br>
PROCEDURE StringToSet (IN s: ARRAY OF CHAR; OUT x: SET; OUT res:
INTEGER);<br>
PROCEDURE StringToUtf8 (IN in: ARRAY OF CHAR; OUT out: ARRAY OF
SHORTCHAR; OUT res: INTEGER);<br>
PROCEDURE ToLower (IN in: ARRAY OF CHAR; OUT out: ARRAY OF
CHAR);<br>
PROCEDURE ToUpper (IN in: ARRAY OF CHAR; OUT out: ARRAY OF
CHAR);<br>
PROCEDURE Upper (ch: CHAR): CHAR;<br>
PROCEDURE Utf8ToString (IN in: ARRAY OF SHORTCHAR; OUT out:
ARRAY OF CHAR; OUT res: INTEGER);<br>
PROCEDURE Valid (IN s: ARRAY OF CHAR): BOOLEAN;<br>
<br>
END Strings.<br>
<br>
-Doug Danforth<br>
<br>
<div class="moz-cite-prefix">On 12/5/2017 5:33 AM, Dieter wrote:<br>
</div>
<blockquote type="cite"
cite="mid:05f0413c-d2a2-6f7e-2829-02e1f53a9c64@web.de">Has anyone
got experience with this topic.
<br>
<br>
I uncovered a few things already:
<br>
<br>
(1) Blackbox seems to want forward declarations of Procedures
<br>
(2) The COPY command is deprecated.
<br>
(3) Is there anything around like MODULE "Strings"?
<br>
<br>
IF anybody has a more complete comparison, I would be grateful.
<br>
<br>
Regards,
<br>
Dieter
<br>
--
<br>
<a class="moz-txt-link-abbreviated" href="mailto:Oberon@lists.inf.ethz.ch">Oberon@lists.inf.ethz.ch</a> mailing list for ETH Oberon and related
systems
<br>
<a class="moz-txt-link-freetext" href="https://lists.inf.ethz.ch/mailman/listinfo/oberon">https://lists.inf.ethz.ch/mailman/listinfo/oberon</a>
<br>
<br>
</blockquote>
<br>
</body>
</html>