BSD 1 development
[unix-history] / man6 / pi.6
CommitLineData
a3e39b22
BJ
1.th PI VI 11/16/77
2.sh NAME
3pi \- Pascal interpreter code translator
4.sh SYNOPSIS
5.bd pi
6[
7.bd \-blnpstuwz
8] [
9.bd \-i
10name ...
11] name.p
12.sh DESCRIPTION
13.it Pi
14translates the program in the file
15.it name.p
16leaving interpreter code in the file
17.it obj
18in the current directory.
19The interpreter code can be executed using
20.it px.
21.it Pix
22performs the functions of
23.it pi
24and
25.it px
26for ``load and go'' Pascal.
27.s3
28The following flags are interpreted by
29.it pi;
30the associated options can also be controlled in comments within the program
31as described in the
32.it "UNIX Pascal User's Manual."
33.s3
34.lp +6 5
35\fB\-b\fP Block buffer the file
36.it output.
37.s3
38.lp +6 5
39\fB\-i\fP Enable the listing for
40any specified procedures and functions and while processing any specified
41.bd include
42files.
43.s3
44.lp +6 5
45\fB\-l\fR Make a program listing during translation.
46.s3
47.lp +6 5
48\fB\-n\fR Begin each listed
49.bd include
50file on a new page with a banner line.
51.s3
52.lp +6 5
53\fB\-p\fR Suppress the post-mortem control flow backtrace
54if an error occurs;
55suppress statement limit counting.
56.s3
57.lp +6 5
58\fB\-s\fR Accept standard Pascal only;
59non-standard constructs cause warning diagnostics.
60.s3
61.lp +6 5
62\fB\-t\fR Suppress runtime tests of subrange variables and treat
63.bd assert
64statements as comments.
65.s3
66.lp +6 5
67\fB\-u\fR Card image mode;
68only the first 72 characters of input lines are used.
69.s3
70.lp +6 5
71\fB\-w\fR Suppress warning diagnostics.
72.s3
73.lp +6 5
74\fB\-z\fR Allow execution profiling with
75.it pxp
76by generating statement counters, and arranging for the
77creation of the profile data file
78.it pmon.out
79when the resulting object is executed.
80.i0
81.dt
82.sh "FILES"
83file.p input file
84.br
85file.i \fBinclude\fR file(s)
86.br
87/usr/lib/pi_strings text of the error messages
88.br
89.nf
90/usr/lib/how_pi* basic usage explanation
91.fi
92obj interpreter code output
93.sh "SEE ALSO"
94UNIX Pascal User's Manual
95.br
96pix (VI),
97px (VI),
98pxp (VI),
99pcc (VI),
100pxref (VI)
101.sh DIAGNOSTICS
102For a basic explanation do
103.s3
104.bd pi
105.s3
106In the diagnostic output of the translator,
107lines containing syntax errors are listed with a flag indicating the
108point of error.
109Diagnostic messages indicate the action which the recovery mechanism
110took in order to be able to continue parsing.
111Some diagnostics indicate only that the input is ``malformed.''
112This occurs if the recovery can find no simple correction to make the input
113syntactically valid.
114.s3
115Semantic error diagnostics indicate a line in the source text near the
116point of error.
117Some errors evoke more than one diagnostic to help pinpoint the error;
118the follow-up messages begin with an ellipsis ``...''.
119.s3
120.ne 8
121The first character of each error message indicates its class:
122.s3
123.ta 1ic 2.i
124 E Fatal error; no code will be generated.
125.br
126 e Non-fatal error.
127.br
128 w Warning \- a potential problem.
129.br
130 s Non-standard Pascal construct warning.
131.s3
132If a severe error occurs which inhibits further processing,
133the translator will give a diagnostic and then ``QUIT''.
134.sh AUTHORS
135Charles B. Haley, William N. Joy, and Ken Thompson
136.sh BUGS
137Formal parameters which are procedures and functions are not supported.
138.s3
139The keyword
140.bd packed
141and the function
142.it dispose
143are recognized but have no effect.
144.s3
145For clarity,
146semantic errors should be flagged at an appropriate place in the source text,
147and multiple instances of the ``same'' semantic error should be summarized
148at the end of a
149.bd procedure
150or
151.bd function
152rather than evoking many diagnostics.
153.s3
154When
155.bd include
156files are present,
157diagnostics relating to the last procedure in one file may appear after the
158beginning of the listing of the next.
159.s3
160.it Pi
161is too large to run without separate instruction and data spaces;
162hence it will not run on an 11/34 or 11/40.