Parsing non-LR(k) grammars with Yacc
Software—Practice & Experience
ANTLR: a predicated-LL(k) parser generator
Software—Practice & Experience
Exploiting metrics to facilitate grammar transformation into LALR format
Proceedings of the 2001 ACM symposium on Applied computing
Packrat parsing:: simple, powerful, lazy, linear time, functional pearl
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Decorating tokens to facilitate recognition of ambiguous language constructs
Software—Practice & Experience
Generalised Recursive Descent parsing and Fellow-Determinism
CC '98 Proceedings of the 7th International Conference on Compiler Construction
Disambiguation Filters for Scannerless Generalized LR Parsers
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Automated Software Engineering
The TXL source transformation language
Science of Computer Programming - The fourth workshop on language descriptions, tools, and applications (LDTA'04)
Introduction to Automata Theory, Languages, and Computation (3rd Edition)
Introduction to Automata Theory, Languages, and Computation (3rd Edition)
Packet decoding using context sensitive parsing
CASCON '06 Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research
Hi-index | 0.00 |
Parsing context-dependent computer languages requires an ability to maintain and query data structures while parsing for the purpose of influencing the parse. Parsing ambiguous computer languages requires an ability to generate a parser for arbitrary context-free grammars. In both cases we have tools for generating parsers from a grammar. However, languages that have both of these properties simultaneously are much more difficult to parse. Consequently, we have fewer techniques. One approach to parsing such languages is to endow traditional LR systems with backtracking. This is a step towards a working solution, however there are number of problems. In this work we present two enhancements to a basic backtracking LR approach which enable the parsing of computer languages that are both context-dependent and ambiguous. Using our system we have produced a fast parser for C++ that is composed of strictly a scanner, a name lookup stage and parser generated from a grammar augmented with semantic actions and semantic 'undo' actions. Language ambiguities are resolved by prioritizing grammar declarations.