Eli: a complete, flexible compiler construction system
Communications of the ACM
ANTLR: a predicated-LL(k) parser generator
Software—Practice & Experience
An efficient context-free parsing algorithm
Communications of the ACM
Growing languages with metamorphic syntax macros
PEPM '02 Proceedings of the 2002 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
ACM Transactions on Internet Technology (TOIT)
Implementation of multiple attribute grammar inheritance in the tool LISA
ACM SIGPLAN Notices
Disambiguation Filters for Scannerless Generalized LR Parsers
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Forwarding in Attribute Grammars for Modular Language Design
CC '02 Proceedings of the 11th International Conference on Compiler Construction
The Elegant Compiler Generator System
Proceedings of the International Conference WAGA on Attribute Grammars and their Applications
Pretty-Printing for Software Reengineering
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
Extending Java for high-level Web service construction
ACM Transactions on Programming Languages and Systems (TOPLAS)
Better extensibility through modular syntax
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Gel: A Generic Extensible Language
DSL '09 Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages
Syntactic Language Extension via an Algebra of Languages and Transformations
Electronic Notes in Theoretical Computer Science (ENTCS)
Banana Algebra: Compositional syntactic language extension
Science of Computer Programming
Hi-index | 0.00 |
We present the metafront tool for specifying flexible, safe, and efficient syntactic transformations between languages defined by context-free grammars. The transformations are guaranteed to terminate and to map grammatically legal input to grammatically legal output. We rely on a novel parser algorithm that is designed to support gradual extensions of a grammar by allowing productions to remain in a natural style and by statically reporting ambiguities and errors in terms of individual productions as they are being added. Our tool may be used as a parser generator in which the resulting parser automatically supports a flexible, safe, and efficient macro processor, or as an extensible lightweight compiler generator for domain-specific languages. We show substantial examples of both kinds.