Compiler 415 Error Recovery Strategies: Panic Mode
Compiler 415 Error Recovery Strategies: Panic Mode
Compiler 415 Error Recovery Strategies: Panic Mode
Panic mode
When a parser encounters an error anywhere in the statement, it
ignores the rest of the statement by not processing input from
erroneous input to delimiter, such as semi-colon. This is the
easiest way of error-recovery and also, it prevents the parser from
developing infinite loops.
Statement mode
When a parser encounters an error, it tries to take corrective
measures so that the rest of inputs of statement allow the parser
to parse ahead. For example, inserting a missing semicolon,
replacing comma with a semicolon etc. Parser designers have to
be careful here because one wrong correction may lead to an
infinite loop.
Error productions
Some common errors are known to the compiler designers that
may occur in the code. In addition, the designers can create
augmented grammar to be used, as productions that generate
erroneous constructs when these errors are encountered.
Global correction
The parser considers the program in hand as a whole and tries to
figure out what the program is intended to do and tries to find out
a closest match for it, which is error-free. When an erroneous
input (statement) X is fed, it creates a parse tree for some closest
error-free statement Y. This may allow the parser to make minimal
changes in the source code, but due to the complexity (time and
space) of this strategy, it has not been implemented in practice
yet.
Parse Tree
If watched closely, we find most of the leaf nodes are single child
to their parent nodes. This information can be eliminated before
feeding it to the next phase. By hiding extra information, we can
obtain a tree as shown below:
REFRENCES:
www.tutorialspoint.com/compiler.../compiler_design_error_recovery.ht..
SUBMITTED BY:
Name :Abhinav
Section:K2202
Roll no.: B-49
Registration no.: 11206526