
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: transform/asf/sdf/extracted
Source used for this grammar: Jurgen Vinju, SDF Library, asf/syntax/*.sdf, February 2006 [Explore]
ASF-Condition, ASF-Conditions, Tree, ASF-ConditionalEquation, ASF-Equation, ASF-Module, ASF-Section, ASF-Tag, ASF-TestEquation), 0 root (—), 1 top (ASF-Module), 3 bottom (ASF-Implies 2, ASF-TagId, CHAR).[lhs] 5, [unequal], [rhs] 5, [equality], [match] 2, [list] 4, [ambs], [name], [test-list].ASF-Condition ::=
[lhs]::Tree [unequal]::"!=" [rhs]::TreeASF-Condition ::=
[lhs]::Tree [equality]::"==" [rhs]::TreeASF-Condition ::=
[lhs]::Tree [match]::":=" [rhs]::TreeASF-Condition ::=
[lhs]::Tree [match]::"!:=" [rhs]::TreeASF-Conditions ::= [list]::ASF-Condition "," ASF-Condition
Tree ::= "amb" "(" [ambs]::Tree "," Tree ")"
Tree ::= [name]::Tree "(" [list]::CHAR ")"
ASF-ConditionalEquation ::= ASF-Tag ASF-Equation
ASF-ConditionalEquation ::= ASF-Tag ASF-Conditions ASF-Implies ASF-Equation
ASF-ConditionalEquation ::=
ASF-Tag ASF-Equation "when" ASF-ConditionsASF-Equation ::=
[lhs]::Tree "=" [rhs]::TreeASF-Module ::=
[list]::ASF-SectionASF-Section ::= "equations" [list]::ASF-ConditionalEquation
ASF-Section ::= "tests" [test-list]::ASF-TestEquation
ASF-Tag ::= "[" "]"
ASF-Tag ::= "[" ASF-TagId "]"
ASF-TestEquation ::= ASF-Tag ASF-Condition
ASF-TestEquation ::= ASF-Tag ASF-Conditions ASF-Implies ASF-Condition
ASF-TestEquation ::=
ASF-Tag ASF-Condition "when" ASF-Conditions