Ricorsione
Una regola contiene a sua volta la chiamata di altre regole, ma se chiama se stessa?

Il primo cerchio nero, è seguito da un cerchio più piccolo e più chiaro, che a sua volta ...
startshape CERCHI1
rule CERCHI1
{
CIRCLE{}
CERCHI1{ s 0.75 b 0.2 }
}
rule CERCHI1
{
CIRCLE{}
CERCHI1{ s 0.75 b 0.2 }
}
ContextFree smette di rincorrere le chiamate ricorsive quando la dimensione della figura non è più significativa, altrimenti il rendering richiederebbe tempi infiniti!
Le chiamate ricorsive possono essere due

startshape CERCHI2
rule CERCHI2
{
CIRCLE{}
CERCHI2{ s 0.5 x -0.25 b 0.2 }
CERCHI2{ s 0.5 x +0.25 b 0.2 }
}
rule CERCHI2
{
CIRCLE{}
CERCHI2{ s 0.5 x -0.25 b 0.2 }
CERCHI2{ s 0.5 x +0.25 b 0.2 }
}
Quattro... ma il tempo di rendering aumenta notevolmente

startshape CERCHI4
rule CERCHI4
{
CIRCLE{}
CERCHI4{ s 0.45 x -0.25 b 0.2 }
CERCHI4{ s 0.45 x +0.25 b 0.2 }
CERCHI4{ s 0.45 y -0.25 b 0.2 }
CERCHI4{ s 0.45 y +0.25 b 0.2 }
}
rule CERCHI4
{
CIRCLE{}
CERCHI4{ s 0.45 x -0.25 b 0.2 }
CERCHI4{ s 0.45 x +0.25 b 0.2 }
CERCHI4{ s 0.45 y -0.25 b 0.2 }
CERCHI4{ s 0.45 y +0.25 b 0.2 }
}
Si rende necessario ridurre size (basta già da 0.5 a 0.45...) per raggiungere prima la fine della ricorsione...