Syntax Definition

Producing and maintaining parsers for large languages requires a declarative syntax definition formalism from which parsers can be generated. SDF2 is a modular syntax definition formalism that integrates lexical and context-free syntax and supports arbitrary context-free grammars. Since the formalism is declarative, syntax definitions can be used to generate other tools from, e.g., pretty-printers and data type definitions. I developed SDF2 as part of my PhD research at the University of Amsterdam. The language and core tools are maintained and further developed at CWI. SDF is an important component of the StrategoXT toolset. Various tools for generation, transformation, and analysis of SDF syntax definitions are developed as part of StrategoXT. Recently we have been employing SDF to provide concrete syntax for data in host languages such as Stratego, Prolog, and Java.