95 lines
3.2 KiB
Groff
95 lines
3.2 KiB
Groff
.TH EM_M2 6ACK
|
|
.ad
|
|
.SH NAME
|
|
em_m2 \- ACK Modula\-2 compiler
|
|
.SH SYNOPSIS
|
|
.B em_m2
|
|
.RI [ option ]
|
|
.I source
|
|
.I destination
|
|
.SH DESCRIPTION
|
|
.I Em_m2
|
|
is a
|
|
compiler, part of the Amsterdam Compiler Kit, that translates Modula-2 programs
|
|
into EM code.
|
|
The input is taken from
|
|
.IR source ,
|
|
while the
|
|
EM code is written on
|
|
.IR destination .
|
|
.br
|
|
.I Option
|
|
is a, possibly empty, sequence of the following combinations:
|
|
.IP \fB\-I\fIdirname\fR
|
|
.br
|
|
append \fIdirname\fR to the list of directories where definition modules
|
|
are looked for.
|
|
.PP
|
|
When the compiler needs a definition module, it is first searched for
|
|
in the current directory, and then in the directories given to it by the
|
|
\-\fBI\fR flag
|
|
in the order given.
|
|
.IP \fB\-M\fP\fIn\fP
|
|
set maximum identifier length to \fIn\fP.
|
|
The minimum value for \fIn\fR is 14, because the keyword
|
|
"IMPLEMENTATION" is that long.
|
|
.IP \fB\-n\fR
|
|
do not generate EM register messages.
|
|
The user-declared variables will not be stored into registers on the target
|
|
machine.
|
|
.IP \fB\-L\fR
|
|
do not generate the EM \fBfil\fR and \fBlin\fR instructions that enable
|
|
an interpreter to keep track of the current location in the source code.
|
|
.IP \fB\-V\fIcm\fR.\fIn\fR,\ \fB\-V\fIcm\fR.\fIncm\fR.\fIn\fR\ ...
|
|
.br
|
|
set the size and alignment requirements.
|
|
The letter \fIc\fR indicates the simple type, which is one of
|
|
\fBw\fR(word size), \fBi\fR(INTEGER), \fBl\fR(LONGINT), \fBf\fR(REAL),
|
|
\fBd\fR(LONGREAL), or \fBp\fR(POINTER).
|
|
It may also be the letter \fBS\fR, indicating that an initial
|
|
record alignment follows.
|
|
The \fIm\fR parameter can be used to specify the length of the type (in bytes)
|
|
and the \fIn\fR parameter for the alignment of that type.
|
|
Absence of \fIm\fR or \fIn\fR causes a default value to be retained.
|
|
.IP \fB\-w\fR\fIclasses\fR
|
|
suppress warning messages whose class is a member of \fIclasses\fR.
|
|
Currently, there are three classes: \fBO\fR, indicating old-flashioned use,
|
|
\fBW\fR, indicating "ordinary" warnings, and \fBR\fR, indicating
|
|
restricted Modula-2.
|
|
If no \fIclasses\fR are given, all warnings are suppressed.
|
|
By default, warnings in class \fBO\fR and \fBW\fR are given.
|
|
.IP \fB\-W\fR\fIclasses\fR
|
|
allow for warning messages whose class is a member of \fIclasses\fR.
|
|
.IP \fB\-x\fR
|
|
make all procedure names global, so that \fIadb\fR(1) understands them.
|
|
.IP \fB\-l\fR
|
|
enable local extensions. Currently, the only local extension consists of
|
|
procedure constants.
|
|
.IP \fB\-s\fR
|
|
make INTEGER ranges symmetric, t.i., MIN(INTEGER) = - MAX(INTEGER).
|
|
This is useful for interpreters that use the "real" MIN(INTEGER) to
|
|
indicate "undefined".
|
|
.IP \fB-R\fR
|
|
disable all range checks.
|
|
.IP \fB-A\fR
|
|
enable extra array bound checks, for machines that do not implement the
|
|
EM ones.
|
|
.IP \fB-U\fR
|
|
allow for underscores within identifiers. Identifiers may not start with
|
|
an underscore, even if this flag is given.
|
|
.IP \fB-3\fR
|
|
only accept Modula-2 programs that strictly conform to [1].
|
|
.LP
|
|
.SH FILES
|
|
.IR ~em/lib/em_m2 :
|
|
binary of the Modula-2 compiler.
|
|
.SH SEE ALSO
|
|
\fIack\fR(1), \fImodula-2\fR(1)
|
|
.IP [1]
|
|
N. Wirth, \fIProgramming in Modula-2\fP, 3rd edition, Springer Verlag.
|
|
.SH DIAGNOSTICS
|
|
All warning and error messages are written on standard error output.
|
|
.SH REMARKS
|
|
Debugging and profiling facilities may be present during the development
|
|
of \fIem_m2\fP.
|