f91bc2804d
This commit slightly improves the formatting of the manuals. My OpenBSD machine uses mandoc(1) to format manuals. I check the manuals with `mandoc -T lint` and fix most of the warnings. I also make other changes where mandoc didn't warn me. roff(7) says, "Each sentence should terminate at the end of an input line," but we often forgot this rule. I insert some newlines after sentences that had ended mid-line. roff(7) also says that blank lines "are only permitted within literal contexts." I delete blank lines. This removes some extra blank lines from mandoc's output. If I do want a blank line in the output, I call ".sp 1" to make it in man(7). If I want a blank line in the source, but not the output, I put a plain dot "." so roff ignores it. Hyphens used for command-line options, like \-a, should be escaped by a backslash. I insert a few missing backslashes. mandoc warns if the date in .TH doesn't look like a date. Our manuals had a missing date or the RCS keyword "$Revision$". Git doesn't expand RCS keywords. I put in today's date, 2017-01-18. Some manuals used tab characters in filled mode. That doesn't work. I use .nf to turn off filled mode, or I use .IP in man(7) to make the indentation without a tab character. ack(1) defined a macro .SB but never used it, so I delete the definition. I also remove a call to the missing macro .RF. mandoc warns about empty paragraphs. I deleted them. mandoc also warned about these macro pairs in anm(1): .SM .B text The .SM did nothing because the .B text is on a different line. I changed each pair to .SB for small bold text. I make a few other small changes.
85 lines
2.6 KiB
Groff
85 lines
2.6 KiB
Groff
.TH EM_PC 6 2017-01-18
|
|
.ad
|
|
.SH NAME
|
|
em_pc \- Pascal compiler
|
|
.SH SYNOPSIS
|
|
.B ~em/lib.bin/em_pc
|
|
.RI [ option ]
|
|
.I source
|
|
.I destination
|
|
.SH DESCRIPTION
|
|
.I Em_pc
|
|
is a compiler that translates Pascal programs into EM code.
|
|
Normally the compiler is called by means of the user interface program
|
|
\fIack\fR(1).
|
|
.PP
|
|
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\-M\fP\fIn\fP
|
|
set maximum identifier length to \fIn\fP.
|
|
The minimum value for \fIn\fR is 9, because the keyword
|
|
"PROCEDURE" is that long.
|
|
.IR n
|
|
.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(LONG), \fBr\fR(REAL),
|
|
\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
|
|
suppress warning messages.
|
|
.IP \fB\-R\fR
|
|
disable range checks.
|
|
Additionally, the run-time tests to see if
|
|
a function is assigned, are skipped.
|
|
.IP \fB\-A\fR
|
|
enable extra array bound checks, for machines that do not implement the
|
|
EM ones.
|
|
.IP \fB\-C\fR
|
|
the lower case and upper case letters are treated differently.
|
|
.IP "\fB\-u\fR, \fB\-U\fR"
|
|
allow underscores in identifiers.
|
|
It is not allowed to start an identifier
|
|
with an underscore.
|
|
.IP \fB\-a\fR
|
|
don't generate code for assertions.
|
|
.IP \fB\-c\fR
|
|
allow C-like strings.
|
|
This option is mainly intended for usage with C-functions.
|
|
This option will cause the type 'string' to be known.
|
|
.IP \fB\-d\fR
|
|
allow the type 'long'.
|
|
.IP \fB\-i\fR\fIn\fR
|
|
set the size of integer sets to \fIn\fR. When not used, a default value is
|
|
retained.
|
|
.IP \fB\-s\fR
|
|
allow only standard Pascal.
|
|
This disables the \fB\-c\fR, \fB\-d\fR, \fB\-u\fR,
|
|
\fB\-U\fR and \fB\-C\fR options.
|
|
Furthermore, assertions are not recognized at all (instead of just
|
|
being skipped).
|
|
.IP \fB\-t\fR
|
|
trace calls and exits of procedures and functions.
|
|
.SH FILES
|
|
.IR ~em/lib/em_pc :
|
|
binary of the Pascal compiler.
|
|
.SH DIAGNOSTICS
|
|
All warning and error messages are written on standard error output.
|