.. _sdf3-index:

================================
Syntax Definition with SDF3
================================

The definition of a textual (programming) language starts with its syntax. A grammar describes the well-formed sentences of a language. When written in the grammar language of a parser generator, such a grammar does not just provide such a description as documentation, but serves to generate an implementation of a parser that recognizes sentences in the language and constructs a parse tree or abstract syntax tree for each valid text in the language.
**SDF3** is a *syntax definition formalism* that goes much further than the typical grammar languages. It covers all syntactic concerns of language definitions, including the following features: support for the full class of context-free grammars by means of generalized LR parsing; integration of lexical and context-free syntax through scannerless parsing; safe and complete disambiguation using priority and associativity declarations; an automatic mapping from parse trees to abstract syntax trees through integrated constructor declarations; automatic generation of formatters based on template productions; and syntactic completion proposals in editors.

.. toctree::
   :maxdepth: 1
   :numbered: 2
   :caption: Table of Contents

   introduction
   reference
   examples
   configuration
   migration
   sdf3-bibliography

.. _sdf3-index:

================================
Syntax Definition with SDF3
================================

The definition of a textual (programming) language starts with its syntax. A grammar describes the well-formed sentences of a language. When written in the grammar language of a parser generator, such a grammar does not just provide such a description as documentation, but serves to generate an implementation of a parser that recognizes sentences in the language and constructs a parse tree or abstract syntax tree for each valid text in the language.
Syntax Definition Formalism 3 (SDF3) goes much further than the typical grammar languages. It covers all syntactic concerns of language definitions, including the following features: support for the full class of context-free grammars by means of generalized LR parsing; integration of lexical and context-free syntax through scannerless parsing; safe and complete disambiguation using priority and associativity declarations; an automatic mapping from parse trees to abstract syntax trees through integrated constructor declarations; automatic generation of formatters based on template productions; and syntactic completion proposals in editors.

.. toctree::
   :maxdepth: 1
   :numbered: 2
   :caption: Table of Contents

   introduction
   reference
   examples
   configuration
   migration
   sdf3-bibliography

Make it clearer what SDF3 stands for
Make it clearer what SDF3 stands for

(It stands for Syntax Definition Formalism 3)