In this paper, we provide a well-engineered approach to the derivation of tolerant grammars, which is based on previous work on error recovery, fuzzy parsing, and island grammars. The technology of this paper has been used in a complex Cobol restructuring project on several millions of lines of code in different Cobol dialects.
Our approach is founded on an approximation relation between a tolerant grammar and a base-line grammar which serves as a point of reference. Thereby, we avoid false positives and false negatives when parsing constructs of interest in a tolerant mode. Our approach accomplishes the effective derivation of a tolerant grammar from the syntactical structure that is relevant for a certain re- or reverse engineering tool. To this end, the productions for the constructs of interest are reused from the base-line grammar together with further productions that are needed for completion.
@inproceedings{KL03-CTP,
author = "S.~Klusener and R.~L{\"a}mmel",
title = "{Deriving tolerant grammars from a base-line grammar}",
booktitle = "{Proc.\ International Conference on Software Maintenance (ICSM'03)}",
publisher = "IEEE Computer Society Press",
year = 2003,
month = sep,
note = "10 pages; To appear"
}