changed font 5 references to font CW references

This commit is contained in:
ceriel
1988-04-18 13:56:01 +00:00
parent defbe00b6a
commit 88d11eaf44
2 changed files with 118 additions and 118 deletions

View File

@@ -39,35 +39,35 @@ Only one compilation unit per file is accepted.
.NH 2
Vocabulary and Representation (section 3)
.PP
The input "\f510..\fP" is parsed as two tokens: "\f510\fP" and "\f5..\fP".
The input "\f(CW10..\fP" is parsed as two tokens: "\f(CW10\fP" and "\f(CW..\fP".
.PP
The empty string \f5""\fP has type
The empty string \f(CW""\fP has type
.DS
.ft 5
.ft CW
ARRAY [0 .. 0] OF CHAR
.ft P
.DE
and contains one character: \f50C\fP.
and contains one character: \f(CW0C\fP.
.PP
When the text of a comment starts with a '\f5$\fP', it may be a pragma.
When the text of a comment starts with a '\f(CW$\fP', it may be a pragma.
Currently, the following pragmas exist:
.DS
.ft 5
.ft CW
(*$F (F stands for Foreign) *)
(*$R[+|-] (Runtime checks, on or off, default on) *)
(*$A[+|-] (Array bound checks, on or off, default off) *)
(*$U (Allow for underscores within identifiers) *)
.ft P
.DE
The Foreign pragma is only meaningful in a \f5DEFINITION MODULE\fP,
The Foreign pragma is only meaningful in a \f(CWDEFINITION MODULE\fP,
and indicates that this
\f5DEFINITION MODULE\fP describes an interface to a module written in another
\f(CWDEFINITION MODULE\fP describes an interface to a module written in another
language (for instance C, Pascal, or EM).
Runtime checks that can be disabled are:
range checks,
\f5CARDINAL\fP overflow checks,
checks when assigning a \f5CARDINAL\fP to an \f5INTEGER\fP and vice versa,
and checks that \f5FOR\fP-loop control-variables are not changed
\f(CWCARDINAL\fP overflow checks,
checks when assigning a \f(CWCARDINAL\fP to an \f(CWINTEGER\fP and vice versa,
and checks that \f(CWFOR\fP-loop control-variables are not changed
in the body of the loop.
Array bound checks can be enabled, because many EM implementations do not
implement the array bound checking of the EM array instructions.
@@ -75,11 +75,11 @@ When enabled, the compiler generates a check before generating an
EM array instruction.
Even when underscores are enabled, they still may not start an identifier.
.PP
Constants of type \f5LONGINT\fP are integers with a suffix letter \f5D\fP
(for instance \f51987D\fP).
Constants of type \f5LONGREAL\fP have suffix \f5D\fP if a scale factor is missing,
or have \f5D\fP in place of \f5E\fP in the scale factor (f.i. \f51.0D\fP,
\f50.314D1\fP).
Constants of type \f(CWLONGINT\fP are integers with a suffix letter \f(CWD\fP
(for instance \f(CW1987D\fP).
Constants of type \f(CWLONGREAL\fP have suffix \f(CWD\fP if a scale factor is missing,
or have \f(CWD\fP in place of \f(CWE\fP in the scale factor (f.i. \f(CW1.0D\fP,
\f(CW0.314D1\fP).
This addition was made, because there was no way to indicate long constants,
and also because the addition was made in Wirth's newest Modula-2 compiler.
.NH 2
@@ -99,28 +99,28 @@ Each operand of a constant expression must be a constant:
a string, a number, a set, an enumeration literal, a qualifier denoting a
constant expression, a typetransfer with a constant argument, or
one of the standard procedures
\f5ABS\fP, \f5CAP\fP, \f5CHR\fP, \f5LONG\fP, \f5MAX\fP, \f5MIN\fP,
\f5ODD\fP, \f5ORD\fP,
\f5SIZE\fP, \f5SHORT\fP, \f5TSIZE\fP, or \f5VAL\fP, with constant argument(s);
\f5TSIZE\fP and \f5SIZE\fP may also have a variable as argument.
\f(CWABS\fP, \f(CWCAP\fP, \f(CWCHR\fP, \f(CWLONG\fP, \f(CWMAX\fP, \f(CWMIN\fP,
\f(CWODD\fP, \f(CWORD\fP,
\f(CWSIZE\fP, \f(CWSHORT\fP, \f(CWTSIZE\fP, or \f(CWVAL\fP, with constant argument(s);
\f(CWTSIZE\fP and \f(CWSIZE\fP may also have a variable as argument.
.PP
Floating point expressions are never evaluated compile time, because
the compiler basically functions as a cross-compiler, and thus cannot
use the floating point instructions of the machine on which it runs.
Also, \f5MAX(REAL)\fP and \f5MIN(REAL)\fP are not allowed.
Also, \f(CWMAX(REAL)\fP and \f(CWMIN(REAL)\fP are not allowed.
.NH 2
Type declarations (section 6)
.NH 3
Basic types (section 6.1)
.PP
The type \f5CHAR\fP includes the ASCII character set as a subset.
The type \f(CWCHAR\fP includes the ASCII character set as a subset.
Values range from
\f50C\fP to \f5377C\fP, not from \f50C\fP to \f5177C\fP.
\f(CW0C\fP to \f(CW377C\fP, not from \f(CW0C\fP to \f(CW177C\fP.
.NH 3
Enumerations (section 6.2)
.PP
The maximum number of enumeration literals in any one enumeration type
is \f5MAX(INTEGER)\fP.
is \f(CWMAX(INTEGER)\fP.
.NH 3
Record types (section 6.5)
.PP
@@ -131,16 +131,16 @@ However, see section 3.
Set types (section 6.6)
.PP
The only limitation imposed by the compiler is that the base type of the
set must be a subrange type, an enumeration type, \f5CHAR\fP, or
\f5BOOLEAN\fP.
set must be a subrange type, an enumeration type, \f(CWCHAR\fP, or
\f(CWBOOLEAN\fP.
So, the lower bound may be negative.
However, if a negative lower bound is used,
the compiler gives a warning of the \fIrestricted\fP class (see the manual
page of the compiler).
.PP
The standard type \f5BITSET\fP is defined as
The standard type \f(CWBITSET\fP is defined as
.DS
.ft 5
.ft CW
TYPE BITSET = SET OF [0 .. 8*SIZE(INTEGER)-1];
.ft P
.DE
@@ -152,22 +152,22 @@ Operators (section 8.2)
Arithmetic operators (section 8.2.1)
.PP
The Report does not specify the priority of the unary
operators \f5+\fP or \f5-\fP:
operators \f(CW+\fP or \f(CW-\fP:
It does not specify whether
.DS
.ft 5
.ft CW
- 1 + 1
.ft P
.DE
means
.DS
.ft 5
.ft CW
- (1 + 1)
.ft P
.DE
or
.DS
.ft 5
.ft CW
(-1) + 1
.ft P
.DE
@@ -189,8 +189,8 @@ Our compiler certainly chooses an evaluation order, but it is explicitly
left undefined. Therefore, programs that depend on it, may cease to
work later.
.PP
The types \f5INTEGER\fP and \f5CARDINAL\fP are assignment-compatible with
\f5LONGINT\fP, and \f5REAL\fP is assignment-compatible with \f5LONGREAL\fP.
The types \f(CWINTEGER\fP and \f(CWCARDINAL\fP are assignment-compatible with
\f(CWLONGINT\fP, and \f(CWREAL\fP is assignment-compatible with \f(CWLONGREAL\fP.
.NH 3
Case statements (section 9.5)
.PP
@@ -198,13 +198,13 @@ The size of the type of the case-expression must be less than or equal to
the word-size.
.PP
The Report does not specify what happens if the value of the case-expression
does not occur as a label of any case, and there is no \f5ELSE\fP-part.
does not occur as a label of any case, and there is no \f(CWELSE\fP-part.
In our implementation, this results in a runtime error.
.NH 3
For statements (section 9.8)
.PP
The Report does not specify the legal types for a control variable.
Our implementation allows the basic types (except \f5REAL\fP),
Our implementation allows the basic types (except \f(CWREAL\fP),
enumeration types, and subranges.
A runtime warning is generated when the value of the control variable
is changed by the statement sequence that forms the body of the loop,
@@ -222,33 +222,33 @@ occurs.
.NH 3
Standard procedures (section 10.2)
.PP
Our implementation supports \f5NEW\fP and \f5DISPOSE\fP
Our implementation supports \f(CWNEW\fP and \f(CWDISPOSE\fP
for backwards compatibility,
but issues warnings for their use. However, see section 3.
.PP
Also, some new standard procedures were added, similar to the new standard
procedures in Wirth's newest compiler:
.IP \-
\f5LONG\fP converts an argument of type \f5INTEGER\fP or \f5REAL\fP to the
types \f5LONGINT\fP or \f5LONGREAL\fP.
\f(CWLONG\fP converts an argument of type \f(CWINTEGER\fP or \f(CWREAL\fP to the
types \f(CWLONGINT\fP or \f(CWLONGREAL\fP.
.IP \-
\f5SHORT\fP performs the inverse transformation, without range checks.
\f(CWSHORT\fP performs the inverse transformation, without range checks.
.IP \-
\f5FLOATD\fP is analogous to \f5FLOAT\fP, but yields a result of type
\f5LONGREAL\fP.
\f(CWFLOATD\fP is analogous to \f(CWFLOAT\fP, but yields a result of type
\f(CWLONGREAL\fP.
.IP \-
\f5TRUNCD\fP is analogous to \f5TRUNC\fP, but yields a result of type
\f5LONGINT\fP.
\f(CWTRUNCD\fP is analogous to \f(CWTRUNC\fP, but yields a result of type
\f(CWLONGINT\fP.
.NH 2
System-dependent facilities (section 12)
.PP
The type \f5BYTE\fP is added to the \f5SYSTEM\fP module.
The type \f(CWBYTE\fP is added to the \f(CWSYSTEM\fP module.
It occupies a storage unit of 8 bits.
\f5ARRAY OF BYTE\fP has a similar effect to \f5ARRAY OF WORD\fP, but is
safer. In some obscure cases the \f5ARRAY OF WORD\fP mechanism does not quite
\f(CWARRAY OF BYTE\fP has a similar effect to \f(CWARRAY OF WORD\fP, but is
safer. In some obscure cases the \f(CWARRAY OF WORD\fP mechanism does not quite
work properly.
.PP
The procedure \f5IOTRANSFER\fP is not implemented.
The procedure \f(CWIOTRANSFER\fP is not implemented.
.NH 1
Backwards compatibility
.PP