A practical method for LR and LL syntactic error diagnosis and recovery
ACM Transactions on Programming Languages and Systems (TOPLAS)
A practical method for constructing efficient LALR(K) parsers with automatic error recovery
A practical method for constructing efficient LALR(K) parsers with automatic error recovery
Alignment of trees: an alternative to tree edit
Theoretical Computer Science
Comparison of syntactic error handling in LR parsers
Software—Practice & Experience
Practical algorithms for incremental software development environments
Practical algorithms for incremental software development environments
Efficient and flexible incremental parsing
ACM Transactions on Programming Languages and Systems (TOPLAS)
An efficient context-free parsing algorithm
Communications of the ACM
A forward move algorithm for LR error recovery
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
SIGPLAN '79 Proceedings of the 1979 SIGPLAN symposium on Compiler construction
Generating Robust Parsers using Island Grammars
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Building Documentation Generators
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Lightweight Impact Analysis using Island Grammars
IWPC '02 Proceedings of the 10th International Workshop on Program Comprehension
An efficient context-free parsing algorithm for natural languages and its applications
An efficient context-free parsing algorithm for natural languages and its applications
Deriving tolerant grammars from a base-line grammar
ICSM '03 Proceedings of the International Conference on Software Maintenance
Parsing expression grammars: a recognition-based syntactic foundation
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The jastadd extensible java compiler
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Modularity first: a case for mixing AOP and attribute grammars
Proceedings of the 7th international conference on Aspect-oriented software development
Liquid Metal: Object-Oriented Programming Across the Hardware/Software Boundary
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Sound and extensible renaming for java
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Declarative Intraprocedural Flow Analysis of Java Source Code
Electronic Notes in Theoretical Computer Science (ENTCS)
Business Process Models as a Showcase for Syntax-Based Assistance in Diagram Editors
MODELS '09 Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems
Natural and flexible error recovery for generated parsers
SLE'09 Proceedings of the Second international conference on Software Language Engineering
Automated evaluation of syntax error recovery
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
Natural and Flexible Error Recovery for Generated Modular Language Environments
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
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.