The browser you are using is not supported by this website. All versions of Internet Explorer are no longer supported, either by us or Microsoft (read more here: https://www.microsoft.com/en-us/microsoft-365/windows/end-of-ie-support).

Please use a modern browser to fully experience our website, such as the newest versions of Edge, Chrome, Firefox or Safari etc.

Practical scope recovery using bridge parsing

Author

Summary, in English

Interactive development environments (IDEs) increase programmer productivity, but unfortunately also the burden on language implementors since sophisticated tool support is expected even for small domain-specific languages. Our goal is to alleviate that burden, by generating IDEs from high-level language specifications using the JastAdd meta-compiler system. This puts increased tension on scope recovery in parsers, since at least a partial AST is required by the system to perform static analysis, such as name completion and context sensitive search.



In this paper we present a novel recovery algorithm called bridge parsing,

which provides a light-weight recovery mechanism that complements existing

parsing recovery techniques. An initial phase recovers nesting structure in

source files making them easier to process by existing parsers. This enables

batch parser generators with existing grammars to be used in an interactive

setting with minor or no modifications.



We have implemented bridge parsing in a generic extensible IDE for JastAdd

based compilers. It is independent of parsing technology, which we validate by showing how it improves recovery in a set of typical interactive editing

scenarios for three parser generators: ANTLR (LL(variable lookahead) parsers), LPG (LALR(k) parsers), and Beaver (LALR(1) parsers). ANTLR and LPG both contain sophisticated support for error recovery, while Beaver requires manual error productions. Bridge parsing complements these techniques and yields better recovery for all these tools with only minimal changes to existing grammars.

Publishing year

2009

Language

English

Pages

95-113

Publication/Series

Software Language Engineering / Lecture notes in computer science

Volume

5452

Document type

Conference paper

Publisher

Springer

Topic

  • Computer Science

Conference name

SLE08, 1st International Conference on Software Engineering

Conference date

2008-09-29 - 2008-09-30

Conference place

Toulouse, France

Status

Published

Project

  • Embedded Applications Software Engineering

ISBN/ISSN/Other

  • ISSN: 0302-9743
  • ISSN: 1611-3349