|Top Previous Next|
Grammar tests > Non-circularity
No non-terminal may be derived from itself, neither directly nor indirectly. The following production is an example for a rule, which hurts this principle:
Circular1 ::= Circular2 | "T"
Circular2 ::= Circular1 | "T"
If you parse this rule, following error message will occur:
Circular derivation: "Circular1" . "Circular2"
Circular derivation: "Circular2" . "Circular1"
Following rules however are yielding the error message, no being derivable to terminals.
Circular1 ::= Circular2
Circular2 ::= Circular1
The test of derivability is done before the circularity is found and the second test will not be performed.
This page belongs to the TextTransformer Documentation
|Home Content German|