An approach to automating syntax error detection recovery ...
-
Upload
khangminh22 -
Category
Documents
-
view
1 -
download
0
Transcript of An approach to automating syntax error detection recovery ...
AN APPROACH TO AUTOMATING SYNTAX ERROR
DETECTION RECOVERY, AND CORRECTION FORLR(K) GRAMMARS
Gordon T. McGruther
NA POSTGRADUATE SCHOOL
Monterey, California
An Approach to Automating Syntax Error DetectionRecovery, and Correction
1Gordon T.
for LR(k)
McGruther
Grammars
Thesis Advisor: R. C. Bolles
June 1972-
~4 £Approved faon. public ttiLaaA e; dutnJJbuX.Lon unlbnlt&d.
An Approach to Automating Syntax Error DetectionRecovery, and Correction for LR(k) Grammars
by
Gordon T. McGrutherLieutenant Commander, United States NavyB. S., Naval Postgraduate School, 1971
Submitted in partial fulfillment of therequirements for the degree of
MASTER OF SCIENCE IN COMPUTER SCIENCE
from the
NAVAL POSTGRADUATE SCHOOLJune 1972
ABSTRACT
An automatic, language-independent syntax error detection, recovery,
and correction system for LR(k) grammars is proposed. The requirement
is made that the reverse of the grammar involved is also LR(k). The
implications and justification for this requirement are discussed.
Given that the grammar is both LR(k) and RL(k), forward and reverse
parsers localize errors and define left and right error context pro-
viding a strong base from which error analysis may proceed. Possible
deterministic and heuristic corrective actions to follow error analysis
are presented. The definition and selection of keys from the set of
terminal symbols for the grammar which enable the reverse parser to be
engaged upon error detection are discussed.
A model of the proposed system, implemented in an XPL compiler for
a large ALGOL-like grammar, is described and the results of test
programs are exampled and discussed.
Possible extensions to the system are presented and areas requiring
further analysis are defined.
TABLE OF CONTENTS
I. INTRODUCTION 6
II. CURRENT SYSTEMS — 9
A.. IRONS 9
B... McKEEMAN 10
C. LEINI.US 10
D.. LaFRANCE 11
E. RICH 12
III.. PROPOSED SYSTEM 14
A.. LR(k) GRAMMARS 14
B.. LR(k)/RL(k) GRAMMARS — 15
tL. REVERSE PARSING 18
D. KEYS 20
E. PROCEDURE - 23
IV.. IMPLEMENTATION 29
A. THE COMPILER 29
B. GRAMMAR 31
C. SPELLING CORRECTIONS 31
D. PROCEDURE 32
E.. RESULTS 40
V. CONCLUSION 44
VI.. EXTENSIONS 46
A.. KEY DEFINITION - 46
B. ERROR EXTENSION 47
C. CLASSIC LR(k) VERSUS SLR(k) - - 47
D. STACK ACCESSIBILITY 47
3
ALGOL-E (MODIFIED) — - - 48
ERROR PROCESSING SYNTAX ANALYZER - — 54
LIST OF REFERENCES - - 71
INITIAL DISTRIBUTION LIST - 72
FORM DD 1473 - -- 73
ACKNOWLEDGEMENTS
The research for this thesis was done on an IBM 360/67 system at
the Naval Postgraduate School.
Ilwish to express my thanks to LT(jg) Robert C. Bolles for his
advice, encouragement, and guidance during work on this thesis.
I. INTRODUCTION
Most compilers and compiler writing systems have some kind of error
detection and recovery mechanisms built in. Most provide a degree of
error analysis and indicate to the user an error type and an approximate
position of the error in the input stream. Diagnostic messages range
from a reference number to full statements of suspected cause followed
by parse histories. The suspected error symbol may be flagged with a
pointer or referenced by name or both. Some error analysis systems are
even sophisticated enough to specify the error symbol exactly and state
the: correction necessary.
IF an error can be located precisely and defined without ambiguity
then it seems logical that an immediate correction should be made and
the processing allowed to continue. In general, it would seem that the
more exactly an error could be defined the more efficiently the user's
and computer's resources would be utilized.
Research indicates that despite appreciable effort, attempts to
design comprehensive error processing systems to accompany the
increasingly popular mechanical compilers, translator writer systems
(TWS), and compiler-compilers has not been very successful. The error
processing systems that do exist range from extremely simple recovery-
only schemes to fairly complex attempts at error correction.
It, is proposed that an efficient automatic syntax error processing
system for LR(k) grammars can be defined.. The system will operate as
a~ function of a grammar only, its parameters being defined by the
grammar analyzer and the grammar parsing function.
The objectives of such a system would be (1) to detect as many
syntax errors as possible. Recovery systems that simply delete code
to: seme predefined symbol do not afford the programmer maximum exposure
of his code to the analytical processes, (2) to detect errors as early
ces: possible to enable a more tenable recovery/correction scheme.
Perhaps one of the most unsettling errors are those diagnosted as "NO
PRODUCTION APPLICABLE." This type of error is generally associated
with the precedence parsers and is the case of symbols being pushed
onto the stack after having been interpretted contextually correct
locally. The error is discovered when a subsequent symbol requires a
reduction of the symbol stack and the error symbol does not fit any
production definiton, (3) to make as many viable corrections as possible
sa as to allow continuous scan for maximum error detection; only as a
last resort delete code to affect recovery, (4) to avoid generating new
syntax errors by either correcting the error or affecting a complete
recovery. The inefficiency in correcting an error (or worse, recovering
from one) only to alter the code so as to create another syntax error
isr evident, (5) to avoid passing errors into the parse stack. This
condition gives rise to the difficulties of having to "undo" emitted
code, and (6) to define errors as exactly and completely as possible
if only to provide more meaningful diagnostics should the error
correction attempt fail.
The error correcting system will be defined to operate in an XPL
compiler for LR(k) grammars whose reverse is also LR(k) and will be
capable of correcting detectable error sequences of n symbols where n
would be fixed when the compiler was constructed. For grammars meeting
this restriction, forward and reverse LR(k) parsers can be defined and
will be employed to localize errors and define error context.
7
The left context of an error is defined by normal LR(k) parsing of
the input stream. The right context is defineable by employing the
finite state machine representation of an LR(k) parser. Key symbols
that uniquely define states in the FSM are selected from the set of
terminal symbols for the grammar. When an error is detected, the next
n symbols are ignored and the input code following the error sequence
rs: scanned for a key symbol. When a key is located, the reverse parser
i's: engaged to parse back to the error sequence. The right context
thus defined, coupled with the left context provided by the forward
parser forms a base from which error analysis may commence. Error
corrections are defined by generating symbol strings of length n and
comparing them with the error sequence.
The' effectiveness of the system will be demonstrated by implement-
ing the procedure for a non-trivial ALGOL-! ike language. The system
was restricted from accessing the LR(k) parse stack. Though broad
classes of errors are correctable, this restriction defined a small
set of errors that is not easily corrected. For the event that the
error could not be corrected deterministically, the error analyzer was
defined to always heuristically select a symbol for insertion or
replacement as an attempted correction. In this situation, the analyzer
would continue to manipulate the symbol sequence between the forward
parser and the key in an attempt to achieve correct syntax but there
were cases where the resulting correction became unrealistic. Hence,
it was necessary to place a restriction on the number of heuristic
attempts that would be made to correct the error. The process was
aborted if a complete correction was not affected in this many attempts,
code was delected through the key, and forward parsing was restarted
at the symbol following the key.
8
II. CURRENT SYSTEMS
As early as 1963 the need for automatic error analysis and correc-
tion systems to be part of syntax directed compilers was recognized.
Efforts toward the accomplishment of this goal resulted in the design
of systems with capabilities ranging from simple recovery to fairly
complex recovery and correction. A sample of the spectrum may be found
in considering briefly the works of Irons, McKeeman, Leinius, LaFrance,
and Rich.
A. IRONS
Irons [5] designed a parse algorithm which was guaranteed to manipu-
late an input stream until it was syntactically correct for some defined
grammar. Briefly, the mechanism involved carrying out all possible
parses simultaneously. An error condition was defined when none of
the current parses could continue. Error recovery and correction
involved discarding the input stream from the error symbol until a
symbol was found that would be syntactically correct for one of the
existing parses. A string of symbols (including the null string) that
would permit the selected parse to continue was then generated and
inserted at the error point. Irons claimed the algorithm to be
"relatively" efficient in terms of space and time requirements.
However, it is conjectured that the algorithm would not be competitive
in terms of space and time requirements if it was used on a larger
grammar for a user-oriented language.
The algorithm accomplishes error correction but at a rather
primitive level as it operates on the \/ery simple mechanism of deleting
code rather than making any attempt to analyze the error relative to
its total environment. No attempt is made to ascertain the extent of
the error or its total local context. For example, if a missing punctua-
tion symbol following a statement constituted the error, then it is
highly probable that a correct following statement would be deleted in
the search for the punctuation mark. Automatic wholesale code deletion
such as this is a fairly severe price to pay for error correction,
particularly when program logic may be destroyed.
B. McKEEMAN
In Reference 10, McKeeman examples the simple extreme. When an
error condition occurs, the input stream is scanned for an obvious
"stop" symbol for the language; the semicolon was used in the reference.
The interim code, including the error condition, is deleted and parsing
is re-initialized at the stop symbol.
The advantages to such a system are obvious--it is easily and
efficiently implemented, it is fast, and it does not create any new
syntax errors. However, as there is no attempt to correct an error,
there is no possibility of executing. Additionally, the programmer
also loses the opportunity to have all of his code scanned for syntactic
continuity.
Example: IF. . . e1
. . .THEN IF. . . e2
. ..THEN. . .
;
Error &2 w""^ not De found in the process of deleting code between
error e-|
and the semicolon.
C. LEINIUS
Working with the LR(k) grammars, Leinius' parser constructor
defines a set of right context symbols to be used for error recovery
10
for each partial parse existing in each state of the parser [9]. Locat-
ing; a member of the set in the input stream allows the completion of a
partial parse and the resultant reduction to be made. When an error
symbol is read, a choice of recovery procedures is offered. The symbol
string may be immediately scanned for one of the currently applicable
right context symbols or the stack may be searched to determine if the
symbol just read is a right context symbol for some partial parse
existing deeper in the stack. If the stack search fails then a decision
must: be made as to the state in which scanning should commence to locate
a: right context symbol. This system is a more refined attempt at error
recovery as the right context symbol offers a more local choice than
simply scanning ahead to a stop symbol. But the system closely
parallels Irons' in that it is also possible that wholesale deletions
can take place while scanning for a required symbol. More important,
however, more syntax errors can be generated.
Example: (X + e^ (X + X))
The second left parenthesis will be deleted while scanning to the
right looking for the required "X" with which to replace the error e^
and that deletion will obviously create an additional error when the
parser attempts to read the second right parenthesis at the end of the
string.
E. LaFRANCE
LaFrance's error correction system employs groups of Floyd pro-
ductions redefining a BNF language with necessary error productions
build into the groups [8]. The error correction mechanism is based
essentially on pattern matching. For errors involving unique productions,
that is productions that require no context check, the symbol at the top
11
of the stack and/or the next input symbol are manipulated in accordance
with an ordered set of transposition, insertion, and deletion rules.
Otherwise, the applicable productions are expanded to three symbols
ahead. These triples are then compared against the next four symbols
from the input stream to find a match in a set of twenty patterns which
defines a correcting modification to the input stream. If no match is
found, the input stream is scanned until a symbol is located which will
permit completion of a partial parse and control is then passed to the
appropriate group and processing continues.
e:. RICH
Rich [11] performed some preliminary work on an error correction
system for mixed strategy parsers based on a scheme suggested by
Gries [3]. It involves using legal triples to correct an error. A
legal triple is an ordered, syntactically correct set of three terminal
symbols for the grammar. The triples would be applied to the symbol
prior to the error and the error symbol or the former and the symbol
following the error for errors restricted to single symbols. In this
manner a required deletion, replacement, insertion, or transposition
would be defined.
Rich anticipated that error correction attempts would have to be
limited and that such a system would require provisions to facilitate
recovery from an error correction that was found to be wrong. This
would entail saving all parsing information at the point of the error,
perhaps in the form of a temporary parse stack operating locally in
parallel with the main stack. More important, provisions for a means
of cancelling any code emitted during an aborted error correction could
12
be required. Rich suggested that if a correction could not be applied
then a unit of code (e.g., <STATEMENT>) would be deleted and a pseudo
statement (e.g., a diagnostic message) substituted.
13
III. PROPOSED SYSTEM
Th'e basic mechanics of the system were initially conceptualized as
involving analysis of the input string following a syntax error. This
analysis coupled with that which had preceded the error would provide a
more cohesive context in which to analyze the error thus enhance error
localization and definition and increase the probability of selecting
the most applicable correction. Error analysis in this environment
would be more definitive than schemes involving matching patterns of
terminal symbol strings or extrapolating possible inputs from the
analysis available prior to the error.
A. LR(k) GRAMMARS
The LR(k) grammars were selected as the class to which the system
would apply as they and LR(k) parsing enjoy several advantages over
simple and mixed strategy precedence (MSP) techniques: (1) the class of
LR(k) grammars includes the precedence grammars, (2) the LR(k) parse
stack provides an accessible and complete parse history to any point
during processing of the object string. This deterministic context
should permit more confident error analysis, and (3) all syntax errors
are detected in read or lookahead states in the form of "ILLEGAL SYMBOL
PAIRS," thus, the LR(k) parse stack is syntax error free.
LR.(k) parsers may be represented by a characteristic finite state
machine (CFSM) [2] which consists of two essential active states—read
and lookahead. The lookahead states are required to resolve stacking/
reduction decisions; that is, the next k symbols in the input stream
define sufficient context to resolve the local conflict. Associated with
14
each state in the FSM is a unique accessing symbol. The accessing
symbol is the terminal or nonterminal symbol from the grammar that has
caused the recognizer to enter that state. In Figure 1, the nonterminal
symbol <Block Body> is the result of a reduction made to a portion of
the symbol stream already processed onto the parse stack and is the
accessing symbol for read state 5. Read state 5 causes the next symbol
in the code stream, s-j , to be read. If s-, is the symbol END then a
transition is made to reduce state 8, if s-j is a semicolon then a
transition is made to read state 36. These two symbols then become
accessing symbols for their respective transition states. Similarly,
the symbols BEGIN, END, ... WRITEON are accessing symbols for their
respective states following read state 36. The terminal symbols that
are state accessing symbols will play a significant role in the proposed
system and will be discussed below.
The entire LR(k) parse stack is accessible and defines the complete
parse history. As LR(k) parsing is deterministic, each new state is a
unique transition from its predecessor. This deterministic trace
through the FSM as a symbol string is processed, continuously confirms
syntactic continuity as each state is entered. Therefore, it is generally
not necessary to access the entire stack to determine left context for
a specific symbol
.
B. LR(k)/RL(k) GRAMMARS
To achieve error isolation and definition of error context, the
stipulation was made that the grammar on which the error corrector
would operate must be both LR(k) and RL(k). Then the construction of
a LR(k) parser for the reverse of the grammar would enable bi-directional
15
+Jas+->
CO
O
CD
cu+->
+->
co
cu <naZ3XJCDa:
1CD+->
fO+->
CO
"O CNJ
<X3
CDa:
T
UJCO
to
COto
c\j
(/J
^J
*1
— +->
cCD-o
a;
J
CD4->
fO4->
CO <£>CO
-a
CDa;
|
a
CD+•>
(D-MCO IX)
-a(OCD
<LU
coUJCO
CO
A>>-ooCO
ooCQV
• E-^ oU i-fd 4-
10 T3rtJ
CD CDto %-s-fO CDa. c
•r—
CD CDJZ X>+J
to<+- -r-
oE
Q- 03O CDM S-
+->
(/>
CD$-
CD
CDJZ+>
U)CD+->
OcCDQ
4->
SZen
Q- OC 4->
CDx: a)
16
analysis of an error in that both forward and backwards parsers should
recognize a given error in a sentence from the language.
It was fully appreciated that the above requirement was not
insignificant. Knuth [7] discussed the LR(k)/RL(k) relation briefly by
exampling a language for which a RL(k) grammar could be constructed but
a LR(k) grammar could not, for any' k. The specific problem that he
exampled was encountered in the reverse situation in the grammar used
in the model. Given the two ALGOL-E sentential forms:
FUNCTION <ID>(<ID>,<ID> <ID>);
and
READ (<VAR>,<VAR>,...,<VAR>);
where <VAR> may be derived from <ID>, an input sequence:
READ (AAA,BBB,CCC);
is deterministic when read in a left to right manner because of the
differentiating reserved word READ, but is not LR(k) when read right
to left, because the parser cannot decide whether or not to reduce the
identifier to <VAR> until the symbol READ has been recognized. This
ambiguity was resolved in the model grammar used in this research by
changing the read list delimiters from parentheses to vertical bars.
(Two other similar changes to the grammar were required and will be
described in Section IV.)
The cost of sacrificing minor user-oriented features should not
necessarily preclude a language from more efficient processing
techniques. Involved here is the sacrifice of minor symbol ogy so as
to permit automatic error processing of the grammar. Minor modifications
of this same nature to specific grammars may enable the proposed system
17
to apply to a significant set of interesting languages. As the model
grammar is not trivial, a valid example is provided.
C. REVERSE PARSING
Error definition and correction was approached from the point of
view that they involved essentially the analysis of an error in its
environment; and that the probability of not making a mistake during
analysis was a function of the magnitude of the error environment
considered. Thus, when an error is detected, it becomes necessary to
read the input code that follows the error sequence and relate this
right context to that on the left. In this manner the error would be
localized. Pattern matching techniques, such as LaFrance's, accomplish
this condition by projecting ahead all productions applicable at the
point of error detection. This extension defines a set of all possible
correct symbol patterns that may syntactically follow the last accepted
symbol. LaFrance extrapolates all legal triples, thus, is able to
correct most single and double symbol errors and, in some cases, triple
symbol errors, particularly those involving reordering of the generated
triples.
Except in the last case, at least one of the symbols in the generated
triple was used to define the right context of the error. When one or
more of the symbols in the triple were matched by symbols in the next
four symbols from the input stream, corrections were based on the
interpretation that the error extended from the symbol at which parsing
halted to the start of the matching sequence.
It would be possible to also define right context by scanning the
input stream to the end and allowing the reverse parser to parse from
18
right to left. When the reverse parser stopped due to an error the right
context would be defined to that point. This can immediately be seen to
be a very impractical method.
A means was needed to unambiguously engage reverse parsing at some
intermediate symbol in the code stream beyond the error sequence. This
would require the ability to uniquely define a parse state for that
intermediate symbol. If a state could be so defined then, by the
nature of LR(k) parsing, the parse history prior to that state could
be inferred. Starting the reverse parser at an intermediate symbol
would, in essence, simulate having parsed from the end of the code
stream to that symbol
.
If the symbol immediately following the error sequence could be
determined and if this symbol was a FSM state accessing symbol, that
is, it defined a unique state in the FSM, then an immediate transition
to that state could be made. Associated with each read and lookahead
state is a defined set of terminal symbols any of which is syntactically
correct with respect to the accessing symbol for that state. When the
transition was made, the reverse parser would be in a position to
immediately reference the last symbol in the error sequence.
In this instance, only ordered pairs, vice triples, would be
required for pattern matching as this is all that would be required to
span the error sequence. The savings made by having to construct one
less level of a generation tree are immediately apparent.
However, an immediate extension was suggested. If the symbol
immediately following the error will define a unique reverse parse
state then it may be possible to select any terminal symbol that so
defines a state, find this symbol in the input stream, transfer to the
appropriate state, and parse back to the error.
19
D. KEYS
The determination of symbols or keys that uniquely defined a
reverse parser state was predicated on several requirements. Certain
required attributes of a key were easily defined: the key should not be
part of the error and it must appear in the code stream.
To ascertain that the keys were located outside of the error sequence
required restricting the maximum length of the error sequence to n
symbols. Then scanning for the keys would commence n symbols after the
point of error detection.
The stipulation that the key must appear required that at least two
symbols be designated keys. The first would be some symbol from the set
of terminal symbols for the grammar and, to provide for the case where
this symbol is not present in the balance of the input stream, the
second symbol would be that used by the grammar to signify end-of-file.
Also, while keys could be located well beyond the error sequence,
they should be located close enough so as to minimize the probability
of encountering a second error while parsing back to the first.
A key that would specify a state in which reverse parsing could
commence was only sufficient for reverse parsing. To provide for the
case that the error was not correctable, it was also necessary that
this key specify a state to which the forward parser could be transferred
and restarted.
If the grammar is structured, as is the model grammar, then keys
may be suggested by the delineators of the basic recursive forms. The
basic form of an ALGOL-E sentence was quickly discerned as the terminal
symbol BEGIN followed by any number of declaration Set>'s, each
delineated by a period, followed by at least one <Statement>, with
20
semicolons separating multiple <Statement>'s, followed by the terminal
symbol END. The period, semicolon, and END were considered as possible
keys.
A grammar analyzer with which to define keys was not designed;
however, a semi -mechanical analysis process was defined and applied to
the model grammar.
After excluding the symbols <Identifier>, <Number>, and <String>
from the model grammar, the intersection of terminal accessing symbols
defining read states in the two parsers was found. The set contained
only ".", ";", the set of arithmetic operators, "OR", "AND", "(", and
":" thereby eliminating END from the tentative list. Applying
intuitive arguments, the set was further reduced.
All of the symbols, less the period and semicolon, were dis-
qualified because they need not appear regularly in a code stream and
they defined illogical potential deletion units. Long strings of code
between the error sequence and the key would increase the probability
of encountering a second error thereby causing the error correction
attempt to be aborted and all code to the key to be deleted. An
illogical deletion unit would be exampled by using the reserved word
AND as a key and the attempt at error correction failed. Though it may
be possible to delete code between two AND's and preserve syntactic
continuity in the remaining code, intuitively, that deletion would
violate the basic structure of the language.
The period and semicolon appeared to have both desired attributes.
Judging from the language, both occur fairly regularly and more important,
the strings of the code between either and an error are of manageable
lengths.
21
Additionally, the left parenthesis and the add and subtract signs
defined multiple states in which the reverse parser could be started.
It would be a simple matter to scan for (say) a left parenthesis, but
it would not be readily apparent in which state the reverse parser
should be started to process code back to the error.
Though a simplistic approach, this general analysis of the grammar
suggested several variants and extensions to the definition, employment,
and effects of keys.
For example, the left parenthesis was found to be an accessing
symbol for six read states in the reverse parser, three of which were
independently unique. (The grammar analyzer employed to construct the
parser was not designed to remove redundant states in the FSM, which
it is possible to do.) As one of the prime objectives was to remain
close to the error so as to avoid second errors as much as possible, it
was seen that it could be significantly beneficial with respect to error
correction capability to assign a symbol such as the left parenthesis
as a key. The parenthesis is an often used symbol and its being
designated a key would enable, in many cases, scanning and processing
shorter strings of code. Resolution of the ambiguity created by the
multiple states defined by the key could be accomplished by providing
for variable path parsing via a system such as Irons'. That is, start
the reverse parser in each state defined by the key and allow it to
return to the error. It may be the case that an increased selection
of possible error corrections may evolve, thereby enhancing the system's
overall ability.
Secondly, only those symbols defining read states were considered
for the model; however, it could be of benefit to not restrict key
22
selection to only that case. Through grammar analysis it may be
possible and practical to define more valuable keys by considering
those terminal symbols that define lookahead and reduce states in
addition to read states.
In fact, a natural extension of the preceding discussion might be
to consider only the symbol immediately following the maximum error
sequence and allow variable path parsing back to the origin of the
error. However, in the event that error correction failed, the
problems associated with error recovery would remain to be resolved.
It would be highly probable that the sequence of code between the error
point and the key would not be a convenient string to delete. One
possible solution would be to delete code to the first available key
that did define a logical deletion unit.
Consideration of the above possibilities was doubly motivated.
First by the objective to keep keys as close to the error as practical,
and second, it was surprising to find a set of fifty terminal symbols
so severely reduced when the subset of those symbols defining read
states in both parsers was determined. It seems very likely that there
may be interesting LR(k) grammars that would be excluded from the pro-
posed system by restricting the definition of keys to those symbols
that mutually defined only read states between the two parsers.
E. PROCEDURE
When an error is detected in either a read or lookahead state,
the corrector procedure requires stepping over n symbols to insure that
the key selected is not imbedded in the error string, scanning forward
until a key is encountered, and engaging the reverse parser in the
23
state prescribed. The reverse parser is allowed to parse backwards
until it either stops at the same point at which the forward parser
stopped or is stopped due to encountering an error. If the length of
the symbol string between the two parsers is greater than n then the
restriction on error magnitude has been violated, code will be deleted
to the key and the forward parser will be restarted at the symbol
following the key. If the number of symbols between the two parsers
isiequal to k, 1<= k<=n, then symbol strings of length k are generated
from the context of either parser and, via a set of pattern matching
rules such as those defined by LaFrance, the generated strings are
compared with the error string and either symbol deletion, insertion,
replacement, and/or transposition will be defined. If k is equal to
zero then the reverse parser has returned to the symbol recognized as
an error by the forward parser. The error may be quickly resolved by
intersecting the symbol sets associated with the two parse states
thereby defining a replacement symbol. Or deletion may be defined by
determining that both parsers would be satisfied by the symbols that
follow the error relative to either parser.
In the case that the reverse parser is not in an error condition
while reading the forward parser error symbol, an insertion symbol may
be defined by intersecting the parse state symbol sets after stepping
the .reverse parser to its next read or lookahead state.
In the event that all deterministic error correction attempts fail,
it may be advantageous to heuristically select a symbol from the forward
parser symbol set to either replace or be inserted in front of the error
symbol and restart forward parsing rather than automatically proceed
with code deletion.
24
At the cost of the extra processing time required, a heuristic
attempt to correct an error would serve two purposes. It may provide
the necessary impetus to complete the correction or, even if the attempt
failed, it should define to the programmer an approach to correction
through the associated diagnostics.
Consider the case where the allowable error magnitude is one symbol
and the error is actually the omission of two symbols. For example:
X :=: Y + IF A THEN...,
where the symbols "Z;" have been omitted. The forward parser will
detect an error when it attempts to access the symbol IF and the
reverse parser will detect an error accessing the plus sign. Neither
parser may be satisfied by any deletion of adjacent errors, nor by the
transposition of any symbol pairs. Also, the intersection of the symbol
sets associated with each parser state will be empty, thus an insertion
or replacement symbol will not be deterministically defined. A
heuristic attempt to correct may be made at this point by selecting
a symbol from the forward parser symbol set for insertion in front of
the error symbol (the error symbol is the word IF for the forward
parser.)
Obviously, by inspection, a choice is available. The selection
would certainly include a number, another identifier, and a left
parenthesis. Two of these three symbols would effectively reduce the
remaining error to a single symbol and permit the deterministic processes
to re-analyze the error.
If the left parenthesis was selected then the gains are not so
obvious. On the next analysis iteration it is probable the deterministic
attempts would again fail. Heuristically, however, another symbol would
be inserted.
25
How symbols are selected from applicable sets is also variable.
Whether they are selected as they are ordered in the set or in reverse
order may be problematic. However, a means to avoid issuing a duplicate
of the previous choice would probably be required.
In the manner described and within the confines of error restric-
tions, the proposed error corrector accomplishes error detection as
early as possible and defines error processing such that the error is
not promulgated to the stack. A strong deterministic attempt will be
made to correct an error and failing that, a heuristic choice of
correction will be applied.
Two other facilities would be required to support the proposed
system: (1) an upper limit to the number of heuristically selected
corrections that would be made for any one error must be specified.
Only when this limit was reached would code be deleted, and (2)
complete communications are maintained with the programmer to insure
that, in the event error correction failed, the diagnostics would
provide a complete history of corrector action helping to isolate,
and perhaps allowing the user to quickly discern the true cause of
the error.
The case that the key symbol had been missplaced and in itself
constituted an error required consideration. No problem would arise
if a key was located in the allowable error string as this string would
not be considered when scanning for keys. If the key was erroneously
placed beyond the error string then the error restrictions would be
violated; however, the violation would not be detected until the code
sequence between the key and the following key was processed. The
corrector would not recognize an erroneous key in itself; hence,
26
correction procedures would be applied to both strings of code, that
preceding the error key and that immediately following.
The possibil ity of defining symbol strings vice single symbols as
keys to alleviate the problem of keys being in error was considered.
Again, these considerations were also motivated by the desire to place
the keys as close to the error as possible to preclude encountering
ssecond errors
.
lit. may be possible to define ordered sets of terminal symbols such
that their being located in the input stream would specify a unique
S-tart state for the reverse parser whose accessing symbol would be one
of"' the elements of the set. For example, if the string <0perator> (
<Ii!entifier> uniquely defined a reverse parser state such that the
accessing symbol was a left parenthesis, then the location of this
string following an error may preclude the requirement to scan further
for a semicolon or period. Thus, the possibility of encountering a
second error while reverse parsing would be reduced.
The above concept of keying on symbol strings may be extendable to
enable the forward parser to perceive or extrapolate symbol sets based
on the state it was in when the error was recognized and the left
context, that, if located in the code stream following the error, would
define unique start states for the reverse parser. It may be possible
to define a set or hierarchy of such strings through a complex analysis
of the forward and reverse parser interface. Continuing the example
above, for a given forward parser state there may be several contexts
in which a left parenthesis may be taken such that each uniquely
defines a reverse parser start state.
27
Not locating such strings following an error would not necessarily
constitute a second error and would require that hierarchical sets such
as these also include any "primary" keys defined for the grammar, such
as the period and semicolon previously discussed. If the forward
parser was currently parsing an <If Statements for example, and
locating the reserved word THEN would enable engaging the reverse parser;
not locating that key should not automatically constitute a second error.
That particular key may be involved directly in the detected error
sequence and scanning should continue, searching for the next defineable
key in the key set for <If Statements
28
IV. IMPLEMENTATION
For the purpose of implementation of the error recovery system
defined, considerations were restricted to those syntax errors involving
only single symbols and transposition of symbol pairs. Extensions of
the system to include errors of greater complexity and scope will be
discussed at the conclusion.
A. COMPILER
A basic model of the proposed error correction system was implemented
in an XPL compiler for ALGOL-E, a non- trivial ALGOL-! ike language (134
productions, 50 terminal symbols, 74 non- terminal symbols). A listing
of the grammar is provided in the Appendix. The model is semmantics
independent, its parameters being solely derived from the forward and
reverse parsers, i.e., parse states and associated symbol sets.
The compiler was constructed from an existing ALGOL-E compiler
employing MSP parsing [6] and an XPL skeleton compiler written by
DeRemer [1] for his SLR(k) parser. Figure 2 shows some of the detail
in the construction of the hybrid model compiler. Studies have shown
that the SLR(k) parser constructor and the resulting parser to require
significantly less space and time than the MSP parsers [2,4]. This was
also found to be the case in this application. The SLR(k) parser for
ALGOL-E required approximately 64 percent of the space required for the
MSP parser for the same grammar. This was considered significant as
the error correction technique to be implemented would require both a
forward and a reverse parser.
29
ALGOL-EMSP
COMPILER
MSPTables
Misc.Procs.
Scanner
Synthesize
MainDrivingProcs.
Main
MODELCOMPILER
Forwardand
ReverseLR(1<)
ParsingTables
Misc.Procs.
Scanner
SpellingError
Corrector
(Rich,modified)
Synthesize
Forwardand
ReferseLR(k)Parsers(modified)
Misc.
ErrorProcessorSupportProcs.
ErrorProcessor
Main
Figure 2
30
DeREMER'SSKELETON
LR(k)ParsingTables
Misc.Procs
Scanner
Synthesize
LR(k)Parser
Main
The SLR(k) parser constructor was defined and implemented by DeRemer.
The gained efficiency of his system over other basic LR(k) parser con-
structors was achieved by constructing a LR(0) parser for the grammar
then adding lookahead states only where they were needed. This approach
resulted in faster construction and reduced parser size.
B. GRAMMAR
The ALGOL-E grammar [6] was found to be not SLR(l), as was also the
case for the reverse grammar. The required changes to the grammar were
essentially minor and did not detract from or enhance the language. It
was necessary to change the delimiters in a read statement from paren-
theses to vertical bars and the ambiguity of the ALGOL assignment symbol,
:=, was resolved by defining a new terminal symbol :<Setq>, <Setq> is
transparent to the programmer as are <Identifier>, <Number>, and
<String> and is similarly assigned in procedure SCAN of the compiler.
Additionally, procedure calls were differentiated from function calls
by requiring the reserved word CALL to precede the name of the subroutine,
It was also necessary to delimit declaration Set> with periods vice
semicolons
.
C. SPELLING CORRECTIONS
Emperically, misspelled identifiers and reserved words form a signif-
icant percentage of errors; therefore, after appropriate modification,
a spelling checking system was incorporated into the compiler [11]. An
attempted error correction would fail if the reverse parser failed to
return to the point of the input stream at which the forward parser was
halted, hence, it was necessary to also enable spelling correction of
misspelled reversed words in the reverse parser. Only reserved words
31
are pertinent to the reverse parser spelling checking procedure as it
is concerned with only the syntax of identifiers, not the semantics,
i.e., spelling. The spelling checking procedures incorporated were
simplistic but demonstrative; only those errors involving one deleted
or added character, one character in error, or two adjacent characters
transposed were correctable. However, the complexity and sophistication
are easily extended if one is willing to absorb the additional cost in
terms of space and time.
D.", . PROCEDURE
The model consists of two primary procedures, ERROR_ANALYZER and
REVERSE_PARSER (Reference Figure 3). CAN_D0_WITH0UT_T0P , FP_INSTRSCT_RP,
and CHECK_CONTEXT_OF_TOP_AND_TOKEN are called from ERROR_ANALYZER to
determine if a symbol is a member of an applicable symbol set or to
determine the symbol in the intersection of the applicable symbol sets
of the forward and reverse parsers respectively. The applicable symbol
sets are those read and/or lookahead symbol sets for a particular
forward or reverse parse state. Procedures TRANSPOSE, REPLACE, DELETE,
and INSERT are called when a tentative error solution has been deter-
mined and the action implied by the procedure names is to be applied to
the symbol at the top of the stack and/or the token symbol (next symbol
to. be read) •
As in the case of spelling correction, the scope of errors was
restricted to single symbol insertion or deletion, one symbol in error,
or two adjacent symbols transposed.
Error analysis was restricted to only that symbol on the top of the
stack and/or the token symbol. This restriction was imposed to
32
FORWARDPARSER
(error case)
iSPELLINGCORRECTOR
i_
ERROR-ANALYZER
RESTARTFORWARDPARSER
Error is
Corrected
REVERSEPARSER
CAN-DO-WITHOUT-TOP
FP-INTRSCT-RP
CHECK-CONTEXT-OF-TOP-AND-TOKEN
DELETE CODE
Error is
Correctable
TRANSPOSE
REPLACE
DELETE
INSERT
Figure 3
33
preclude having to delete code that may have been emitted with the
possible reduction of the second symbol in the stack prior to detecting
the error. Further, the heuristic choice was made to first test for
the possibility of deleting the error symbol. This was to reduce the
occurrences of having to define a <Number>, <Identifer>, or <String>
should the case be that the error was caused by any one of those omis-
sions. For example, if X:=Y++Z; was the input string then one of the
operators would be deleted vice inserting either <Number> or <Identifier>
or any other expression.
For purposes of implementation, the period and semicolon were
defined as the primary keys for all cases. EOF was designated the terminal
key.. The period was used as the primary key when the syntax analyzer
was parsing declarations (reference ALGOL -E (Modified) grammar listing)
and semicolon was the primary key elsewhere.
When the forward parser is stopped by an error condition it is in
either a read or a lookahead state and either the two top symbols on
the stack or the top symbol and the lookahead symbol will constitute
an illegal symbol pair. At this point, the history of the finite state
machine for the grammar is known or may be determined directly from the
current parse state and the set of read or lookahead symbols associated
with that state. That is, given a symbol from the current applicable
set,, either the symbol will be stacked, indicating that the right part
of ' some production is one symbol more complete, or the symbol just
looked at will specify that the right part of a production has been
completely read and a corresponding reduction will be made in the stack.
The result of that reduction will in turn specify another symbol (a
production left-part) toward completing the right part of some
production entered further down in the stack.
34
If the error symbol cannot be corrected as a misspelling then the
error analyzing mechanism is engaged. Symbols are read into a symbol
stack while the input stream is scanned for a key. The reverse parser
is initiated in the state specified for the key and, operating with its
own state stack, processes the symbol stack in reverse until it is
stopped by an error that it cannot resolve as a misspelling or it
reaches the point in the code stream at which the forward parser
stopped. For example, reference Figure 4.
Figure 4(a) depicts the configuration of the forward parsing stacks
when an error (e) has been detected. The symbol e represents an error
sequence of length n or less. If NEXT_SYMBOL(SP) is <Identifier> and
is determined to be a misspelled reserved word then the correction is
made immediately and parsing resumes; otherwise, the point of progress
of the parse stack is marked (SAVE_SP, Fig 4(b)). The input stream is
read to the key and the reverse parser is started in the read state
for that key (R_STATE_STACK(RP))
.
Figure 4(c) depicts the configuration of the stacks after the
reverse parser has successfully parsed back to the error point and
error analysis and correction begins. (Note: pointers SP and SAVE_SP
have been interchanged for compiler execution considerations only.)
When forward parsing resumes after error correction, symbols through
the key are read from stack NEXT_SYMBOL. Only then does the parser
return to reading the input stream. If the error cannot be resolved or
the reverse parser is halted short of error e by additional errors then
the code from the error to the key (NEXT_SYMBOL(SAVE_SP) ) is deleted.
Figure 5 depicts various configurations the two parsers may be in
when the reverse parser has stopped. In conditions 5(i) and 5(j) the
35
SP-> — >
a
: STACK NEX
4(a)
1
SYMBOLSP-> key <R SP
SAVE SP->
'0
key
•
ai
ak
e
ai
.
I RP-> key
STATE_STACK NEXT_SYMBOL R_STATE_STACK
4(b)
SAVE_SP->key
•
ai
RP->
<R_SP-->
ak
sn
SP->s
.
Je
a.
• • •
so 1
Skey
STATE_STACK NEXT_SYMBOL R_STATE_STACK
4(c)
Figure 4
36
errors are defined to be too far apart and symbols e -| to key are
deleted and forward processing is re-initialized at the semicolon.
The conditions depicted in Figures 5(a) through 5(h) fall within the
scope-of-error restrictions imposed and error analysis may be performed.
Note that in configurations 5(a), 5(b), 5(e), and 5(f) the reverse
parser may or may not be in an error state, i.e., symbol e, may be
syntactically correct as the left context of a, .
.
For configurations 5(a) through 5(h), symbols a. , e, , e?
, and
a. are checked against the read or lookahead symbol sets for the forward
and reverse parser states so as to make an appropriate deletion, inser-
tion, or transposition. If the error cannot be so resolved then a
symbol is heuristically selected from the applicable forward parser
symbol set without reference to the reverse parser and inserted in front
of the error symboT. This heuristic- approach may be applied four times
before code will be deleted. Control is then returned to the forward
parser.
Example 1: Configuration 5(a)
Both the forward and reverse parsers are in read states after read-
ing symbol e, . Let the forward parser be in state f, and the reverse
parser be in state rk
Let fssk
be the set of symbols associated
with the forward parser read state f, and similarly, rss. represents
the symbol set for r. .
If a- is a member of fss, and a- is a member of rssk
then
delete e-, and continue normal processing.
If the reverse parser (RP) is not in an error condition then step
RP to its next read or lookahead state (rk+
, ). If the intersection of
fss^ and rssk+1
is empty then replace e-, with the intersection of
37
5(a)
5(b)
5(c)
5(d)
5(e)
5(f)
5(g)
5(h)
5(i)
50)
s !
ai
el
6J
9
ai
el
SJ
»
a.i e
le2
a.i
i
J L7
ai
el
e2
a.i
)
7a
ie
1a
.i
»
7a
ie
l
a
.
,1
j
ai
el
e2
a.i
1
7
ai el
e2
a.i
^
V
ai
el
a,i
e2
ai
»
J LV
ai
el
9J
e2
3
J L
Figure 5
38
fssk
and rss^ (if this intersection is also empty then replace e-,
with a symbol from fss. ) and continue processing; otherwise, insert the
intersectionof fss^ and rssk+
-, in front of e-, and continue. (Note:
That the reverse parser may not be in an error condition when it reads
the symbol causing the error for the forward parser is very pertinent
to the error analysis process. If it is the case that it is not in
error then the initial assumption is that a symbol is missing in front
of the error symbol. With that assumption made, a symbol that is
syntactically correct for both parsers is required for insertion in
front of the error symbol. This is accomplished by stepping the reverse
parser to its next read or lookahead state, which ever occurs first.
The insertion symbol is then taken from the intersection of the symbol
sets associated with the two parse states.)
Otherwise, (RP is in an error condition), replace e-. with the inter-
section of the FP and RP read state symbol sets if that intersection is
not empty (if that intersection is empty then insert a symbol from fss^ )
and continue processing.
Example 2: Configuration 5(d)
Both of the parsers are in error conditions, the forward parser (FP)
is in read state f^ and RP is in lookahead state rk
. Again, let
fss^ and rss^ be the symbol sets for the respective parse states.
If e2
is a member of fssk
and e-, is a member of rssk
then
transpose e-, and e2
and continue processing.
If the intersection of the two symbol sets is not empty then
replace e-j with a symbol from fss^ , delete e2
, and continue.
If e2
is a member of fssk
then delete e-, and continue.
39
Otherwise (attempt the last resort), replace e-, with a symbol from
fss. and continue processing.
E. RESULTS
Figure 6 examples some of the results of the error correcting system
described. Generally, the system recognized a broad class of single
symbol errors of insertion and omission and double symbol transposition
errors. However, there was one small, well-defined class of error that
though recognized, could not be corrected while retaining the imposed
restriction of not modifying the parse stack below the top symbol to
achieve an error solution.
For those constructs in which a statement was started with a
reserved word followed by an identifier, the omission of the reserved
word was not detected until the symbol following the identifier was read
as it is syntactically correct for statements to also start with an
identifier. In this instance, the true error point was two symbols from
the top of the parse stack when the error condition was recognized.
In the case where the reserved word was not omitted but merely
grossly misspelled such that the symbol was interpretted as an
identifier, the error condition arose when the following identifier was
read. In this instance the true error point was one down from the top
of the stack.
For both situations, the omission and misspelling of the reserved
word, by the time the error was discovered, the identifier following
the error had already been reduced and associated code emitted.
For the class of error conditions that was processed correctly,
most conditions were corrected in a logical manner; logical in the sense
40
oz.
oo
<-
O.:
a.
s:
oO-
LU.
I
_L
o.
o.
•
oin• f
COCOtt
II
Oo_J-
o
CMr»o>
Z.
<oo
LU
-J<X'
<Xo
OA>lo<CcTCiCOO
<X<Q-|-_l_l<luQ
_J<>-o<OiX
JOO>-00
00 IOO
LU
<uo
Q
LULU
LUCO
OLUCO
oz
LUooZ
to
-Ji-
zo
cC<to
<c\l
OLUa:oroo
LUZ
ZO
M >--J <
CCZ CCo <
>-
co
aLUo<_i
a.LUcC
UL SO >LU <r cC
oOCT
a
LU>c£LU00LUcC
QLU
It I
o_
00
»;-
zo
oUJa:ccOo•K-
iu
h- accc z
xoLL
OX<_>
LU
CL
oo
o
o
zZ>
co
o
o<_lCLLUa:
to
CM
LUz
z t
OhO
= cc
>-> Z X>-LLco
-JLO
l_ +z:ooS Xo
OLUzh-hCL
o>-<oJOQ.LUa:
*
zoo
co
LU
Ozz
h-S I-.—»—
<
E Z>Of
oZlui-Hct:
h-OLUQ_ILUmuDO
CCto Qlto—ZCO
o OH o.-h
LU2:
zo
oXoLU
CD
LUO2-
-Jr
Za
o
+
oz<
ao
zLULU
LUCO
Ah-LU00V
oZ
LUz
zo
oa:H-XoLL
CO
oLU
o< •
Q.CLU •
d<oo
Z _Jh-OOILC£H- t-
X_J
u_<
oocc-LL1(-
U-X-hJ—h- IzxLU|—O I
•-hXI—
orLU*—
I— LUhhCC CXQilu oo^:00 00
OZCNJOro
n0
LU
Z
o
LU
>-CO
oLUO<_JQ.LUcx
3
o(XoIS
UJ>o£LUO0LUCC
UJ
—
JO_)>lu<tCl.cC00 lo00t-nOs:<
LU* CC
to—Zr\jOrn
LU
z
LUz z
UJ
oz
oz
3
zLU
LUCO
O
Cti
LUooZ
ZO
QC co<CQ<Z X
a.Q_Jz<<
ClfNj<LU ••
CC
Z LU
Z-Jluq:lu<3:Xl-OUJ
CO
—
o
E ><
OcsiZcO
H- II
CC ••
LU00<ZXI—lQ_
* -if <
Z ZvOO Olt\
CO
Uiz
z<o -
r xCL
O-Jz<
LU-JLULUH-Om
or
OO
ro
oLUa:CCoo
o
—
Lursj
CCCC—OOvf
•)(
o
—
LU<MCCCC—OOLTi
#
OIJJ
a:ccoo)!
oLUa:a:oo-:«•
-K
I—o
—
IU-HCCCC
•aoo
o
—
LUr-t
CCCCoor-
n-
oLUCCccoo•K-
^5-
o
—
LUr-4
a:ar
—
Ooco
o
—
LU-HCCcc—OOOto
CO
LU
o
Aat~LU00V
co
o
o<t_JaLUo£
if-
}f
zo
oLU0C"
oc:
oo
K-
M-
•M-
OUJ
LU
(NJ
OLU\-
OLUh-LUOOOUJ<o
CODCcCo<ceoCCLU II
OOUJ
0_lHH<T>>LUCC-J0l<
<zo<
• LUCOLUa:_i H-LUO- »-00
iL<-< II r-\
Ml/lOV- > II
ZU.I<»Lucxa:Q>-CO<>Hl>-= Xoo _JU)UJLU<
<< >_ (VJJCiOUU21LLULU—acZ cvJr»i
QiocccCLU
LO
CD
OH-8-
to
to
41
a:
aor:
orUJ
OO3 ror~* A> or
o LU LUi—
»
CNJ
or:
Ll_
LU i—
1
t—
(
z 1- 1-»—
1
LU oo z_l z < LU
Qz _J i—
i
Dz •
V•
e o ••- A u_ COUJ LU ro or t-H oh- r o r-< ui •
•—
«
A< >—• • * ma: aco LU D_ LO3: i—
i
r-( i— o-: z t—
i
A • ••
s r-t I—
1
LU<WO _J Z
>-Ci
^ro
co
COo LLI LU VLU LU O 3 •«
z Z z r or: z O CO _l ro< —
<
—
1
a o t —
<
_J _l OS". O V ^r O ii
5 z s z o oo z Z <z A H-H A c o LU< o a LU C?r OO or —I o z:lu E -£ 1— or LU CD t >—
4
(X e E mP LU <z h—
1
V • H• z O e CO Q.LU LL • O
LU Q UJ V X M A h- r-< *r •
Z X 5 ..i.1—
<
e LUH- 1- Q t-H o inUJ H LU_I OO z. < LU o i-H
LU g > U-JOi o O-'LU uj-:it LU X z _J2 CD 3< z LUO orr X I—
<
t—
<
o UJh- > KX <r X t—
4
LL -J •zLU CO e LUO LU CD VOV • o^-<CD z CD e or: or. o H- z t LU_J
e LU LU Lf\ < • t LUO » Ooo CM H-s M X = O 5 LUO orz-j z o r~ uz• *> • «. M H- A< _JLU t 9 '—' '—
• CD < 5 cr o> LUOr ^ e e ••> r co o hhqC OO <_JV o • •>D rH \-
II or: z IO I—
<
Q. ; E 3 LUOOO II o o«. o< —
1
2S z KH ^.^ t* o<z«« z z zo 00 CC _lO O eg 2i—
<
t-H -hlo >—
4
O Q.. O o 1
1
1- Zr-( LU1— LA o o l-O D_ LUa- or: CDQoO 3 t—
I
n IU o:oroTV <r <3LU or:> OO I-.-H q: 5"LU>—
i
CO 1— ii ^ LUOLU _i —J "-i LU< z << LU >-H- LU LU 3 3oroo< a. Q--J oo or < ua oooor • JO -> orZl- LU UJa: ZCO or. .« O o LU< h- LLI CD • -".UJ«-H_J or: or< »—
«
h-Q _J_J z _J»— U_ < LL OO Z OluLU X LL Z O 1—
1
<LU X O ;ZO <to.'Q
w-ft -ft O -ir »-i ft LU or: co 00 ooa h- IU -X- »•!J-Jl—
1
LILULLI#—
"
-ft -ft
—
-ft~"~
-ft^
~
OS or. LU 00 _"<r Oslh-t- or>h-
ar>- < -JOO h- --H|~< LUOzm z zo^ Zsf ZN oroo a. _I<LU 3 ^1- z II •— _l LU00LUoo o oo O-H a—
i
LU >—>'.200 O •}t CM o<cor'-< or h-—
«
—
<
mH w-
1
—1 1—
<
_J a or CD ji- f—
1
—< i-:2Q. UJO LU
h- i— h- h- h- Q< or m < < i-< y 3wOo
—
o o
—
o
—
O
—
ZO < or a. LU— OOLUOLU,-| LU LU<—
<
LU>—
•
LU-H Ouj 3 o > so LU -JO OOOOI—or OT ar or: or: o_i D. or _i a: 3 or t>i-H OcT ooCC— OT QC or:
—
or:
—
U.I—1 o or < or 00 OTr-ILLLL oro<O a O O a 00 1—i ll LU >—
<
o LU O i—l o <or—
i
Oc\j o O'n o<J- OLn i— OO o-o o II LU Oar.-< r~i H i-i -ft LU * or 1—
1
1—OO LUUJft ft & * ft •ft X X < it- 4(- ft oroz O X•ft •ft ft -ft -ft ft (- # O- K ft ft CLOLU r—ICNJI
—
coo>
42
that the corrections made were those that a human reader would be
expected to make. A few configurations were made syntactically correct
but not in the logical sense defined above.
Example: FOR A := PETS 1 1 UNTIL...
PETS, not recognized as a misspelling of STEP, was interpretted as
an identifier resulting in the first "1" being replaced by STEP.
For the case of self-embedding symbol pairs such as BEGIN... END and
(...), the omission or duplication of the leading or left symbol
resulted in the deletion or insertion of the right symbol at a later
point in the input stream. At first brush, this particular correction
may seem fairly gross but the delection/insertion points were syntactically
defined without regard for what ever the programmer's intended logic may
have been.
For those errors that the system could not correct, the history of
the attempts at solution prior to abandoning the error and deleting code
and a definition of the last error encountered by the reverse parser
were made available to the programmer, thereby fairly isolating the
error and defining the inability to make a correction.
The time involved in correcting errors averaged about 0.015 seconds
per error for the programs tested.
43
V. CONCLUSIONS
The syntax error correcting procedure proposed in this thesis is a
viable system. While costs in terms of time and space are involved,
its effects on a user's code are considerably more attractive than those
of popular recovery systems employing automatic deletion of code to some
stop symbol. Whereas the proposed system was defined to be grammar
independent, the working model implemented was semi-automatic, using
predefined start states for the reverse and forward parsers. It is
recognized that these crossover points are significant with respect to
fully automating the error correction process; however, they are the
only points in the model that are language dependent. The correction
procedures themselves are language independent; their only parameters
are parse states and associated symbol sets defined by the parser
constructor.
The power in the procedure is attibutable to the LR(k) parsing
employed. Errors are examined in a very* large context provided by the
two disjoint state stacks of the forward and reverse parsers. Through
LR(k) parsing, syntax errors are detected as the input stream is read
and are precluded from the symbol stack.
The model demonstrates that the proposed system detects and deter-
ministically corrects' a large class of errors thereby affording the
programmer maximum exposure of his code to the analytical processes.
A strong heuristic attempt to correct is provided for those cases that
the error cannot be resolved deterministically . Should error correction
fail entirely, the system provides a good diagnosis and all residue of
44
the error is removed, thereby insuring against generating or cascading
syntax errors through the remainder of the input stream.
45
VI. EXTENSIONS
The error correction system described in this thesis indicates
several areas where worthwhile extensions can be made and where further
analysis is necessary.
A. KEY DEFINITION
As keys seem to lend themselves to empirical definition then it
would seem logical that they may be analytically defined as the grammar
to which they belong is being analyzed. An analyzer capable of defining
a set of valid keys should also enable automating the error corrector
by associating keys with states for both parsers and providing an auto-
matic link to a key and the engagement of the error analyzing system
from any state in the parser when a syntax error is detected. It may be
feasible and practical to define a hierarchy of keys so that it would
not be required to go beyond a minimum distance past the outer limit
of the allowable error sequence. This would serve to minimize the
likelihood of encountering another error thereby causing the corrector
to abort.
It may also be of value to define a grammar analyzer capable of
recognizing hierarchies of key symbols and symbol strings and associat-
ing these sets with unique parser states such that, for a given senten-
tial form, dedicated keys are available to minimize the key-to-error
distance and increase the probability that a key itself does not
constitute an error.
46
B. ERROR EXTENSION
The current implementation severely restricts errors to single
symbols except in the case of adjacent symbol transposition. A logical
extension would be to extend the limits to provide for multiple symbol
errors.. This would require either predefining and storing the legal
symbol strings or defining a symbol string generator to be called as
required.
C. CLASSIC LR(k) VERSUS SLR(k)
The classic LR(k) parser stops whenever it encounters an error
symbol in either a read or lookahead state. The parser employed in the
model defaults to the next read state in the event that the lookahead
symbol is not a member of the symbol set associated with a particular
lookahead state. That is, a successful lookahead defines a stack
reduction, otherwise the decision is to stack (read) the lookahead
symbol via the next logical read state. Only after the symbol is read
is it determined that it is an error symbol or not. It would be
advantageous to be able to stop the parser in a lookahead state rather
than in the next read state so as to keep the symbol preceding the
error readily accessible at the top of the stack and available to
participate in error analysis.
D. STACK ACCESSIBILITY
As inconvenient as it may be, there are constructs in the grammar
such that their containing errors is undetectable until the point where
correction is needed is in the stack. More analysis is needed to weigh
the costs of incorporating a means of accessing the stack and, if
necessary, deleting and regenerating code against the desire to and
benefits of being able to correct this type error.
47
oLU
QO
uu
I
-Joo
1X1
CO
zA oD —i
z f-uu <
a:^ <o _JO o_J LUCQ o AV V ZA A OD Z LU
< —
»
CO
A UJ O Vi^ X LUO coO V V-J o —CQ o II
V -j • •
CO MII V• • A• • II
• • <A • • LUs; X< AaL ^ ^o oo oa: _J _ja. CO COV V V
o
<a:<_joLUoV
—• Z A
LULU COCO
2:II O• t •—
«
• • 1—
<A a:Z <•—
«
_JOLU LUco aV V
Azot—
I
<<oLUOV
LUCO
zo
A ~<a:<oLUQV
QZLU
A>-
DA OLU
>-
ooco
oO_JCO
V
AQZLU
OoCQV
co
uo_JCDV
zLU51LU
<I—COV
A>QO
A CO
ZIUs:LUI-<I—CO
V
A>-
OoCO
oo_)COV
oo_JCOV
LU
2:LU
A <
LU
LU
<
LU
LU
COV
CO
LU-JQ.51
CO CO
VLU1—
<
V
zLU
<CO
zLU2;2O1—
1
coco<V
AH-ZLU
SILU\-
<co
LU_Ja.
coV
AOo_JcoV
A
LUI-<I—CO
OHau_v
A»-ZLU
LU LU
<CO
LU
Xv
A
2:UJ
l—<co
a<cLUa:V
A
LU
LU
CO
LUf-»—
4
ar3:V
A AzLU
LLI
CO
LUCO<oV
<oLU
a:X)QLUOOa:a.v
-j<oIJJ
oc
X)oLUooa.
LU_ja.
—
<
COV
48
A A2: Sa: QiLU LUH- K
A V VA + 1
Z ••
CD A At-4 A Z Z00 z o o00 o f—
t
»—
1
A A A LU ft—
1
OO 00oc H K oC 00 LU 00 ooLU Ql a: a OO A 00 LU LU—
<
*. < < X LU Z _l c£ OCLL a. CL LU DC o 1X1 D. a.
A t—
<
A V Q. 1—
t
X XZ h- oC h- K X oo A LU LUa 2 LU X X A LU OO Z»—
i
A LU —( o O O V LU o O CJH- z Q LU H-
«
i—
*
< a: 1—
1
i—i —
<
A < o »—i —
i
a: DC A LU A A a. 00 f- h-z a: »—
<
V t- V V LU X a Z X OO LU LU A AA a < I— Z _J < a LU LU £ s: s: IEZ -H _i < A LU A A CD 1— LU »—
i
V DC X X ct: OCO K o DC Q Q LU A LU < Q_ X OO Q- h~ H LU LUi—
•
< LU < < t—
i
_J z _J »-H i—
«
V 00 A X —i H-
1
\~ H-\- a: a _l LU V m a CD a: DC \- LU Z LU A a: a: V V< < o X < —
i
< < o A a DC o V z. < <roC _j s: LU A —
<
00 —
<
> 00 oc —I a. t—1 OC V V i +< a < Q _l Q ac 00 DC CD LU DC X oo A LU-J LU a: <f < < LU < Q z> i—
i
LJ LU O0 UJ l~o a o a o LU > c£ > LU 00 LL 00 LU oo VLU o a; o X V Q_ V h- V i—
«
CD O a: =3 — — »— —Q >- ac < _l X A Q. K x> —t a. < II
< a. 3: V _l II LU A DC ft—
1
II •7~ 00 t- X -J • •
LU oc; CD a: < • • V a LU a: • * LU V LU LU O • •
_J DC Z> O II o • t K- ft—
4
o • • Q sa < OO LU •• Q A LU li- 00 i—
i
X a. LU As: V V V • • 1 _l- - _i A a oo ft—* ao A V 1- »—
<
M ZH-» < V 1- h- V h- z> LU — t-t V V ooo A o z LU z ^0 -J II DC *—i
V Z o LU 00 LU V CD tt < II 00— —
-
— o -J s: V a < • • V • • o^tl 1—
1
— LU —
—
<—» —i — f t LU• t H- It H II V DC A II DC•
a:
• • < 14
• • ii
—>
Q<
• t
• t
AZ
a.X
A < 00 • LU a LU
Z _j A A • • Q X A —iO o Q H- H- LU z 00 o»—
I
LU < Z oc A 1- h~ a 00 —
«
h- Q LU LU < LU Dl a. >—
«
LU 1-
< X 3T o. _l i—I —
«
OO DC LUa: LU Z CO DC c£ 00 a. SI< _J -J o h- < u O LU X X-J Q. < »—
1
X t—
«
00 oo DC LU H-o s: o 00 o DC CO CD a. i—
i
LU —
i
o 00 —I < z> Z> X LU orQ 00 _J < oC > oo 00 LU —< <V V V V V V V V V V V
A>DC<
OCQ.
V
As:a:LU
V
49
ASiaLUJH-
AZ. Z< OUJ A -4
-J > 00a a: 00
~* <2:
LUCC
A V •—
1
a.Z CC X
""* a •» a: O- LU
VA 00 —
.
A z «-»
1- 00 z A <I AZ UJ A a Z LU A Z
A UJ cC Z »—
4
O _J Z O1- 2: A a. O CO 1—4 a a •—»
Z UJ cC X 1—
1
OO 00 —4 1-UJ H- UJ UJ 00 UJ 00 A CD 00 <21 < H-4 V 00 cC UJ > V A 00 _JUJ 1— «"-» LL UJ CL cC a: Z LU LU
-J A 00 t—
1
A CC X CL < a a CC CCLU -J A h- O CL LU A X 2: z 4—4 o_ V
_J 1— z Z Z X V S LU 1—
•
< 00 X> < Z UJ »—
1
UJ CC a. 00 LU Acc O UJ —4 a a V A LU z A CL A LU Z< 2: 00 —
•
< O K- < >- 2" CC z O5: Z z 00 V UJ A y UJ CC z cC O. < k-H
>—1 A O UJ X O *—* *—
4
Z -J < < UJ X LU 00
A A c£ A a: <—
1
1—4 a: _j Z a < 21 LU 1— LU _l 00>- > A CL UJ UJ i— 00 CL _i _i —
4
A < LU a >~4 _J O LUcC ar H- V _J £ O 00 X < _i O a: LU —I CD QC a z _) O CC< < Z CQ 21 z < UJ < < LU X a V CL a < < CD CL
2: SI LL) » < Z> x> V V O UJ 1—
4
CD LU O V X1—
<
1—
<
51 I—
4
<£. LL 11 V X LL —1 QJ z V _J 1—4 LUa: a: UJ A cC V V — <— M t—
1
_l V < a O «-« Va. a. _l >- < • _j _i 1- < — LU 1— aV V UJ cC > -j _i z 11 _J CD _i II
< V A < < UJ V • • O z V V • •
# v. > 21>—
1
II
— —— — — _J_J V
Q—4
• t OCD 11
—
~
* •
aA A < cC • • < 11 V A V • t A LU21 2T 21 Q_ »• l_> • • II
— Z — — t * Z _Ja: or —
!
V • • • • II O II a OOuu UJ CC A UJ • • • • t—
4
• t A t-H OO
K- H 0. 1- a: A * t 00 • • >- OO _l
V V VII
• •
• •
A>cC<2:
ora.V
zUJ
2:UJ_lUJ
>cC<2;1—
1
cCQ.V
Z>aUJ
ljaQ-
UJ—ICL211—
«
00V
•J_J<UUJct:
=3aUJ
ccaV
A_l_J
<OZaK—
1
H-OZZ>LL
V
A
1—
t
a<LUX_l
<V
00LUcCQ_XUJ
Z<UJ
-J
CQV
ASTCCUJh-
Z<LU_JOOCDV
CC<£.
1—4
CCa—
z<UJ-J
CDV
00UJCC0lXLU
_l<OHO_JV
II
• t
• •
AZOt—
4
I—<_JUJCCV
50
zUJ
A h-
A A CC 00H- t—
»
V *•
00 A < *->•
t—
i
CC o. t A-J t—
1
< o AACC
CCLU
cC Q- z o UJ —i>—
i
*- 3 z A —
(
LL< Q o 1—
1
O A LL i—i
o_ A Z3
COV
Az
z CCLU
1—
ZQ UJ o o UJ A Q A A t—
4
Z «»—
»
UJz A >—
<
CD A M X O < Z OO LL LU o3 cc LL V Q O0 z UJ a s: *—
4
o A —1
o UJ M < 00 s: t—
1
X —i < A A H- t—
t
cC V£30 —I H A UJ UJ < Q H a: O CO Z V LU
V LL z Q X CC CC < UJ O < o s: LU »—
<
At—
i
UJ < O. o UJ CC z a CC < a A U_ oA »- Q UJ CC X o X 3 13 Oj a. a: t—i D t—
i
<H- z t—
(
X >—
<
UJ cc Q LL Z < V < 1— LUoo UJ V <I V a. z UJ o 00 a. UJ z Xi—
i
D CC a. CO o o O0 l—H OO Oj z X LU—I H-t A —
1
• • 3 t—
•
o 00 1— LU o o a •p>
V Q < a 00 h- cc UJ o -J a —
<
y i—
i
o>- < a. z A A V o Q. _J z s cC 1- a V r—
'
< A UJ 3 Q z z V IE! 3 < CL o —
t
h-cc D X a o z a II 3 < LL or V z h- z OCC < z CO 3 »—
i
• • u_ CC V < X) O D z< UJ > 3 V O 00 • • V < O- LL z >—
1
3V X < o CO 00 — CL V D 1- U.
a: co UJ A II V — II LL o VII >- cC V V CC cc Z t • —
II • t V z• • < >- < — uu o_ a • • II «• • • Z)
-J O O Oi •• cC < V II II 3 X •—* • • « t II LLor UJ UJ 1— cc- cC • • • c o UJ h- A • t A tl —UJ Z O O A < cC • • • • _J V < O A Z • t II
z V < V cd z A O a • •
o — A A II < (—1 O z >—
i
A • •
—
«
n II 1— a II t • -J a z (—1 H 00— — _ — >~ • • « • 00 < tt • • <_> < 1—
1
a o s: A< • t • • t—
i
UJ • • UJ UJ a <T z < acC _l X A Q X < LU 3 cC << A A A a UJ X LL < LU_J h- a CC CC CC z 2; 2! X D- Xu 00 < —
1
-H —4 3 < < LU o0 ojUJ t—
i
UJ < < < o CC C£ z CC 00 z zQ _J X Q. a. Q_ co
O oa 3
aLU_l
a o—
1
>- > >- Q o Q a: a: CC 1— LU 5! i— h-< < < Z z Z UJ a. CL o o < o Oa: cc cc 3 3 3 3 co CO z o or z za: c<: CC o O o o 3 3 3 a: < x> D< < < CO CO CO _J 00 00 LL 0. a LL LLV V V V V V V V V V V V V V
51
zLUSLLU\-<00
oQVALUOO
<x
A A oCC DCLU IU _J4—4 A 4—4 4—4
« ACC
LLt—
<
CCLU
LL»—
«
zA LU 1- —4 K 3CC t—
t
Z LL Z VLU LU LU 1—4 LU A4—4 k-4 Q h- a h- A
*"* LL.
—4 A1-
VzLU
—4
VZLU
ALU
Zo
A H- LU LU a s A Z OO 4—4
(V 2! cC a A 4—
«
A LU Z LU -J OOLU w LU 3 •—
i
a V O 1- a 2! LU OO>—* D A Q V < < < 4—4 LU z UJ
A LL A —« z LU LU A LU h- 00 A K A LU cC Aa: M oC V a O A X a X oO OO 5»C < \- X Q. h-LU H LU —! a Q < LU LU o H- Z H X Zt—
4
Z 4—
4
A i— cC < z o U! CC o a CC o OO LU LU LULL LU LL a o CL LU a z X 3 a Q a. _J LL V s: A s:M o —
•
< z: X 4—1 3~ Q CC V X CQ O A LU Z CL LU
\r- t—
1
\- LU 3 a H LL o LU Q. UJ V A h- H o LU Hz V Z X LL o£ U o a O A A a. z: < 4—4 1— <LU LU < 2 z: O CC a a LU z A Z 3 LU K OO OO 1—
O A a LU a 3 3 3 CC O- CC CC oo < O a O 51 oo 00 V OOi—
i
O »—
•
CC cc a: LL LL < Q. < 3 LU z •—I OC LU V LU
V < V 3 < O 3 Q s < _J 4—4 oo CD h- QC A H-LU a 3 u_ Q a CC CC Q OC _J a a OO < A o_ LU Z
LU X LU LU CC V cc a: O < CC Q O o < LU LU t- UJ X OO LUcc CC O a < < LL 3 < LL co LU CC A OO 00 OO LU 3 5!
3 LU 3 a LL 3 2 V DC 3 V LU V X Q_ a. _l V 3 < ZD cC Q cc V CC a: o CC _J X 3 IU < z _J oLU 3 LU a. — a a LL a 4—4 A LU LLI O A _J < O 4—4
O Q O V II LL LL V LL X LU OO V CC LL LU o UJ 00
O LU O «* V — — 3 _i < O 4-H OO _J CC 00cc o a: • • n II II V 4—1 o LU V 3 LL o o <a. O Q. II • t • • • • X V OO LL < 4—4 o LL V
cC — A • • i i • 14 • • II 3 < 4—4 -J V CO Vti Q. II 2: • • • • V II o V O V QC»* V t» a A A A tt *• — II II o• • •* —
»
A a LU Q II • • II II LL U_ • t LLII h- Z < CC < A • • LU * • • • 4—4 • • —4 • •
A •<• A < a LU 3 LU H- *•• • -J A • • 1
1
V II
O »• Q a: —
i
X a X 2T >—
1
1— A II A • t
a < <r h- LU LU A X z A A II CL •t H • •
OC A LU _] O o o o s LU 3 LU <J> h- • t 3 •t Za. 00 X u 2! z o a LU OO SL Z Z • t a LU A
s: LU 3 3 CC oc 1- 3 .11 LU 4—4 UJ cC A jr LUoO < LU Q LL LL Cl Q. < < #•< I— Q s A o LU LU OOoo a; a: V- -J • t
'
< < LU CL oO H 3LU < 3 Q a a Q Q 00 O 1— LU h- 3 LU 3 < <_J a. a CC CC CC QC OC A OO X < O OO < 1— _Jj: to LU < < < < < LU UJ LU l~ DC _l _J OO O< u o 3 3 2 3 3 -J _) _J LU LU oo o LU OOC a o CC CC a: CC CC -4 (—4 k-H OO OO cc OC< a: cC a o o o o X X X < < LL LL LL LL o OQ- a. Q. LL LL LL LL LL 3 —J* 3 o o I—
4
4—" 4—
<
4—4 LL LL
V V V V V V V V V V V V V V V V V V V
52
AzO
Azo—*
ootoUJCCa.xu.i
VAa.UJi-</>
v
AatotoUJa:a.XUJ
CLtu
t-ooV
A
A uj
Z 2LO ujt—
<
k—to <to t-UJ OOa:Q. UJX _JUJ CL
v s:
toV
3II
a.UJ AJ- UJto 00
DII <
A -Ja. »-i
UJ I—h~ Zto z>V V
aa
Ah-
UJ
UJI—<I—to
Oav
AUJ—ien<C-4
>VAa<UJXQ<UJ
cCV
UJs:UJy—<i—to
Q<UJccv
AUJ_lco<cc<>VAa<UJXQ<UJCCVII Q
.. <
.. LUCC
A —
AQ<UJXa<LU
cCV
AQ—itooOUJCCCLXUJVAO<
ccISV
Ah-ZUJs:UJ
<00
UJ
cc3:V
AO
I—tovAQ<UJX
UJ cC
v-, V
totoUJccCLXLU
J<V
AQ<LUX
UJ UJ
CC
VzaUJ
— LU cc
CC
AO<LUXUJ
cc
V
Azo—
*
totoUJccQ_XUJVAa<UJxUJh-»—»
cC
A
C£h-tOVAQ<LU
X
AzototoUJcCCLXUJ
CD
<VAQ<LUX
LU IU
cC cC-js. sv v
AzoI—
I
totoUJCCCLXUJVCD<
AZa—
<
toooUJCCCLX
CD<V
53
fr
a:LUtsl
X<
00
ozt—
<
00oo111
ooa:a.
ofOofofa>
«s* of* o az ^Of LUt—
4
* of O200 LU a •»'
aof o 4r- • -
*v —»<x OfLU - LL'
* h-a.oLU>
OofOfOofu.
LU LUOOofOfi^
—
• * Of LU LULU ^:-_j h-^f Of Of CO LU II
o LU o LU a II
< h-*f o< of ai LU y-
h- <o >—
4
OQ- OOZ ZooO0
00 COof>a
LL>-LUh-
_JUJ<rx
UJ 1
^•4-LU OfO CQ LLI— OcoX oooo Of LU LLI s 1- 1
K v. r>uj UJZ %h- OO-ft l~tf 0>- 1—4 l< ^J-UJ -t •»
LL 4-4< oJLL UJH- ^»-H CQ »
O >t- LU h-oo OfLU 1" --.
00 LUOO OO < S h-00 i—it—
«
«N 00
a. Z Of z H-Qf •}{••• —1 •"" •"
o O 0-O •"HZ OOUJ — Q_< II Q. •-»
h- »—« 2; —ILU OO OOLL •• Of CL
h- ZH -JX Of of = ^-X i-ts: *— ofLL O i—
»
LU3 LU< LL-J— I- >- i<f wX LU H a. OOO. 0<U. 1-4 II 00 O bfh- Of h-a: OOO Of LLi-4 Z t <r o
*•». Of Qi< LU <> r k-Xi-4 5Z 1—
•
h- <IU * O «ih- Oh- q_lu h-H«a >-- 00 h"> o h-oO Zof of II 2S •> OO
100
o 00 LU >-iUJ p* > —* o 1LU
1
cc— o o LUOf O0O0 o UjoJ 4-H O0< •-.>- h- LU
<o z Of ofz UJ Of —'—< 1 » _J < h-
w
•
of —
1
<-. X Q —1 LL -J h- <h-_J < -J -!f- D. 1—
1
U52 « — -4- < •• 00 h-Z< LU _J *-*»•. ILU u_ 4>H LL Sl- # >Qf- 1
00UJt—
I
z • •* LU ^ Of CO o O >~< -:'r "*v —J LULU Of 1
SL\~ »—
i
Of o_ 4T> •"» LU :s# co^ -'h-O ofUJ""H _j LU O0 ofO-— CM X LL^v * <•— of II
1
m ^.
-rJZ"- 1 h- t«» Oh- i~< •"CL » ! i 1 ^ —*z •> Of —IH- :*tofUJ*-"!^>Q O Of . "».—
4
u_ •— -^.00 s0U_ HQ •-—
.
LU a IX—< < o— OO _lh--0 r-t o a - «--•—4-^0 1— Q-Z <LUO0
LU— LU of LLvD WM OO'—"r—t •- w— wS-» - h-O— i-i(~lDf LU L- -lOJa: < i—
1
LUC0CO— r-1 i~z:_j oc--._ia'— _j _lh-
o
Of <h- —<<? x O— -- l_J {/t'f I—
n
>—.uj<r «_i~><Tti 1—l<T •^ II— >- tl—
>
»-— i—4O0 O UJt— —<< o>-— 1-4 00 aD^f 1—4 »-J''— >-ioO<(-i * ZNfUJ_JLUO)_J
OHH"-- O0"-< COi— i—
i
oo:Zco OH-.'—.-lh-Zi—l— . Li :O of -J of U(— t—
• i1—
1
— 300 -.(-h" 00 IJJ ». Ol~ i-4COrQ'CT (—4 1—1>— •—
4
• ^ <l •» '<O of< >CDZLU o ^ J— 1—t (—
(
LU' y:-.CL <r 1*!•— i—'Z* |i—iZ •Oh- iOfU. of -JOO i-4h- OO woo•-ZZ _j * (Dinuo MJJV— | 1
— »—4 LUZ •—
<
O-jt~O0>-lUUJ.— Ul—lH— < •-3I UJ <t LL1 CO •—4
i—
*
COV \— LO !—c£5: i—i LU •—1 Ol—
4
_J | |_Jh-fOO.|—
<
• • ZtfV—I—,-. -JLUX < ICvJD^ X3 is:— crn_2f~< — < LU LU _J i-1
1Iif •—'Of
of »-<tna:oo.O •> CO Of i-i ,-»^—, t—
*
4— '
—'udh ><—'corcoi-t Of Of of< —ILL.— -JUJLU Ot\j'— .-»S < |u_ a. >-* — C£ »HTi^. *.|H-OfO—-,i_ *- r^L-* luca of h~ i«f h-M CL—
!
h-l—
>
i—i UJ oo-..*-^ <— lOQ-i—O 1\—?tk |—>i— >- "Xi
—
h-U ILL'JLU<|:. J LU—>- a£i"-•Of I— oo of. of2 IH-t— >CG<—KJ!Qf 1cuu_nf •—
• |o0i—( 1— CJ 1—'•—
•
i-iLLUJl— L-h-<0 1
_J aotC'<H <rou' LLIi—'i—
i
— 1-1
UJ coc/^ (— ro<xu_co _IC0CQi—i-<rooh->< oo<r KO0Z >LLirf >a^ca I— fOOLU^t-CO •• Of Of 1— LU
1 l-JHz H OO UJO< -;:- •—
i
f- l> I C Of oo ..—a. ofwo 11 1 1—4—• 1yjof 1|W
<..» # oo-st IN •>:- ajh-oo—4C\J s.-Qonu<u.nuu.'Q ^LUCOI s: I|i- 1
•*XI Ul 1
MJ N. | |UJ— r^ -x || 1 1 1
|l— o-iH-h-^fOf *.-CL I<J. 1—4 1—4 O h- 1— Of h- 5?: h- h- UJ
_JOf LU UJX "^> LU> •+- h- 5^'*< <r<x.c:of |>-<-0 | 1X1— ooofof<rx |<i<t—<0 LUh-h-h- 00 LL'I— T" a. lu uj IJJVCOI— *><— (— 1— LUOOt— (CLL'Jh-iIJJ UJ 1 1 J h- IU'jO h~ h- UJoo C^<< J Of<S oovO'/i of oo |o0C_ U000 | |U_ |Q-S Z> LL _J oo ooo*: Z of OO CO —1mU! <l— h- -^ •-•C <HD 1— LSJUJ < 1
-4 laf I ir-fcoo'O |LU <t |LU -;; zzlu >^ 1|LU
h-O _JO)oO^.'***** —IOOCj «-»OLCx. -J—"'— CX.~» Of Of *- Of—
1
:fh-X%0 "V—<*-4Qf Of - cca:ooo O o o«tof LU LU LUh-o.Z>oo
o o o
54
UJ •~X> =tf-
CLC£ t
00|— — UJW» — K t».
S ||«— <C ^»-
>- r-« 1- v>
OOO + 00 •i
tzr o. aS(ffH 00 » UJ
Ol- »-» — »-UJ 2: Q. <t—_j > 00 *v z *««
Uj oo •-»•it-
t—4 XQ 1 id X
< >c o a: *<v» o < 3 UJ ^-4 •«
C •* — h- Q i- 1
in — oO _l o_oin m
1UJ z: o {\.< •».
ZCNJ m UJ CD o H- UJ—t—
t
z H- »—
i
^—--^ ••*
1- II < ^ t- UJ <Uj—UJ o 1- * cC < > tr-l
_J— z • * 00- UJ _j < oo<rujUJO- t—
1
• .—
»
o i—i O0 h-HOi^ 1- UJ CO < a. v; QOO<
*W« UJ x> MB cc s: * < H-fi _J _j CC «—* •> y- o ic «•* • 9s UJO300*-o UJ \- CL— o ^ UJ CC ct:
CD Q 00 Cl ijj r> uj:*: =22! II ~-oo Q^ • •* _j K-O <U_o> -;;- *:— D •> • »-2 < o<r u.r-.00 •»c o o^ Q 3: cluj > -cri- UJ= U. t «
H- 1 z: <o tu o OMi I- Cl^OO 1——u_ -Ol- Z ¥—I H-< (_>• _l l-O CC'^L < <d:uux o H~ 001— a u. t~ UJCC XUJ H<I*-*aruj —I LU too CC a: a. car> •«ooo OOLU<ccz. 1- _l UJ | a. UJ sill >ii— — a. a: -J
o o UJ l-UJ > UJ "OIL! co< 00 | |• •*
o UJ o <H- z o 1 ZZCC 00 0OQ. -.LULUZ 21•» o^ •* l-< —
*
Cl UJ sis: oict:uj 11 >-#=fc CC?t 00 H- id..-. II 00 ^ II z U- • "•« OQI 00
* 1 o i« oo o Uh >— O LU •« ».Q.—"VU-LLh- 1
- Q (join y ~ UJ <Jl—
1
^Z-—1 I 1 -X Q-Q 1
>-" LiUJJ wO a.- CC>- CCiC\ a: 00 \~ 1 LU vOO CLH- arm*'— cacQ^n 51<_ltt <CM >oi.- 3 00 u. XLOCD II 00 HXS^ |o —
N o_h: c1 _J<00— o h-(MS — U- t—< 1j> 5:"s:^ —K- I'l -JUJ- CO )( UJ | «-> — >u_ LU <= >>-
f_ I.I 1 (V m il 1 <f <y. ** V f">_i O-J00 n_xo 5: 1—U-OOOOA • f> •
Z»UJ || > a:~ i>-i- a:_J ZD 1 oo>—1 1Q^-«».iy^u_>—« O • •»
cl<:»— v~<:—
i
UJ LU _J l-i ••« << I-.0JI— ^-LLO 1— a.o_ !-•>>— 00|— OOi•-OO'" > 1— C -JCQ • ^ ^-» a I
O0X.X -J !U i-ODUj: SI •
z>— _IQ- + hO< "« - u_ o:>-uj O 71 •• OHHI- 11 11 00 —o— 1
—
—iiua:— vO + *-*o <oo2r cc ••or. cu < Il s: II— »
HD--CL UJLUvO ^-) CC |c 1
>~:o:o. < — OHV^5>• •*• o 1/0 UJ CO b-'S\ — o_ oo It— • >-L!h LU UJEO-oO >>-X K O —» » 'I/O » •w* 1- |—OJ 1— moo a:z: UJXQ, OOCQ
I CC oca UJOO'.OI— X> 00 —m X>«— _J <UJ_J~- H-* in
i o:uj ooujo1 CC* -
1Dt-v II H~ I IO 0_ 51
- UJ_J- O 1— h- _J ro r\J ii UJ D.ZIK 1— 1! IJU2'C 01—0 <Q.O_2: h- O- ZCL- LUCD oo<r o • • O UJ 1 x z<tz WOHUJh- LU X> 11 00
»—
i
1- z * TT If-LUCO UJ C "-VS. _ii— > a.'• -LLJ—^"0< OCOl— 1— 00ZLU_J O • * 21II -JCL- * I— oo a. s: H- <'JJ O0 _i lu "^ozaxtrt C—Q< U100 - 1DO
•oo ii _joo X •^i^- < LUO^CL <Q QiOUJ2 OOO X IX CDH-U-X-JU-O 7T. 0-) II
i-z lh- 1LU^I— CO h- cr:
-'•U)izruj CJf-D •«* r OH- UjLLI>— L/)_JOO Q.UJ 1y>>—1|—iumq 1JJS • »*
DO LJJ35Zi— Z 1 1 1 V) la UJOO 12) ooni -JZ3 CC 11 1DOCL 1-Ql.OX OOLUl— CjLLIU. x_io ;ZlL _j<j:u_<icl < Zoof- = UJI— LU UJU.H-X UJ ZUhil— LUC 1JJi—
*
UJ'> "(_) »» 1 t—41jjs:
X>- _JX> = 2* a£oo<UJ ct: <o CCLJo- ujo- O l-Z < la: z: LULL!» D- - _J oO
oUJa
_j
oUJo
oor>a.
LU<CC
55
cCUJ00
ur-oo
V< < *- —. 5:
CL1
*—t
<zr_i
l
>•00
a! o3 +-*z00
00CC r-* 2:
UJ —
»
1— US UJ 00 ct:
X •—
1
•«• luct: h- — 1 X)»~r
UJ~»o:ooujC0OQCH-
<1—
UJ ••- •
If—4— UJa. h- — U-UJ o-) •. CO *fc QdUJ <t z h- t~LL — < 1 1
i- t- LU -•ooZO CO t— 00 Z00 •*•* 00 X 0—i*-t <LULU "*« k-Qi UJ
m1 f- I- UJt—
H
1— <*:O0 X% ca «— CCUJO. tJi<< 1—
*
—1 1—
'
K• « 1 _j m KSIm 1— »- ro |00?fc
_j —.UJ 1 UJ>-|— C£ ^Soooo CcU- |-»
=3 3£J~ tc 11 0000 oJ —
+
—
.
00O QU_ kr r LLOO o< * II — cd •_>
00 UJ|— 11 • #t •-_]>—iCQ oo<_Joo *: 1 K-00 H-00 r —
»
LU *5< X> oiiu LUC. h- la; 00UJ < 1
• •» I—
<
a. IO 00 UJQ-2Th-X •••UJQ »-H
\r~CL -» —~ — >- OOLU • 00 1—
<
<roo -^00 a: + _J(/)w % r-l LU h- ai-Joo> o:Z \- - O | 1
Z) lu I1-
100 cc <L -< O- 00 ^fc LT\< + >- 3C
00 •• c£U LU t < LU U-UJZ cx a; I•—•—J >
1~ ~»
3
K * r h- \~ ••OOOc^ CL <LU.-»r- 12 II 00O UJ G-OO <-.Q. 00 < % ccz> Lua^ ••-JH-o>-Ha: 1
zscl O 1 v-%ni 1 I— cz:<i-zoo lu >-<-iC0 II M CC-*# >- Q-LU 00 k- LU (/) ... OOOQ-LUOJu «-(— ^CC—00 1— lu |LU^ "Z. H U.H-. c£.—1 UJ Ui <i H-. •>)—..-x II
oi 1 or? C£h-(_> z> C£CL 00|— UJ 1_>l— 1— 1— •—< 1——» •—
< LU H-0 —
«
<<<i»O0 a; —u OO LU <_> UJ<t 00 00 U J
!
X>LU% "• ""»
O-UJt— |LU t->— t— GlU U-3— ui lu cC 00 1 u o; 1— fV't/l OO |«»«3fc
lh-<. ^a: cciooo;;Lloi i£ C£OOLL_JOO OO C^ LU •>«-. I0O-, |^0*
UJ<K-1 1
< 1|UJ 1 OO X)«:>lucv:oj « 00 ?M^1< U- "?i. OO •-f-
00 (—00 cCcC h-Of'UJ CC < OLUUJ 1-U «tLU Di I •-.J 00 \oC rvlto•aloo 1 00—— V. II t—
\
lui— q:oi— O-Jl^ <r 00 >- |~- 00 OO >—i
ujuj cc 1«-1 II
••> |n*;<r II >( r 00 # uz Zcr o_ai »-a:uJLL*- t *•O—
1
• •• a:x— v. V.CO »-',..1
QhQZ'—<<szz OOX »~_iOOK- x»-o Duj_iuj.!'- ClLU -"r _iCC(/).-IUJ LULU cc zee 3>—'•—
<
X - •>!— C0>— L«i 51CO oa: oo^ciii— *fr |_l |
1— UJQ-r-O a. lu< 3 uj c£ p—^ .2: uj< h-< o>-2: lu q:<-!-- < •>r cc |ct: + < ui>-<rz x Hionao 1 •oof—a l— •*• K 00
uscdo^ II |~ *»v ci 1— <f— h- "-"I—a UJt—LLU_U_CQOOC II
H •- 00 00 II lu»~<oo U |00O_ •• OC^C Ul »•<<(— |i— 3: u_a:
h-UJZju
da.co a. |
Q.U_<Q •••Cul—LU "^n X
+ _j i
II \~
XLU |CL
(— CtUJ0-LU<.CCZZO-'K-<a:i—
2T oOO_J-JoOQUJII QO 2"S. •-X OHfNjm II QUI—
CL< Da: ft LU 1>•>)!- ^HH.Ij .^"N,,)— || 00 i-soaj LL1 <a:uj uQ UJ ••>
»-a: • •UJ •• 1T"ZDf1- II ZC\ 00 UCiU-SIiZDI— 1— l— H-a: 1— UJ \s> » V* C3>- OJHZ !r Q XZ'kU O 12: !«:« OOUJ UJ CG LU LU UJ LU <l LUCiQK 00 zD ZJX^SQILUSQ-)Q QlLU««^v; |^- 0:1— '.u' :SIOOOOOO'jO—1 00 u QQ LUO f-H<UJ< 00 f-LUXoO>- U III II
z Q.UZO zu.a: ZOKM'00 LU <UJ a. <
LU
00^
LUi~ioO«~azUJ
1
CL-*U-^
a _J3:>-Q
56
to </>
CC |
LU 2CD —5T >O2: —2
—a:Q cCZ3z l~h-< Q-UJ
2 —a:• •» LU •• CC
~z x 00 <clut LU •»•— —
'
h" >00r-II — % 2 _J-if- r —
.
Iuj 2iu
r-4 r-i* n: Da:.. r-i
I ~X M Z>
,-l3£ .-lai %iO0 I— •-
— I -^X I•« LU-»
• »>s cC • T-Kts) c£—» 00 cCal-"• X *- •> X^ O I—moio .i>: -^ w 1 2 2a.•>. » -^ % ... r-LU J-t^ uj—•
-» . rooj | «~» H- QHJ I>oo^t •» lu r %->- "-I— I—
X
w— |.. — —.(_ ,-< |cq a: 00 •« •—
'
H-K-LU—* UU>- 'HLU »• UJ OO—» hioouof-o *-.+~.cr.'* -Hi— t— f-u-oco 2!_«_>-,». |— h- »•—
.
• * -— >-UJ ^ ^jOi-"— LU2_i_Jcnt— ooooh-o (/>••• r-<cQoo«- -5S- < i— f— Dd:
I I»-00 -•i-iLU— _IQ w .- (o o£LUOO>—1 >-0
ssi-w _j_jooi— < •= (~<r ^ ooffi 1—^^uu >v I I |00 v. 2|— UJ_J2 ^1— * X_J2 •— 11 ti-J
Vs 000000 I -Si- 2"Tr<r.—
<
){- >-< r^uJoo |o< •}:- 2 tJ<rcDoo—. c£
# I I is:' >>_j_j 2:00 |a:o • Lb >< lawcccc<t>~ 0000 1 1 d:jou<"- t— 2:00 —
« .-.zi— 12—•--joo r-\ «^«-fy:M <\j iu<«—w_jlulu roLua: q:jd o_2uj
o cc —I
cc *-> hza w-t— a: h- I1—< •**- l^»
•~X I LUc£ LU .X IU-J00 LU hi I
LLi> LU<K- Q-Cy.'ZOJ 1— -i!
LU Moo V- 00 XOO h- 00 *5.:i/) KS3Z O0|—O —-UJOLbO00 h-^z < r*->-Z < a: r~->--- uj <oooo lui—mxcjOo:<- CD II coa: <_) O II coa: o Olu 11 cgolX o a: en -< 1- hh 5;
2
lu 2;O I— II—O I- II —ID l-h II —Xl- LUH- Z>_JOLL>-t-<c0>-
»• =# Oil— •- * Q<t— •« 1% CIO") • "> 002 O U! 00 Qj 21 O0O-Jr >- |*XLU O-ic 2 FfcXlU O-K- 0*; | ftX O J« <5 «-• LUOOCljX »—3 |
>v- lu r-ooi \ lu |ooct: v. lu Io'jo ^o i 020:1— I— o-)2ii2: II »— or 2 II t— Cd 2 II llf-Qi 2 oo oojoo-X oCC >-XU_ Ct >-XLL CC- >XLL CC -it LU CCZ>LJ LU II II
ZJ*-- ocaoo»-H .».x>.« ocooO'-H '-d*- oocjoo'-t •••^•••v, a.i— ULtzh-a •- Of-O ••> ChG ••> DHO LUO<^ 00^)LU2 OO 2UJ2 OO 2LU2! OO . 2LU2 -5! OTl-<ll | I*OiLU DD LLIGTUJ QQ LUQiLU DO LU CC LU • •>>>. •« ~J ZZ\
o s; oooz >}:- UJ IU-LLLLI.« OOV. Q2 >-"-h«»O I o2 ^ 2LU O LU
57
az • •»
< —»
-
M
...
CM
1
»w
" oc >CO— a.— >w m
• —
.
—I m • «.
— —
•
a »~.
oo !-»«• co — UJ CW#- Kfc s: — 00 t-t
J— en 1 >- _i p-l
t—
<
h-a 00 \ —
»
<- V • — r-l
CD Oct—
<
••»1 ft QL
1— .u_ •M- rH
HV^OO 5IO —
»
X 0% UJ \•^<
* 1 >- 1 CM UJ _J — 1 00 r zZ 00 UJ 1 Z a SO _J.- "» UJ
l> DC CO >al LU ^fc oJX(\J •- ^< 1— II 5; oo<
1 h-la: 000 O > lo UJ OO 2^
OCUJ — »*^ 00 * 1 3 u_ >^hH > .—i OLD CC 00 • ^ OO*:au X 1
-7 > \- ^0 UJ —1
< t-H en a < •• 5(fc Z) enOct: - ... u_ V- -^ —00 z *-» •
1 1 xz<r 5 o h- c£. O H 00<x UJ II — » —
»
z>. L-A en r- -o OZ _J UJ s — \- •—
»
z —
,
r-« Z»-< —
»
a 00 •*UJ|- h- H + en 11 % —l> HH_J f-( CO en CD- -xOCUJ Uj ^-^fc«4 3 |UJ
a: 00 1"S UJ 2f r-t OOl— OOHoOCO < h- =f*UJO0
t— - cz Di>>- t— • •> CH'JJ —2: UJ U_i-w II UJ K— —
1
OQ oo •-I— Krt z-— 02 hUJO(/10^ll— 1— CO en cc>-<t• * UJ 00 "au. •—<vO <M mI< < »~hU_I XODLL~t-x zr .—I—- t- —
i
_I_J cot— ID<UJ< cc 00 z OO ••
C\J<»-< <- \> II X ••>w O a. _)o: —1 |" • 14 ai —*Z1 a. DC cnx UJ —COI- LUZ «-h- -^<^ "•» X %cn
OiOO 1 1—•—•-^*^_ 2: « O'O h-UJCL 1— —I x> * h- •" 13>~_1— »—a.u_rM >Qca LLIOOIU UJ —
1 ->OOI-ac> )( —
1 0)LU -ft = 00 00 00 -\~ 00 ^-. mu_ujo | -ft— > Qi.f..* MS it - ••> ULCt'S s r •—-»>—< LL O -00 en
«-»s:u_ r\»x»»i 1 -oo h*<>- S »-o< SOCC 00 «_• 51—l>- Z 1
»— -^, Or-» | —100 z—
>
a: 0. >-H » » «^> 1— "»s >UJU.'v,0CO0 »- OaCU-cvj'- IZ -0. 1 CO—00 l-ac 00—--. ^» 1- OO .^^ 00 -J 00-::-
1- (M mH- 1>CC UlUJt-H ~ 1O.LUQ IJJ — |-5»fc en cc mUj — UJ-J
Oi£ | h-a it a: XI— II s h-oC |— "*»—4 •* — roac 00 h—
^
Is- < —JO') cn<uj—uc: o— h- —'O -ft OS — uj5:;< en -CO Of H |_JO IH r-t
UJ<h IUS>ClLL— — oo LLI> 11 S cnLLsr tiJr Q X— 00 s:< OO |.»u.'i— o. oi>- f— _jc\j r—O C^OO >^. DS or > Uj^-.O0_I
l«.->-U_UJ <LL'UJ
3o0 oCt/>U-oC O I'-U UJ ID Ct I^OOvi c UJ XO *•a Oeaoo 00 II —I3O0Q t- C 1 < •"COCclOO en-.X o*->a: | 'JJ<'J_ en •~" "^t CO < z< — cn<UJOOf-4 o*: >>s:i-c iz>ct:t—
1
O^-h- "h U-O 12: LUO II alO ^tUJI—Uuu |
cnoi
—
"1!" — ii
>-ooII 00— 00U2
Ql— U_ >Q -UJ
UIO. •»# —>oO— OC- 5! 1 <
000 ••UJ >- ••« CO- Z>
11 o-llh:-
li-UJ>-Zh- co en >:•0.-<fv|rO|- *> f—
0.0.0.- . •> _ H—t-a< cji— - —a 11 _j s O<C0|— UJ oocn-v >—3^l/)w Cir-trNiXCLiOC moo co a >-V-\- r-\- XoO < 11 cocni—Z 1 i ii 1-
1 M-J^Tf— OCO ! 11 11 sr—uj • •OOUJUJUJUJ UJ— U- XU-J• •<£UU oa.'cnz>- 2:1x1 >-arcn cc oocyn-Ooouj ZLU O 1-
' •» ••* oocn ••>
ujcncni-i— — i— I— OO >-cni-i— ooh- UJU- CC 00 •— QQ • — Cjoot—<33 cio.au |# ••'/X03 |o-i; co>—* < II < 00 2:2: Oil Za jaa <—— 1—>. ID JQ.CL 1—— V^ 2T -J O OO UJU-I O.-1 UJo OHK >cncnoox O U!-K- X<X UJ Svr# uj33 ii << Iuj <;; uj33 lu< 5:4:- UJ >oZSDCQ >>> JSDOO Z>^«> t^ OOQ< O O KDC z UJ z UJ
K UJ 0. UJ 00
58
oLUO-colua:
ozUJ
•K-
<
O."» 1—1 —X H o ••> h-=tfc
1
.-H Hh a<
< -*LU X
UJoo
oo HZ H-3 h- ctC£ wUI •—
1
oo o _Joo r x COZ t
«
UJ Z ^ ow h- LU o a: i-i C\| co
1
cd zUJ q. a: >-
a • ff* s:^. H- CO •»> a lu oo
a;
1
LU3
> 1
00 a" -O a. »«t—
(
1
CD21 o
a: a: «-X CDZ 00 H- oo • ». >,'< LU <t~ CO +<t *^-» <X 3 —
«
v, s: UJ+ 1 - < a: < _J r-
<
1• •- X
z^ *—* ^»Q- LU h- a. <v ta^ i— o << a: l^% LUO CO u0
1-;;- h- t»> LU «£_ *:
3 1 ai- SL UJ a. »—i ^-> 00 LU oh 1— II LU • »• 3 LU DC 00 CD o
UJ (— LU . OLL s: 1Z II II _l
ai cc =&>-00 LUO 1UJ LU « ##•
|CO_J O \~ • ^ \- •- ^ UJ X -5 LU a.^y a: »•< Ooo LU *-^ t •* UJZD O a. 3 U-
t
«
UJ X--LL. QC2! 00 r-t*-» _ltU2- H >- UJ a: •»
^-> X oo* ao O LUXLU 1 i— <S)Z — H 1—>£ h- \Z t-H
II + - Dh O 1 -JIU-—Z ZCO1 toa H % z. u_ UJIXUJZ .»,UJ»-
OO <—
»
•«-c^3 *v ..< -5 a l~~. •*• < —
«
h- la: *>«. — a'H-a: o — oot— -;;- 2tf ZOOOO •*Oh 1
LU ,0, ^-j^._ 3 ^;. coa:»~<oo —
•
C0>— LU LU3 LU -CC ^ *a: a. a •*C\J-. 1 h- w-3cow H- -mal ^O • •> t*»XQ-00 •—<i—i<t O 3--» LU Q. UJ UJ f-Oh- OO 2!_J V- 0-< _>-<.,,'1— OO • . K 1— Ooo ii a.oo3a O- t—( «-* ••>
cc l-H »V. >- CD LU z HLL CO< *-S*r CL + 001
LU.— >•—
a
o CDU-'-ttOO<I _j ••>!:- 00<ToOV^LL. 1^ *. -- *- UJUJ I O0 Ul LL. oi-xh aTH 1— O 1—
I
H ILL! —'h- —J-A i_ *N OO Hi~i3oooo — a.cx o Oi—< . I'jj • •>1
uj a< »—to 2IO0 a: |lu LU %< ZO'v,M CtOLL UJOO
1 acOZLLCO II o_ 1— a:a x z: =1
>-_jc\j x< h- < * CO + I— O-OO o— h- O- uj s: oo 3 3UJ001—• r-a oo< 00 _J •>!r>< |00 O0*- <a ••> ••^X — Xr-tuj-: i
1 O oco •£_; ••>?
<• - |U_LU |LU ha Q.3 —»Q. nza. _JUJCl_U.UJ KH+2 LU X iu>i«;d:^Lucca oo II r£3Luoouj OOQ-OoO <ar CLCOOOOOt— • 1 0. |—h- h- o uj |'un oja: z< •^•QloO co |— •—•CL ***—- oo:
Iujs: |_j^ Q.ILUOOOI— LU f-H OSILI- •
13 II Q^U =JfeLU(— <IJJ 21 |a: oar h-H- CJiU)UJ<0 Oa — ujlu_j 2 ct: i— |<i<art- 3 II- <_>OOLU LL<C i
LUoJ OZ 51 1— LLO t->- li a:ooo•1LI .. | a.<>-?t-—
—
St- LU>-2 <t SI O>ZC0C0 «J00UI_J (LU1 |i— uj cno LUO cd alno t— ujo:--:; o 1 1 < -1Z uj_jo:i_ik_jZ^ H ILUCO II H OOO oo ol 1
000^ >—3^» h- h-oO < LU3< H- 1—< LU UJ Cf.O DIUX2 -J1
••2^<H oo< it COCcH LU x^a.«--S_QlOZ O00C3LU O— ^LU*-" II
.r. <z <a— r-LL XUJ w 00 LUOLL \r- mO h-X X i-s: o u_< -J3 O II
(_3 1—i .».•*. ooc£ "S h-LU UJ|—1
LL. LUO h-lLU II -•o .- O |t-LU II
«*H OO ••>1
f~\ ZIOcCUJH .-Q.A ••>—•'• VC 1—
<
DfToOl— ••< cz CuLUOl II %oo 5^2: OLL z .»(. OUI- <oo OIL o o IS < |LUOLL ZcC-ii u_a:< 1*DO lulu Qh -
I_u •»> »-x O _l mQ -•OLIJOUJtt |_Jcx'ooO'- < LUDS | _J<LU |
o 1 O II II (/) 00>x OO h- a o H-az *-A LU LL. U. _J _J OUJU.U, UJ uj-j: luo>xLU 9 *> ov. o>-< hh >—it—( LU LU ••> |Ghhm a:*- CO^OOCOOOo UJ O z o s:—* X z. < z UJLU O LU o UJ 2:
59
a Qz 2UJ v.-
K-
UJ.
**
KI- oj
00 LLI
UJ z UJ 1 i<i-
_l 1—
t
-J LU §#»••» O"CO t—
1
> • - sf ro »-«c o LL. < O 1
H-t i- a 00 II 11 v. >-'
cc LU ll «• 2:Mi < o a OO s:< > o II
r
z<
<<r<- lu uj ar D
z _i UJ CXQiO 1
cc < • r> «-» ex. CC 1 lac CC
x> CO i—
t
ex. 00 1 UJUIQT1— a 00 LU CCcCUJ II
UJ _i + «-» X CC 00cc o
00• *•
X O Ka LLU.XLL UJLLlf- Ol
z < H- t_5 CO t-* LU COcOt—
•
00UJ —
.
h- s: 2 CO 1 13 1lr>
X • • X !*"« >- 00 •»| !ULU CC O
K- o t-H 3 00 —
•
ZLU V-V-Z w_ z>» z u_ 00
1•» 1 IU 1— << CC _l UJ
—
«
*--ii •K-ttfl —
i
1 t— CC II X<I* •« it OO 3fc D X LU 1— h- OOoOl— **• co • fli
1 * * DC h- UJ OOQ. O02T I|UJ r-l SL UJ »•>
CC -fc * < II Z DioOUJ |lu or.ci.cC > 002X # Jr a. D <I LJarX - "^
100 -J'uU
oo * a: H- 1 00 a o3 Q.UJ »— »»(—*• ?t_J »;1 <t±c
•• # UJ * UJ-v H- >U.% 1|h_< a 1— u_o
—
*
* 00 tt 00-,c t-H Z -H 0<0 M0O0OI— i/) X i^-
% * or it a: X UJ s cc 00 uj 00 s: or":ct: 2 X 1 UJ ii 1
1 »r < *- UJ t—
t
X LU < C^LUOOoOlD cC z >-
UJ •}< a. if > • u_ h- 00 3 II 0O0O »• »• a: HSi- tt -* UJ •
1 cu •• •- %5fcQi < II IS> # UJ 7T cc • % LU II oa— =tt II 1 IO LU tflt HDCO * oo >,(• cC _l r •• LLOOO- LULU • OO a. UJ LUQ
•"» # CC tt UJ t—
t
1- |OOLU-^|— (— • 1/3 00 00 1
** K UJ * -K OT • • LL —0 U.UJ |i— a < <r • CC l_l luck:
% # > )t •^a: f-» a ClO o>uj<oov-h- < Dix< CC1 # UJ tt < UJ 00 • <> t— 1^)00 UJ LULL II
OO * CC X o_ + B •« — no 1— O0<Xo0UI z Xu_ K- if- •-
1 1-4 II -J r<r 1—
1
00 Occc^-v. —
t
• #. h- II 2.,.-.oo "^ K •}>- LULU a ... O ILI ••> 5- II ^-c/o" »• •• ••> _J r-l lUr-HfL»-» # # Jf ZJIS) oo+—
Q
CU—.Qir-H 1—
<
_J fOO—-^ -» Q.CNJ X u->
UJ tt * cCcC 1 0_< ^CL 1 _jc\-CJ'-'—-oo «-uj < + C- 1-4 1
_J tt * * * •!! .»)— LU UJO-OOUJ i••>>00Q + OOCCO-J'— ~-O-0_ —
.
H OlCD
5*^. UJ > > oo «^ cf t-i w, *— 7Z 5;—o^vroo>- >z.'a.u-'uj r-tCX.—
•
<X CC II LU < -J 1|-J<a UJ >-^CQL.JU 1— u icx>oo la: -J
1—1 => a: OO II ^:.»ooos:<r< 1 ox <ruj 1- O
1 ex. Oo co 2: xai | 0:0, IO-I— h-AUJ <H II oOc LU II CD< u_ UJZUJ II
1
3LSl<O.tU5:00Qi <00— 1— O-)0/)O0 1— UJ 00 2;-J 1 UhN z </)> to') 21> ZD 2; XOO | | |Q-< a: (Ma. 11 uja >»— CC Ooo»-< LUD- MX I OOQ. II II LU H—uiujooh- lec • •-. a: a: 00UJ UJ ctar_i X oo cC |oo CC LU a. ZUJXHK |00 H Q.Q 1
h- cq Q_<< r- 1 H-Zj ._jH-_JO- •- oo*-< h-uj<<a: | ^:- u. 1 CtO."-LL !—>- s: a.—" CC XO_ II -<X-JOOC
!LL<zri— 1— cc ^00 • n C,_ .^><;
CD UJ Ir- 00 • HJJ X UJ <l \z LU >~i\— OOu")LU—
«
ujoll z aui•* "Z. »»! 1 1—* i.- 1 (DZ-iaszuocuj • *~^> •• O'JLL I
|_JUJ clO t-i UJUJDZc£ OVl^OQ. .^|_J -J00 Cj<X |»— CC CC •—< 00 «. 00X * «£.L£»—
•
IO u_< p XoOU •'CC x< Ou. _J00 <»Vi mUJ ll ocC-iLUf-iOa^Q LU 1- t— - LU UJ30 Q»- 1 LUa oo> iy> »-i 00 00
U-Z ccuj-;? clll _i >t 3 2: -J JOG-.UJ .- <tCC^CC>-< i
a.jj VvOO •-t LU UJQQ
2I
LU CC
60
aX zLU UJ
» »
—
»
ro^ • ••
*-• 11 •—
»
>_IIL
1—
I
II CO•-
1
»-» •* Q_1—1
1
<—LUt—
»
a£
* 0_ ai— ^."3, 00
1LULU 00 <—
V ••. 01 Xa:>-< 1—
—
— — oCO-J 00——
*
—
.
Qi K-u. | H-t-4 < LULU LUoO
oj 1
Q-> II COH-
K <_J— to • r OdLUt— H- 1
>-«1
i»i OH- 00 00 LUMi — q: a:< | Ih-a K- —
ii c£L\-CC 0C<£z. oo a: LUOO \~
»»>LU 1—4 < —1 III II 00
t-i _J -v > i—
i
Q_c£ 1
1•« <*-•
1Qiw.% oc:
1 » «J- o a. «: 1 <— > x 00 Z1UJ LU II
Q-r-H 00 » 1—
1
1 LIJOOI— al00 1 • _l a: X < K*
It a: • _l _ \~ Oj(— LU |
a; s LU _j 00 C£LUQ- II Q a. a O-O | ai-
II 00 — r Z 00 CD a: LL<H UJ 1 2T II II LU|—
Q-QC:*: »**—
*
S c >- * CD 00co— H— Cl ac 00 —.*-.—»
1 1
|_JLU%00 Q a 1 00C0Q. LUctOCOl- 1 1
lu;Z2 1- •" *-aC 1—cd<luo: _JLU | X ^ rm'mt <rs:i—(-— jii^ LU h~4*—1 V^ h- ••
'•>-Ul<J LUh-LU Z — ^»<_) 00—
»
r-i'S) |t-0'i««Q_ c£ — 1— 1—
<
KXlaloOcDCoOh- 2J O0 00H- CtuC
41 l;fr*ZOO z:*: LU >—i^-iLO W
X \— Ct >- LU f-< <JJOX^ -J-l 1"^
Q-LUa:-^OO X CJLULUO 1 |UJ 3fcCJOl2:<:* 1
iMllh LULL.!— l<H II-'-a; Oh~ | 1— \—<x. 00 h-
II II OOOXr-tO II Qi <<H- QiOOlaciu u_ II o KK-oO 00 1
D-ZQ Ix f z 0O00 | IUCTLLKai ^u_'i^A ••
1 la: I—^lu LU«—<l_J^ a CCtX. .«<
• •>
axLU
•«
aLU_j
QX<X
•»•*
QOK zz
LULUOO
t * • •
»-»«-^—
•
• %*-%*-^
1 1 1
% C'LULU1 Ihh
LU oo<<rh- hi-< —0000h- % 1 1
00 \CXLcC
1LU«-'*-
'a: • •>>— L1JUJ
LU
Q OZ I-LU I
* 13Q
I
O •••a:
LU •»• *-00 — 00 11
3 =?t «-
I f-_if— iu «-0 Mil- ^>>l— h-O I— coco -;t xlu r co<<Z. <. ~Z- w-l— --h «-|— I—
K- — >- < 1-4— t/>o0•• .-UO ^=*iOQ LU*-h- i-**
I I
LU —. t -5c I I C£<IoO — IO -J00 ^fca: a:<»*Lur^ | ^-jujo«—< K- r_jzi5ij —i-z><O LU(_) >-00 |LU O"-*'^- <OOCL
I—o cc «-aii<icoo<— H- I I
>- <3 <% Oh- II LL.rO 03 1/) QiC*:
< h-00 Z IZ^K—Z I-
I
a: 00 1 hhiulu |x uj c£ -J _J o: it 11
ct: |lu Di-l^Hy 00—< oio tt:>i— u_o 11 cQcauJujui— 13 OCO 11 t- SS-Jh-Hz 0-.0 cnj ij_ iuj>->-cD<r<<r -^olu o_i |_JOnr>— oooo<ji—
k
jt-cct: <a.Ot—o <i It-oo(/>
< I ILU QO LU CD LL U3 h-<< I I I
*-* Do: xrnoos;_) oo_i_j<ri— i—
> LU(- <t >- LU >• Q. 'X)I ! |_JXX
O III OOD-OOZJIII— CCCC |LULU
Q Z)% m I lO^tX—DiZZ< Q |LU 0< <C' |Lua: — I I
LU LUcih- O-J _l lUZIIU^i"a: cc < _j H |<(- |oo \~
li— Gi ice <q; h->-00 — I— C!— II CD. .......
OQi + _J UJO ^Q".— •OH" «• -)(• Q.I
-^ LULU LULU iO II—OOD-•—
1•—» 11 xi— •• Ooia: ."CCiOoa ^v. ^.oii— v^o:oO(/)lu |.«% or.oouj
o ini^x u f^LL ziicz \z x <iujza:a FJtx _jlugqC zz.*-* liCn ujooe/^QLULUalui ••• iiu_.« —laiu-i -Dm Ioozilucj."OO II II M) a. • •" ZO «*LJ H- QC LUOOZIQ-j a «- lu llu- j x a oo. ix auiLu ^:-u_ >-iilij<zLU M-JC V.^ t~if-t LU LU Q QoitXliJ QCli-i V^i-h CD OO >-i I— LUX LU
QXLU
Q<
<CL
1-
Qi
>•
h-CL--^-
ai
Xh---
•
3QQa- . r*
Q. —»vO
< •-«
«^ri h-O t—i
LL ^CD^^ };-
LUO h-< *:<LU UhX <00< CO 1
>iti ^LDO Oc£O OCL._J -J 1
cc
«• •JfLU
*>s \a:<_j
• « .0QLU
c QO
61
V
cd
.-» LU\-
I < •-
H —CL I/) >-»
q: I—
«^ CD LJJ
^ _J H-O I <h——» coco3fc* II |
I i ir luUJLUUJ 21|_KJ-LU 3<<< h- lo
I— 1— I— «=T .-UJcocOcOH-Oc£
I I Icoz: I
c£ a: cc |lu a:_.—>
II J— -tfcLxJ H
ad \aC'~LU<cQQ.t-(l-Uh-H-J I H-<co |a: + <i
l- let: i-COCD Uji—it/)
U + -JI
> Ii-t II H-
LUCL'-'I XOC S^—'LU ••>
a. 11 11 zzaI o 12
acl»-.-}Q o:uj
v.^• •* • * •«1—
<
<••
II LULU«rt ho:
*^. z. < 1
CX LU 1— LUCO
1 OCOQCO
a: h- - <U-•m
1_JLU
#•» -Ja
>2:
CD•5;
1m CD • #» s ^vLUr-l SI -^ r> h-+ • »->" «» Q <0. ~CO O- l 2Ih-to
1r-4-w-l—
CO
1
cc LUCOX 1
ct: >x C£ \»DL*» + LU *• • «*
c£ II 2 CC m 11•— •
<r O. < -^ •
2-> CO—« II > 11 11% Ou •
LL.">— |Q_ .••> •>^1 or
IO QLl/)2C\J—
.
O **• .— LU «^ 11
l-Z KLU Q_ ZT CLLUCOI— ^•-.v. 11 w^ + or Z>— COD •-< —
»
1 1* DCO — LU_J IcxGl- < a_Z-J 0_<l— CLi<i I-J q:i— <I>yi 1— V.CO »LULU CO> |cOO t— LU —
•
LU | CO « 1oah h- >- l< O- > II CCCC 1cC V.
>-«coi— 1 STOTH- 1— CO •-X 1LU •» # t«*
1 •••s: to Z 1t—.t-l,—<LU •• H • _1 V. *-^ • r-
II QC,•••-«3 11 | LUQ U_ let:— < •O ^f- --H COocz. UJ Q LU QCi II !"OCL- h- • OT UJ -~. w -
-<033 II |Q-I— --a 1J i U. ti^ CO os: IOV.LU I- II
r^3oa: a:co<. IS *-*..«.!,OLU«—1 > _J -> D. • (—
(
ILL.I . fc- II 1 G- —*i UCDbi a: A<o < >- • CD «*rv|
+ CO o_ a:co CO COt—i a: 10 1 u_ 1— • ^-* • —
UJ-K- II CO.- | ~-LU 1— LU< 11 -I— LU | U ' CO LUa-oi^v l—O (V •- CLOt or:> |—|— • X X II 1/M1J || CC «~» « - CO
^v CO | r\j^» .». lu CO Iwi .<CO 3fc LU U_ LU <l- 3HCvi —
1
* 1^ l_l II CM II S 1^ _l II -IH-I KZ. H^2 a:o<c^. o>-> <u:
a:oz>-a KUZ i/;lu LUO H- co -3:- LU CD II LL.
»- IULUUjcO—< 1 ^Q — LULU CD-* 1 11- l-O LL orarco | ODC. JII COIIO. 1 ) JII no. q:< < |*HH ct'O la: O— >- II
a "Cui- lu>-c/.'0_ujc£ COh >-cOQ-«— 1— h-a:^ Luaa: CC.r^i
cca.ee cc co \— cc H- CC CO \cCCXi<S) CO |or. ^» lu 'Z. a. »- ..0cCdCSL n c 1 |w <o 5: 11 £C x 1 IO -« Dl lu IU _J •-< >"OZLU >- I—> 11 >— 1— •• >- h-*- 11 cocx:luly:i— •*S a: co >-< i/i •-^-tsfi—
1
II V~>—i/\..XX CO CO .—A ••>Xal 10 a <xa: .1 X •—'CO
1aujt-«a. \<oz.
1 1DUJ<CLU_ _l 2£ •i:- <_> -^< CC •• II COc£
•Ji- o_l— —'a^u-aiocOLu —1- wi3Z>JZC—+ LU olu.-. ..v. a UJ2 (X<\a:x ••> ax •» Q2iLU | M~*X<C.
ILUOU. ZTLUOU- 2:0:2 r> ^ oc > o_ 1
UJZQi- cua:of-< LUX>0 .«^v>^ _JLU fJJ
•»> h-00 <.Ol •-QdCO0<UL u. LU |2! % z<o or:
Gl/lH •—
t
. CC cC LU .-.--^ <_J _JLU30 IO II -J>zz QiLU <UJLULU •«> OQ3:ua:
O cC
LUa:LU
62
CO
o<LUcc
\
UJcCaLLUJCD
I
UJ
•H-
UJ
cC<oo
K- •H- Q. UJ vr~< O
-ft
•M-
oo • •* «K
!>>. ^ • *» OO <r
ar# O CD— z:x _jw < z— h-«LU
1
cc h- —4—. X 0.
XX 00 x% 1— LL
too K 1LU .-
1
h- h- LUOO •* • 9- 5Ih- CC
n< >,< SlL a K C^a: UJ
2: •M- « 2 OOO z: o: Z oo< COUJ Dh UJ .#.O0_ LU < UJ "• 1— ••sO.H- ujct: XQ h- 1- XQOOO OUJ>- LUX< i-zoor. ^ 00 1—^OLU x^:1-2 uj uj h-O \— LUCJ<X 3r *s LU LU Ol LU
IO r r <l— 00 h- 1— CC 2T II
00O l-<UJ 00 or O *1 • • » »-oo:ec£ 11 •*»:
1 00 • •> < 2 H-4 »*V» •»• • «• •»Mor 00 1—<< Ml ••« rt-^-Ci \- —
.
1— LU •
»
,•1—1— ^ <**> H-
CC Z_J_J<oO-?: •—• —» Q_ < UJ .>- 00 V, X —
»
— c^dt: < • ».rv| a:\- hh -Jo-LU 2 >- <-H <£^ LU 00 —< ^ uj-!;- •- •* K X NU<ZJ ^•H » <^ .*
• *Cl Oo^ct: :h-x •> •--.(_ LL'ai S=tt: cc —
>
LU •* ».</)!— IL! 1 X* !—}{ LU*-» Q.OC 1 CLJ— % % oox— • -
1
«— X) LU * %ZWICL -1
00 XCO * 1
|oJLUI— |— a. =#:00 O^ cc X 1|h- LLI h- LL =ftO0 LU CC
»-Jfr WQQMUJ OO 00 CC 00 D \cc •'Z 11- DC 00 00 lor 1 \CC OiO H
Q-v >-H<<: t-r> cc oiz zr*-< CC 0000 —»h-<00 h- cc oluj Za: 00 OO X
< XU.iLL 1 1—<ad 00 000 o_i a. cc ~ HllL II 00 00O Olu cc HH II
UJ 1— cCcc>*3:*- •• •»(—> MM—1 | CL 00 ^i- HH(— OO II•" ( ».<T .r.t-HfO 00% •"X
ot •»• H *t Tti—•*-?: < 1MJJ*- 2! =ft ^•s-^i-s: 1 ~l— X
(^ .»h- .. ID II 1 Inc: r-< a: >- =S.O0 o-sik- .^C3 p~«1 1
1—liXLU 3E00 r-HLU OUJXCVJ<0_ UJ 00 oO UJ hh Uj 00 u_ |u_ I/IO^ClM V.X 0-) OO >- HH UJ S~ |U- H2 h-4
cc x a: oa- LL LLOO «»O0 •• ozroooo ^-oo<CDl— h- ""^ LL LLQ »-00 •» Xoo^ ••O 1—00 00 H-a.3; oo oozclxc- 1jju_<— ;z:uj 1— 1— ctr a. 00 00< a. zr cl LULL'-;ZO-OO CC
UJrOZ O— — —• •—' to >—4 00 2:i^a 1 '".J Coo |UJ — ^—I'll/TH-M.O XoOO-i Ul/i . »-l i J
LU l-O OhCL Q_ a |— i~ Ol c£X<0 iioo • l— a. a.ai'— 1— 1— *- ct:x— x 00
coo 1—
1
owqzq: QT. LULU LULU 1—
1
D. |l— _J C)uz • \z cc cc _j uj lu a. a. |i— Luoujiz100 h- H-LU | PUQO f-occh Q_ <C<HH t— LU | KUDU Ooil— O ^H-4
UJ Ow xo- IXH- H-<<<< Ioouj-::-ujh- 1LuriXH- 1— « <.^ < |oo< c
l-X a LULUh-H-O osjt:j UJ ii 1—00 a:*v(jii/)Lu \-o\~<j> OLU—IS—
J
11 1—00 _J^ 1— LU
<lu22 Xooo 00 00 |Q_ |CL 00 u>ai 11 ^« |C <x Ul 00> - la. OQl IIQ.V. |01— XLUOlli \-ccCOcc C£>-LU>-LJ C£UJ0')|~ r —i 1— lu< h-l-Ooi QL <I Uj >- UJ UJOOl— f LU LU<ool-XO <x h- 1-D ac:Q oi • «(-ua.a:z _1 <^o or 21 00 HI \~ H-XalLJui •^Q-OlX CC ccXw |_ -Lurno-i— 11 x Z< < 1LDt— >-(— •—>'—I<T.Z«a 1 2 II X X < LD>I— *-*'-• xa 1
QiCL UJQ —
t
4—4 »-i uj _j uj _j
:
z'z: *-z 1—'<_>U_'_JU-> < 1
*—
4
hh U3_JLU_J ZHZ |i-4_JLULL>I^q:_j< »-ii lu3iJJ
1|ai —1 cc 1
1
«-H »—
t
ha XIIJJQ —JCLU | 1 -iCC^i'—« |>—iCL -JXLUC.
OO O CO LU< I/) |0_0_ Q__J<_J<|CL LU |U_UJ h-S cc< GC_0_ a.O<_J<TO.UJ |LLOj<l~cO</\oc »— a: —i uj ccu> u_ u.<o<'Ja^ h-O. |LU X l>'J- LL O<O O- '<— ij- U iLU
1 a:tn o_ujCih-1 1 1
lljcv<u. 11 oaaoomO. t«»HtV|
—II 1 1
lLI<LL II 1O O^-iCiCLUJv-0 •• >> 1 III II UJ UJ 1
— UJ|— O 1—1 i— < Hi 11 r lu 1
_|_ MUJOO KDO- 1— LUXoO > .-;> .«t^XoO II hi II II II 1— <lLY.Q.LJoO ...>..> L/)00 || 1—
1
II •- II H<Q. |CLO-LL |C£< I-* <-ko<cj 1 a: Kil H r~4r-tO<0
1 O cC I
>-cCCC 00 OoCwlUmIQIQJ Qin-ilUt-H H-i(_iHjLU|r- LL,^H-.UJl-4H-.C<XCi_l.jiH-lUjl—1Q H-4 UJ LU
h- (/) _j OO 00 >0") H-
1
OO _1 OO 00>Illll-;;- LL-X U_|J_ -I LL LL <-;;- LL _J LL LL 2:< lu -;:
1J_ .-J LL U. <U_ -JLL LLX<t/)l—|HHV» i-iS.>-< i-H IJJ —1 —
i
LJ>x H-l UJ —« H-1 h«Ig£V. <—4 UJ H-« | 1 U*~* LUi>—t HH 1 lX
63
oLUXo
*I
</)
u_OO
OOcc
a.
aQ-
cc<OO
I
aUJcc
oo
UJ\-
•*» ^o ••>!—
2 h-OOUJ cc
<Q>-<r
.~ oo atCNJ \X1CL.
CCII 2 -H
>• LU ~ — '|
xas^.^-v's:i—o »•-;;- Ht >
.... cr:*t =*fc coO O ODUJo: I 1
,%-< < •» 23 uu 00 lu 00O 11
<UJ<LU< II LUQi (Xl-QiZa:_ia:—1 i— cloo<xoo -•-.
3 cc „i^. „x• • *~ll V£00=teH-2
CO I|LULU«»»
... —.#O0<00S:X<O II ^^U ILLOI— _J
O *•• to 101/1I
>-Q- «-2w oa2 O2o..~iao u_LU h-lL'CC CCQ II I
!•• II la: 1 ccl-HI-hl-UI-* LULU
00•-HLU LUXI— ••LU »LU »••
UJ_!••COO-t—lO!0000oQ.
LULU
LU
a:
11
2o
CC
00
4lJJ
•O
a:oa:at:
aLU
<Ua
cc22Ciq:
a. 1— lucc
a:00
I—cc
00•< I
zui—
—
00
—
CC-<Q--
LUco-ot—t
LU +>aLU00cc 1
cCLU^-_is:
XoOIS I
*LQOUJ
—
I
<-<_)
O"-iCC
cc<t00.orCC~iluq
coOS2>OoooLU_JO0<o
!:- lu •••
...
-
a2:LU
a:.«<
CC<S)
<tLUy-cc00LUCC'»
LU—
.
X^I- I
00—Li.200
>t--cc
QLU
CC<00LUcc-
CC.»
I
00—• 1. ." LU%— - CC IXX 00
^2u_l-v| X * LL 00.. - x—
3:00 •> •" • cC«—-
1XX •—
<
20 — — »3I—lu< 2 2a: ••00
i^LU UJ LL.'OS I
OcC ^C iCcC «-QI O CDaCX
|t— I— h-LU »-UJV000 I I
^ZcCiiZ.*-* Q OZ<fj 2 2t-2H-
2 I I 2<2< LUO0-Jluq.5: uj fu |X:*:>-oIQ> IQ-I0_l-O_IU-I— (— 00 hOHOCh- loo
I•* I— h— CO IS 00
rnu_Q- ro |o I0>lu
aoo ll ijl »-2ooo11 K— 11 O II Oo0< <_>r~LU
I|LU ICL-D
luxo uji— uji— i—a.ooooQuLU<[ ClX0-X<O«- I
>-!— _J >-LU>-LU|— H- LLIOI— 20. I— K- 1— t— 00 UZIOLU |2 \Z U-<t-H
oooa: ooaooooo_joo1 I KJ |^< leva.
Dt^J CC \CC |LL.>-LU<.
o_j ^c iCccxcca.ID UliOVCLCQ »-f_l It^J i;-LU«»' U_J ^ iiCQlXiClU-OH OOoOmOO >-rr CL< O 0««-ir_JLU o2LU< OOOoJO LU |
X :CLUCC I— LU O05L" I— O.LU- !'r _Jo0 XLJ LU LU2II— _JLU»-h lulu 11 ^1— 11 I— |—2! IS! »-
I<oooo» - >-<_j 00 mxrox*-"^-—Joo
DQQ *-> Zclzluco lu>s: < ooo<a£2<:< •» UJ 3LU—i^mI II OQ A H II -• LL II •- II II CUUUlOlulu<ko.«« la. I U~u_ << r -!r u_o cc 1 >O0f^JJ>-OO>-CL O. »-«»-. _JLU 0.SI-I- 2: UJmQ ILZ'JJZ ^ LU
•• 1— Q cj 1— ll -;:- LLO Q_CX-'«-O0O0 ZD3 CC d. 0-O.Q.a:oJO —cc
ai-JQ.«LLI-00LU-Ka:v.
I— Q cj i— ll -;:- llo clo.'««-oooo id ZD cc a. 0.0:0.0:030 •'
I I IS LU«»-LU_Jh-a:
I O.Q. _D'»>- LU.«>Z3>-_D lliOoolu2:^ 11 11 11
•-•s)Cicc<cCy—QC .-1— 1— h-QK«»w)Dl-KI-t-fl.IQ00<C
IQ_JZ KO. ODD LUX IO—I2: |LU |LULLO
LL-IUQ^'1—<LU
LLLL
X
^UJ>00
IDH- 1— I— I— O.XLDLUX IO—I2: |UJ |LULLO )!
-.QLULU_JLLK- LLlDOCJ Q-LUOOdLUaJOOoro')^ LU»_J>00 <— 00<<LU-;j LL LL LL X- U 1
+ OIliN 1-*- *—• •—'>s,»-*UJ
•j:- -k 5^* )'
•5: -):-
# 5;-
# »«•
* ><•
^;- a: jt
>c LL1
it-
-;;- 00 *^;. cc ^>
^;. < 7r
-;;- Q. -<r
k- if
tt CJ -<r
# CC ^•)!- < jt.
"Ji -<
^ CC •ir
^c >!
7f LL )?
-5c # X *
XQLU
64
a. < #•
oo 2: O«*•• a z^ 1-*- UJ
a •»• H~<t a 1—»-
K z or ••» v.oa UJ 2: »
1 aai 0. 11
h- • •* •
<* Z 00 —* •
t- UJ —1 0- •
ooa
xr:1
—
OOZ • »•
od
l U~>X
f—
1
QZ
2 >-- U_ t—
1
UJ LUU_ s a U_ coLL 2: tflu • •*
c ID z • r- Q *-• ~ %+>
w Q a: UJ z v... t«v O m-m —a ZJ 00 LUV. ->t
"« -7<C- r-( ^
< II t- _i * 3 >-h •—
1
+ %^UJ • «fc < LU«»- *-* V 3 a >a: «— — •. 1 U- .« X—r > C 00 • •»
1 Q_ CM D_ O »l Q I—
<
.J »- II «-»
UJ 00 Q- Z) II t Cl2 II _i CC Qa: ^« 00 II »|~OOUJ U) O < — Oa _J «-. h- z t 2— T —
.
u_ z> •—
I
COLL C •* > X 00 lu a: a. —
.
LUw + »—
UJ CO •*o •-X 1—4 1—zrcxooo 1—
H
00 IO 0. O• t* CD s: uj2: ^^1—
<
13 H- 1—4LU>—•>UJ«-' «— -J \-z 00 2I—
1
1 > 00 UJ r\ju_ <3 cC X= <-JC£ H _i —
"
«_» 1—
1
^ s: 00 _» a. O UJ K-l II 0_J< 00 UJ l-_l ct: _J+ * >- 1 < 00 11 00 U-O XUI> —
<
Q_ 2!_J < _l00 t- U_ •« »-» UJ 2: |LU— >-iQ. _J 00 UJUJ > LU
•-I- w X z _J—
•
> t-H ^fiL _J D. _J 001
00Z aa O.~~z • > UJ II UJ CCL < 1
^00_)0O ••> 2: .-(UJ 1—4 00 OOo<_> X z ^ ajoo X LU LU«-*LU>—im >- SIX 1
• p* z 1w | u — HO 2I«— O .i»Q__JQ-2: 00 H- 11 a ^ UJQ-JUJ cl — iV- >> # < QOOOOO II CC CC xq:<_l <T • r> H 1
oox Si s: <ooco |o II o> zo 11 i-amO LU2> UJ UJ>- 1— l UjMJCDZ-^ r LL2T LU3; 21—
>
oOLU oo 00 iC h-LL >- a: 2: >- <y. r> a. k—< ^ 1 z H- I
N-KJ X _J lux X 2: Q 1 ooaooo • •> —
»
•^.O OoO LU ZOO2T ca\- 2!< o£X> UJ UJ < QQT |3!LL>- —
»
Cl OUJ J— LU ^ LULU»— tl <r LULL a 21 •• X LU 2TCH- 1 _J •"fc "00 LUCQ- let: O Oa:
LU.-> X ~ H CC <3.LLX0O O 1
•—^^^ X > 1 H -H 1Dh Z— •-I— II 2T •» II II CNJ _l | lulu-;:- co • UJ ^i_J O II 2:^ 1 ^UJZ —i» 1—
1
LL,-, CL 0. <r x^zq:ns h- IO 2:0:Z>- II Oxo _ICL o_cn x ->2r —•00 oo
1000 1 >- <TLUcO _J—» Z)LULL 21 UJ
I—1 l.» — + oo | 1 t-G-LU.-G.— <••1
LU duju)^: 00 h- t— SI <JCL OIIS 2!XILUJ-* <r<-» IH- ooxc\!ooa£i-4U_ > o_x 02 1 oo<>- 1—100 OHO LUO
f IXJ »-• UJ zr a. UJ UJ —ta.—'h-o-—
<
> < UuOU-iUUl— >-- I— OO O— UJ O ^i-ua ~>\— LUO0>00 |00_l O0_J>K x _J COXXX 1—00 LU-J II O c 11
2T>>- >- X <UJ y- aoo a 00 _J_J Oh- LL' a:-h •- D.O c\J t-Ol_Jt— oa J—
II t/>!X' oj ii co 1 li c: n t\i •» << II z •=C %XrH 00 CO I^A" ^1 1
<Stw- io 2: a. 2: Q-A 00 O 1-* M h- MJ 2: t~ O LLLU UJ UJ_|- CvJO. II LUQ_>- |D-> • </> 1" 0-% 0002 + <>- UJ i^O 'l^h-^
_i h- cca |oo •• ac:oooO'_£ooooc_ r\i. ->ac uj |h-.A">1cC 00 00 ••> c •*
<_>.»<t a: ii t— a.a 1|cn II Q-Lj IX • ^Q-LU O O UJ*—
1
1 luljll 2: a>oil- •>:- h- lu OOQ • "LL 1— LL 1
> OOCCiUJ •-O 00 1— —*O '~< + _i Jf-t- aro»-t LULUOOLU00 NZH</) ••« o>-« ••>><>—«< -xl£<\i CO < ••> OLU >-i II \X'm OO>— C^OJOli- 2- QUJ CLLKCLU, Z <X.\—OLL ZOr: -"X UJOU- _JLUUJUJ UQ-aciM lijluq2ujd2:>oom LULU .oOCi>-' LU 3:^ •• zro^-* LUaic£ oo ... (_ 00 00 00 II 1! Q<Q< OLLDU. _J _J -J-5'r U_ O Z LL—1U_(_>
aOiOO
a><->o*-< UJ UJ UJXl-H —
t
-50 LU -•
QOQ
65
in
2 «• —UJ S -HX UJ CO f
J— CO m Q__J IU. •- CO
fT) LL I— UJ O-J ~-S CL 2< i^
|| • * •» UJh- L_>
—
»
• s •• O <J—» .-< UJ II E LL!>vl—oo
i•—
i
»«A ••>o_-;<-co»• S OS »— CO
I
O Q. * I— »— >UJ
< co ••• 2 __jlli do i—UJ — 2 >-0 Di/1 OujcO<a: ^ UJ«" Jm ajv ujOh-
I O"- i^—• _JH- Sir OXCicOUJ <-» QCM <0 >- HOCL h- »-h t— Cl UjD 00—J Z3tJ0«-cow- |co a: a: o Ouj
••• ll-» |i— >-— K u-ca oio:O UJh-ixcO •• X—I t— CO _J5L h- UJLL2: cD-l-H -— ••srO - 2 cn> • >ULUJ 0—<_J _i — X>cO ZO Oco —t.coorr
ujook \ — coos: <-"o a z%hu.iwf— »-.OOUJ ...> w >- <r o • tu luicoo<_J |_ v. 2 —X H- II CO A 2 XUiCOLLK
—» t— |n< K v> uj uw •-' I ujf- ujq^: »i— h- cciuv^ l/)UJ (— <- X -"CL CQ_Jh- I Z XLLCO <2 CL
— — \— Oco h-V.«« _J •»- OX —ILL) H-l-llJ>l-OZ I> Cl"<< • #^ Oil — V.~~C0UJ OS QjU-'cOt-'CJUi
xi— uj 11 couj o co % -}<-~£X2 ouj o:ujz>co*-h-i—"jc:
11 cocoa: coco 11 x— I |>- -jh Ocoo_ilu<i—
o
j*t cu <r A^ >-^ uj • cl'coii <<ru iujuji— a-'<u_O C3 II UJ I OO OC\J co— I— —«X I I— <LCJ <<GlUO ctTUJ O •* —<Q_ !>•"• < >-co<r_i ooco cou-O II I— _J<rOCD <>=JZ.Ol— <cO — 3£|— co KXh i— CK" OO < I— c£ coo -J i
|U~< i-t =*fc (CO X-h CO <% CO LL O0<O__J lUJOXII UJLL'I— >-X \*- UJ .-LULL + — 2 |2X UJ""* '-, 0_JO'JJ>
••> i— coco <i— uj^. h-uj«-olz: o »-tiuLU>- arv xozcnw ocoi£ —< t
or. i- at <:xt\ico _j o Or- xcO'-jj uj2:<x<2cci— uj cl"< < I 1— l— n. III •- o cu>-i— Ixxuj k-!0>llOL!;cj
II »^/)f— —. <>-< I— LU OO C/JU.I —»|| OO OcC <ruj x Ocococo o_— <CL > 00H- — CL >— _l I— C\J_j^l— l~ COO IllCiX—22 •— -h-co •> 2 <—< Q-0||<^^_l — in -
I D*-< -J 0<T ZHZUJUJ w.^.c/-)'— ^. <iCi v^CLt— O CO— C£ t-l O O-JI— XI—XU <>-X_JU-.«-i li-.
1
x^ »— o. «>^ •«- < •):- oco a.uj_i _i< o <ou_'Uj ho co<: t-i^u.ol-O OQOO=fcO <UJ Cl-— |C0 AO>.. I O lUZQCOXHU- *— c3<c:x'-'
l— »-i^- |< »-.q: • |uj CO r co ^-1 uj xxuji— lu 002 1— cjH-O _)iZc0|— O > LUOM !—_)•- XII XL CC O-Di _J_JCO m ll:O rJ COS II
lOU-CO r OI-m lo--^—'>- + CO COO<X —IX—"I cL
A«- Lu<rco I UJ Q O |C0 % i^—. II ll ^LI— |nDo< «LL>-Ht— U K_jOJ
O I—K UJ CO <UJ 0%UJ +UJ li^i^ D< 0-X000-2LL< X—lLLO^D-» <co i— -< uj 1 lu X c3-:: _Jf~— •-&- uj O—ir-t i>—illjOO nj^cLU'-* cU
O I— |-<D'J Qi_l £X I I— SawXlXIIQ^ I— _J«— IciicO CO U2H IXH-i^XU_ 2 C0LUOH-2 O 2 '-CO i/)IOj< 2 ( <f I— |0 h- UJ_JLU W(j>"•—
. lu«~—h iljcouj-;;- -;;- o -5;c_>-q_I 22>i^UJUJ»»|~ -x- ujuju_<Iuj—»•—' uj<ii~ lijoo
oq:< ^ -^.j st/r.izci •- 11 >oco Sll(.om_il,h •• cc»--'<">u_x I
2X1— UJ < iO O <Z I<LU 2— coui 1— I— ,-,O<
UJCOOOCO *•> II _l II HQyQ uQUJt— «•> _JO:UjUJ Qi2.l— OT-'OOQ _J_J O •* O •- _J XO ••O coco JOO<Z
U_ LU 2 0-::-2 OQ-<Q.LL UJ2 OUJLL-J-J-3'i C002X»— LL •>;- LL•-< LU CMJJ OXO (•)•-< 2UJ 00^^^*^ «-h \ >-<
66
*
•
O2LU
h- • »»
ar • Q< H IUCx. 2
OII
V, 1- O LU —
»
•K- Xt—
1
O1O
CL00OO
•s.
00
A CC or M »^
h- t»> • .-< 51 H > sLU D >• V —0 00 X *00 2 «•* • •» t- K- E or —
<
»—
1
LU on Q- LU II _J LL Q2 22 •z. u. u_ LU
<~LULU LU • U-% Q _J»—
f
«•* 3fc •»•* u- 1 x: or # •» _J\- *-<. -
1 2 00 u-o —
«
LU
<r iiT QT •• < 2 ••» LL-OT LU 3 M O.
or w- x«»— O —> U-< X ••> w» OO< > 00—-=tt. X —
*
U-U O ^»l_U •-> OO_» * 1
\- 1— V E 1 —>,- »-H •»
II » |LU H-H Cl — LU • » -HOT II S 21-^u: «->LUk- 3 LU ^-1 —1> i^ 1 LU
1%- *-^
Q O »h< O << O CLOO LUO.V •» O Kl- 2 X »—10O < OOIUCLQ- •»• *: CO 00
»-» cq • •UJH-00 O ai h- :ZCO —• or oooo*— w
O —-1— >r>~. •—
«
.—
»
H-. 1Jl or h-0- >-or•5rO E >~LU h- LU ••• —
<
2«*;Xoo <2 II «-00 00 <<SCO • *• r-*COLL!H- O CC — — *-+C)— LU >—
1
or— t »• •—
<
2!>w ^c t-H 1—
<
X) CD --I LU 00 1 ^— o_<_
1
»— 2 —O iH -*<»- O 21 (- — 1
-<If oi-oo>o a. A LUA'J)2 11 '-"-1-00 O 1 < CM II 21- Zi-ilh- CO 00 K Xf-21—
1
»-iatoO 1 CC cc H •-» rn lJJoO —
I
y w 2 KZm_J _j — 1 u O. O •CL 00 -H — 0.0 •UO —>- ^ IU LUJ-J '-Z. luo>-< »*«/>
1>~- H-OOi•-<r\j • -J2 • »—10O O t— o_j
LU CD — 1—o< < LUvO— CO LU - 1• LU3LU < >-H 2^LU
Q. 21 fOoJ<Z>U_ 2-«ii£ _J 1- CCLU M A ClOD II H- I— V LUVO.OO > »• 1—00 CC O—O < > OOOOLL 0: X 00 O OO
1 00 _J_I00 II O !-<•- •• II 1- LU<.->f-l(2: 1 h- ^nLU 100 i-<00 |
O1 CO- II u_ |_HH| ,— r 00 UlflHVOO Q.2 LU '- —1 t-"0
cC < COCCLU LU — cTcQOO^ 1*1 CJ 2or.;<- II 00 t-H- X 11 xor
O _J. 2T5I.JU.il— - 1 ILU LU >-
1 u- OS H- II <HH H HO3: >->-CC|--< Q LUU.1UJUJH 2T \U" OUJ_< (NJ— , t.|_
1-~> S:
1• OOoO<l<K < *L\-\-V->t-<L X> -:<• 10 a. > i-JXCMOOQ LU car |
00221 f-^oo LU U<<<T<K OO arOooiuix' 002 hOUJ LU 21 oOOi/iZ
UJLULU << |oo 1 X <t~HHH 00 LU • or — 00 LU LU LU LU CO i>T 1 II X 3 >- .UILUa:i^ _j_i<r \\- < CO 00 00 00 00 or oTLU2>J<ooarx 002:0 1—
1
00 _i 'orxIh-O ———ih-X 1 —^>.« O ILUOOLU |H-LU>-h-a.-teLL 00 O • |H-
^ t— or —xuj •XL ^> II1- ^LU^-I 11 ar>xco ar^: or 00 |oo < co ^r
•~oo X 1 LULU2 OUJ DT laT otlui— OO l>- LUO 2; 00OUJ 00 1-2 Ooruj<cna. + LU luot >-* LU h-s: II hh >.LU >-t} LUOXA'- r*->- -j -JCLI— 1— _J t- O.OOOOV. XA •*xt < OoO tONlAO O II CO--.* <oO LU1-1 < # 1 1 O CLUDaHOZJ 1 O2 :siO•- II— CD CD'" >;- S Luh
1I+-J h- SLUCLl- t—4 Q2O0000C3LULU >—h~ fc-i
LU II q« aroa •v v. cc 00 co —1 11 OO or p< •* II QX'-II
X U_ 2" p*X < l-J -<X I<qTluc u_ *- 21UO LL
h-i^i—1 LULL! |00^1UJ|— ••> t #» _i> s-< .•1— .. "_j r 20 t—1 1—-* •SLU2tC•-^ ,-,
h- CC LU OO «-iO .-O .OLU || II OXQ>-XU-X-JZ>2 32 ouj a: ZLUZ Olullll. U_COO0>-<|— lUC?LU OLU 00Q.M-)Q LU2LU QQH' t-H
67
LUUJ >v3 *
>*- K*- UJ
CO O2
uj. vr r —h- # - to<c orh- — <(/>' 5*1 "v^Q.
O #a <t o<: i- s: •* 2UJ V.. 00 >-— •—-» UJi-h
•- !• # OOrH ..——I h-J—— <Q —1 |+ i-H—IO- <C£< O «-«^ O.o0 I—
<
|| ^LU • CO • - —«— + O0«-' OOh-act: • s: — >s: —> to o201 • • >- s: >>w hjx ujlu<
uu _jijj >- oo >- —oo # clD 1-" Oct: u-«
s£ cc cc •- oo — | oocDu- r> a:o *- a h- s^-t
l ^ 5; aoc 1
h- ^U- UJ •• hh - o • II >- II UJO UJ
Iui 021 _ ^ r • 00 oiu. or
>- CO 00 _J > •- • - iH-J—' oSI 2T I "O^ <— CD % D Q.h-<M«* zz u.5; u.ui v r-t_j •-> 11 2 I uj trxa.—1 i-<cujD II- -5f c£ —> 11 —x i-<- O h- u;o0 i-icnQ i—< O +0 -i—> — 1— r o: uj zz»-+ oct-v. I
1— a: cd-J «—u O- ar < _i uj > u_i<x ;:- ujrooo aL 00 _j 00 u.co ui x 11 x<nj *:& i—
.UJ f- o 11 w ooz I Q l- »-«CL oi< <o«-u 11 ••> . 1—•
-}'- • •• co a: 2<uj —.uoo <a.uj(—uj — »o X"^—»•- s—. < >-. > ui mc\j suit— 00
II ID— '-ft D. 2 -. UJ >i»£ > T. < CD LTiD. II Ct:<ctco 1 00 —^ 1 1
—• u_ +00 00— »:- - 00 c\ioo.- 00 a. 1— 11
—I— »uj — * -J |2—i !>•- a O —— csi \ _ 00 -^Q_ CH i»£ — _l %UlO_< I— Xr-i ... H- •*II_J—ICL -ft IZ % Q-00 11 << o Q-uj xoou Xh 2: z—— a. co. 00 \-t~<.
1 00— ULh- <t 00O_ M I— I U U. I > O 00 O0— COoO JU.: >->t-<q:oo k .^-oo am z 00 t-i— •> _i 1—cs:*-' • oa. h ^X|| 00 •_) oo^> _j 1 t—ij O uja_>-a>«> • ujoo <v.o*-*l— ui •-
I»Ooo h-u:<2 H •« •—
1 o<— uj co •>oooo<r^t t ui # H- -it-
<
U-UiaT—. uj c0< "-"i^oouj —11 UI2I2 "§: Q-<— |> Ui • •« zi- >^oo h-OOOQ- I— O^- XO ^•-— _J II CO-—* >- tO00_J»— + -J '—t UJ 00uju.00 < >Q2 —<i— 11 ca^- _i oroo—i 00 ox 11 ~uj _joa uj
|
• »-0:U-^. h "Ai/ILIjIL U_I
f-OO— Cr. -— O I II ACCliJ —< X00 I _J 2—»HUJ-» co^: ooi— |i— x |<J 5^ I _j< ex 0^:2 ct rs2—a s_j •— ucki-»-. |o hwI-l'H =fr-co vJ'VO'*- 00 •- OO CZN >- rgoo <t\i 3:vX^I—<T— •.•ijj<[
11 1 xuj \a-D- r co ^-i »-o •--;;- u-ujd-^-ioo a cuo. -^.K-^-ooh->"•!— 1— ou-uii— cc — <s) 1 s: 11 _j - -;;—= x^ocl |.-oo h c 00 ^00
<oo *lli»hzluUj »• |^_j> 1 C11-- —- - itih- ooi—o— •- 11 -j; rnocII I I— I |X CM UI—U! OO— CC O •* XDtfrlC 11 v. ••• << 11
oouj uii-h-j:-u- > zj > »-uj b^^ x-^» 11 11 u'O'-tuiLL, <c^2-;s-o ^-i 111— uu
—c.—H- (— U^v—<i— _j cc)—<.\- _i! •>cl izq.jzlu>wujszii ooa:=tto_ooGi:<j: < ci^r h-ooooooi—xc^ 11 o</;ooi— 1— o>-<^—. 00 »-<oo •» 1 uj 1 I
00 xt- 1—0 -h-22 1 p:lu< 2 1— z>z> h- XU.-J 1-I
a. cluj-::-ui«- 11 00 00 ujoo 1— •v. < 11 «j- -4- 22>^uj|— >Q_a. •«>2:uj s^ui .*u.'Uj .ooq.>-K'^.!—
•-cc: 00 a a: 1 cc*cc xxt— h- coj" c_j>d 001—< <o<o-u_ _i 02 coi w p p uj^zdzj zzaioa 2uj<z:h n- t-0>oo>-» lu OUJ.»d:c HQ^O 2U.OO UJ qoc ujQoouj m (.oooujoo
Qa:a:«''a. <\i 002UJ010 |U- X U_ . Q.O.U. _J
ui LUQa;w \m 00001—1 ui
K-U-
68
«-» • •* H m Os: • • ro>- • •^ Q00
1
4c
AUJ II
z_j
<zr 1— O —I UJ
~— Q UJCO <
*f H OO V UJ h-^—» o< H- h- 00« ~- • - • • CO v. •X r-
UJ — • •K z. —
»
H — — • O. in O-r»< a. — \ ^o->. in *-* 00
• »• ujh- 00 >c >-< Ql^ •5-11 1- w
o |— OO — 2: C -> < ^z < 1 —
1
•• > X 1- _lUJ h-> O-~» 00 t —< • • h- — -I < ^x
v» OOUJ G0-J>« 1 X. a. ^ • O Q- H- •••*• r. X a: 2:0- a O « CO ^v 5: OO *—* »^
H- oa •»>-co« < H-<A *- ••> O 1 O Q>—
<
<: —002:00
—
1— « 1—Z' 20 uj O UJ UQZ
1 • UJ o3— |>- i-h— 00 m O0h-< h- C2T _i \~ COCiUJi- • a: *tt— 00 • * z: _JUJ >—
1
< —0UJ t ••> E IX 1^- UJ- <UILU 0. O u_ • K 02o Oc\j < U- UJ LU<O 00E uitr O >- 00^ zr ...
a: OO •€- • »• u_i— z:_iac ac h-V h- K-. ••« UJ _J I'f »—(OO—O 1 uuz — t-r <w.— a: •• < —
.
2I< UJ z: _JUJMu_ _J OOUJ r-l -o-l— >>LUQi Q- .. Zcf. s; UiX II or. UJ _JC£—
^di--jx OoO HH oo HOO 000 3 xo UJ >O #U_Z"<H- 1
oO<— II 11 o< UJt~< 3 a; K 0- —
^
V- HO a 11
h- OOOLL t—iiu<x z:o_ X C0>- •- u_ ^O < l-H 00 11
00 | H- ..Q. a: -157:SlHH H-Qi az O 00 s: -•a: tzO • UjUJ II z- H-00 tt | |>>-O0_J <•»• f<(D X in 1 UJ 2!UJ DUJQo • O-i z~ ^ujujoooooro U_U_~» l-UJ_J 11 a UJ Ct.' UJO. Oi^O
.002 1 u^: alcC 1 Kco O O <a'o 0£ -jh- > Q. 00 OOCQa:z)>-auj u ooz:zra-z: OoO UO < < .» < 15*—LU^UmJ LU< = LLLL >- oooos: H-<'-< Ul — 00 OO h- 11
1
• •> M l-O Jh U.UJLIIZUJOI/J H- S 00 LD w Om 00 zroo .z:o >-»- 11 oc>- 1.500 U_ CO CO UJ 00 Di zai »• HitUJ "V. _l Z 1
^^K—
1
U-l UJ •)< •-<
UJ JO UJO >- 1-H | |X_J<_I UJOOr-l XlZtoO >i ••«* O UJLL CL Xq:>v.
X II <ZK(/i OUj = SSI-Ijjj>< I-dJ 1 OD >S'—a .* CO ID 00 _J h- 1 11
K z 22 11 h- >-> OiO 2<CX co-o •« t> 1—lOf-H 2; S I IO ^00 <o-o-< r II
<r II c/nmn CDUJ OCloo <I 0.—4 '—-—« >- <J U-i co hUZZ4-H- •- \z 1 1 f- v~-—-m U__J UJO •> -\CC II 00 of:_j >>: zrujujuj
t-.|— a",m uj uj ixj UJOO >><M _l _J ^X-11 y:oi 1 o<r <*> ujii^:
AXt-DWJCJ _l UJ LU>-« UJ<CM aa—a: 1IC.Q. h- O 100 00 Cjoi— C'M |o:q:o<o <_; 11 • -h- II II II X- Xh-w a: luo.
1 SHc 00 X OilL -^ -< H00U-IDq_'<>-s:>- >- - < 1
' i-hq: CLLQ.I/> >->s UJ Q-O _ih II Oh- .u uj a. 10 OUJ- l~SS* - Ct QiUJ 00 rHOO 2: - 1 ox II
~.=?fcX >- | &- oo>>- I O H-<U ••« H-O ICNJ- O COUJ HA"X •— U.UJ DQi CC<. 1 1 |l/)OOUJ II DC 2TCL< - ^Qooi- 1 1— II O u_ 11 -z. 2:zr z- Ot-H 1j_hhoo ••<a; art— > 1
p- <y. —.«. QC - -% <-*(*. x-50 H-I UJ > UJ MQ.I.u... Gl|— UJU-I IJJ00I— tUCLCi-< HU.I w. 1— ' DC*-"Ocluj h- 00 ^•«>KDCHcU.ih-.Qi | 1 IDo: h- D CL II II u_ oOZ!U, DO 1* oou. zr
*=OI—^> |_J> >> a. a. z: uj 00 0-—I —I II J- II 1—
1
«ktl O-h- H-v. h-C!"-* UJluH-<;uj UJUJI-- U-iOO 1— -J o_i H- UJO •• II 11 o< h- X
U_ 1D ocui fa; orDir5u„x_iu. 3< -;;- o-)< DI-OI- ztx 30 UJ U-»—i J'" O'-UQ. O- Cl.C •—1 h- Ul *-t OO ^210''-O.D :
*;-. -3 ujoz: OCJ> •ZUJ .—
•
a q:> >IK Ql-Q- f— IU • •> 121 00« •»
ZK 0<U.O z:^)!-^ iD oxo :ZU.JOuuv.u.X'-'O UJCDV 1D Ol—O UJwUJD
69
•z.
UJ • •»
IQ\~-Z-
UJinroII—
ZK&!*-< #•«
ad 1«a.
Ooo Q. v.
hK -"r
< X—
X
K 1 O<J- ZL <t
mo f—
t
_lit h- LU.
z. a:ujo < _J
*:o 2: < ^CC K-
1- + h-» Z>——f*- a. LU •
vO ~Z* Zm • ^ Om 11 1 1 •». —
<
11 LU* 1—
z% i- CO <r >*UJ 1 *—i Q_ tt
SdLU ••> •-5: * • 3«»Ol-O LUh-. N»JJJ 00»-<r- oo—l 00 l-H «- • •*
»- -J 1 < LL II | ^.—00 11 <l- .-O Z *» U-X 111 a* 1
.-»—.% LU CO> 1-
ma. 1 III- -iq: LU —
•
li OOLU *• ••<<uj Oh- II LU
2!~H- COc£'- LL> 2L<t O.U_i^< |LU- !:- H-.I > ft*
^Uh CLH >; 11 (— Wr-I |— a:0<i/5 IZ UJ a: — 1
UJ
h-H • Q£i-»li<cy.cc < ••> LU MCO—
»
0:no v.1— ** h- >-— IO. Q.3tf it- 000 < _JIUOO (Mwi^or:o "—•-"- H <
r—i * la:iJ- 1 uj a: a*:^ 00 Zf<>^ H-t-a: |c£ .1— •- *-* <
II l-O ujoo CLUJ 1— < LU1
co<t • 00 CQ ¥t 0L H-.J— 1— OO _J2 H-h- UJ3 K LL XLUCO II < <"uu co-< iXCO O IUCO |t«« O Oad— r 1
• • LULUr-tH- >—i
OOUJOO - II II h- cc\- -z.- LL 1—t-GI— \- '"r~* >—
» Jr >< < II o«»> a a<:<rO t>— 1— h- -«. H- |Z <
u. h-x:2HODO -;f cOZ LU c£ h--< V)\— LULUCL C-LU v. UUD" X- Z
t/)hhXCJ •" »-s^O|—
O
"Si. >UJO :d— 2: a a.a >- luz 00o:cjCju-uj Q CO>—OO^LU •1
DOfz;HZ. 2Z.
LULULU
70
LIST OF REFERENCES
1. DeRemer, F.L., Practical Translators for LR(k) Languages , Ph.D.
Thesis, MIT, Cambridge, 1969.
2. DeRemer, F.L. , "Simple LR(k) Grammars," Communications of the ACM,
v. 14, no. 7, pp. 453-460, July 1971.
3. Gries, D. , Compiler Construction for Digital Computers , Wiley, 1971,
4. Horning, J.J. and Lalonde, W.R., "Empirical Comparison of LR(k) andPrecedence Parsers," SIGPLAN Notices , v. 5, no. 11, pp. 10-24,November 1970.
5. Irons, E.T., "An Error-Correcting Parse Algorithm," Communicationsof the ACM , v. 6, no. 11, November 1963.
6. Kildall , G. , ALGOL-E: An Experimental Approach to the Study ofProgramming Languages , Internal Publication, Naval PostgraduateSchool , Monterey, 1972.
7. Knuth, D.E., "On the Translation of Languages from Left to Right,"Information and Control , v. 8, pp. 607-639, October 1965.
8. LaFrance, J., "Optimization of Error Recovery in Syntax-DirectedParsing Algorithms," SIGPLAN Notices , v. 5, no. 12, pp. 2-17,December 1970.
9. Leinius, R.P., Error Detection and Recovery for Syntax DirectedCompiler Systems , Ph.D. Thesis, University of Wisconsin,Madison, 1970.
10. McKeeman, W. M. , Horning, J.J. and Worcmai, D.B., A Compiler '
Generator Implemented for the IBM System 360 , Prentice Hall,T97U_
11. Rich, L . V.
, Error Detection, Analysis and Recovery in XPL BasedCompilers , Master Thesis, Naval Postgraduate School, Monterey,1971.
71
INITIAL DISTRIBUTION LIST
No. Copies
1. Defense Documentation Center ZCameron StationAlexandria, Virginia 22314
2. Library, Code 0212 22
Naval Postgraduate School
Monterey, California 9 3940
3. LT(j.g.) Robert C. Bolles, USNR Code 53 Bq 11
Department of MathematicsNaval Postgraduate School
Monterey, California 93940
4. LCDR Gordon T. McGruther, USN 1
18035 West Outer DriveDearborn, Michigan 48128
72
DOCUMENT CONTROL DATA -R&DSecurity Cl.tsiUc.tion ol „,,.. body of ab.Wrac, and .ndexm, .nn oHT/on n.u-s, b. «n,e fed wbon ,/„ >«.» report Js c/a.^.cQ
<- fr " y2.. REPORT SECURITY CLASSIFICATION
ToriGina TING activity (Corporate author)
Naval Postgraduate School
Monterey, California 93940
Unclassified2b. GROUP
"An Approach to Automating Syntax Error Detection Recovery, and
Correction for LR(k) Grammars
>*. DESCRIPTIVE NOTES (Type ol report and. inclusive dates)
Master's Thesis; (June 1972)j'. authoRIS) (First name, middle initial, last name)
Gordon T. McGruther
«. REPORT DATE
June 1972I. CONTRACT OR GRANT NO.
6. PROJEC T NO.
d.
7«. .TOTAL NO. OF PAGES
74
7b. NO. OF REFS
11
9a. ORIGINATOR'* REPORT NUMBERISI
9b. OTHER REPORT NO(S) (Any other numbers that may be aealgned
this report)
10- DISTRIBUTION STATEMENT
Approved for public release; distribution unlimited.
II. SUPPLEMENTARY NOTES 2. SPONSORING MILITARY ACTIVITY
Naval Postgraduate School
Monterey, California 93940
13. ABSTRACT
An automatic, language-independent syntax error detection, recovery, and
correction system for LR(k) grammars is proposed The requirement is made that
the reverse of the grammar involved is also LR(k). The implications and
iustif^catjon for this requirement are discussed. Given that the grammar is
both LR(k) and RL(k), forward and reverse parsers localize errors and def ne_
left and right error context providing a strong base from which error analysis
mav Droceed Possible deterministic and heuristic corrective actions to
Tollow error analysis are presented. The definition and selection of keys from
the set of terminal symbols for the grammar which enable the reverse parser to
be engaged upon error detection are discussed.
A model of the proposed system, implemented in an XPL compiler for a large
ALGOL-1 ike grammar, is described and the results of test programs are exampled
and discussed.
Possible extensions to the system are presented and areas requiring further
analysis are defined.
L/ L/ i nov
S/N 0101 -807-681
1
..1473 (PAGE 1)
73 Security Classification 1.-3140C
Security Classification
KEY WO R OSDOLE *T
LR(k), RL(k)
Reverse parsing
Deterministic and heuristic errorcorrection
Keys
>,F
r:.,i473 <back
>1 0! - 807- 68? 1 74 Security Classification A - 3 I 409
DEC 732-2.33,4
ThesisMI887 McGruther
135192
c.l An approach to auto-mating syntax error de-tection recovery, andcorrection for LR(k)grammars.
^6 DEC73 2.2-3 "5 u
Thesis 135192M1887 McGrutherc.l An approach to auto-
mating syntax error de-tection recovery, andcorrection for LR(k)
g ramma r s
.