<!--
UCSD Pascal System II.0 User Manual
Copyright (C) 1979 Regents of the University of California
HTML markup and formatting
Copyright (C) 2006, 2007, 2010 Peter Miller
-->
<p align=center>
Version I.5, September 1978
<p>
<#include reconstruct/page "page077" "77">
The UCSD Pascal compiler, a one-pass recursive descent based on
the P2 portable compiler from Zurich, is invoked by using the
<a name="compile.14"></a>
C(ompile or
<a name="run.16"></a>
R(un command of the outermost level of the UCSD Pascal system. If a
workfile exists, it compiles that. Otherwise, it prompts the user for
a source file name. It generates codefiles to run directly on the
Pascal interpretive machine.
<p>
Unless the HAS SLOW TERMINAL boolean inside the system
communication area (see section <a href="04-03-setup.html">4.3</a>) is true,
the compiler, during the
course of compilation, will display on the CONSOLE device output
detailing the progress of the compilation. This output can be
suppressed with the <tt>Q+</tt> compiler option (see section on compiler
options below). Below is an example of the output which appears on the
CONSOLE device:
<blockquote><pre>
PASCAL compiler [I.5 unit compiler]
< 0> ...................
P1 [7050]
< 19> ..........................................
P2 [3040]
< 61> ..................................................
< 111> ........
TEST [3003]
< 119> ..............................................</pre>
</blockquote>
<p>
The identifiers appearing on the screen are the identifiers of
the program and its procedures. The identifier for a procedure is
displayed at the moment when compilation of the procedure body is
started. The numbers within <tt>[ ]</tt> indicate the number of (16 bit) words
available for symbol table storage at that point in the compilation.
The numbers enclosed within <tt>< ></tt> are the current line numbers.
Each
dot on the screen represents one source line compiled.
<p>
If the compilation is successful, that is, no compilation
errors were detected, the compiler writes a codefile to the disk
called <tt>*SYSTEM.WRK.CODE</tt> This is the codefile which is executed if
the user types the
<a name="run.55"></a>
R(un command. See Section <a
href="01-01-introduction.html">1.1. Introduction and Overview</a>
for a global description of the system commands.
<p>
Should the compiler detect a syntax error, the text surrounding
the error and an error number together with the marker
‘(<<< ’ will
point to the symbol in the source where the error was detected. In
the event that both the <tt>Q</tt> and <tt>L</tt> options are set,
the compilation will
continue, with the syntax error going to the listing file, and the
console remaining undisturbed. Otherwise the compiler will the give
the user the option of typing a space, an <esc> or
‘<tt>E</tt>’. Typing a