Recent from talks
All channels
Be the first to start a discussion here.
Be the first to start a discussion here.
Be the first to start a discussion here.
Be the first to start a discussion here.
Welcome to the community hub built to collect knowledge and have discussions related to Syntax Definition Formalism.
Nothing was collected or created yet.
Syntax Definition Formalism
View on Wikipediafrom Wikipedia

The Syntax Definition Formalism (SDF) is a metasyntax used to define context-free grammars: that is, a formal way to describe formal languages. It can express the entire range of context-free grammars. Its current version is SDF3.[1] A parser and parser generator for SDF specifications are provided as part of the free ASF+SDF Meta Environment. These operate using the SGLR (Scannerless GLR parser). An SDF parser outputs parse trees or, in the case of ambiguities, parse forests.
Overview
[edit]Features of SDF:
- Supports the entire range of context-free languages
- Allows modular syntax definitions (grammars can import subgrammars) which enables reuse
- Supports annotations
Examples
[edit]The following example defines a simple Boolean expression syntax in SDF2:
module basic/Booleans
exports
sorts Boolean
context-free start-symbols Boolean
context-free syntax
"true" -> Boolean
"false" -> Boolean
lhs:Boolean "|" rhs:Boolean -> Boolean {left}
lhs:Boolean "&" rhs:Boolean -> Boolean {left}
"not" "(" Boolean ")" -> Boolean
"(" Boolean ")" -> Boolean
context-free priorities
Boolean "&" Boolean -> Boolean >
Boolean "|" Boolean -> Boolean
Program analysis and transformation systems using SDF
[edit]- ASF+SDF Meta Environment provides SDF
- RascalMPL
- Spoofax/IMP [1]
- Stratego/XT
- Strafunski
See also
[edit]References
[edit]Further reading
[edit]External links
[edit]- Grammar Deployment Kit
- SdfMetz computes metrics for SDF grammars
- Download SDF from the ASF+SDF Meta Environment homepage
