RegReg: a Lightweight Generator of Robust Parsers for Irregular Languages
| Citations: | 2 - 0 self |
BibTeX
@MISC{Latendresse_regreg:a,
author = {Mario Latendresse},
title = {RegReg: a Lightweight Generator of Robust Parsers for Irregular Languages},
year = {}
}
OpenURL
Abstract
In reverse engineering, parsing may be partially done to extract lightweight source models. Parsing code containing preprocessing directives, syntactical errors and embedded languages is a di#cult task using context-free grammars. Several researchers have proposed some form of lexical analyzer to parse such code. We present a lightweight tool, called RegReg, based on a hierarchy of lexers described by tagged regular expressions. By using tags, the automatically generated parse tree can be easily manipulated. The ability to control the matching rule mechanism for each regular expression increases e#- ciency and disambiguation choices. RegReg is lightweight as it uses a minimal number of features and its implementation uses only deterministic automaton. It has been implemented in Scheme which allows extending the tool in a functional programming style. We demonstrate how RegReg can be used to implement island and fuzzy parsing. RegReg is publicly available under a BSD-like license.







