Se due regole r_a e r_b si chiamano a vicenda il parser non vede una delle due regole.
Se metto prima r_a il parser non trova r_b e viceversa.
-------------------------------
asm ricorsione_ind
import ../STDL/StandardLibrary
signature:
dynamic controlled valore: Integer
definitions:
rule r_sottrazione =
seq
valore := valore - 2
if(valore>0) then
r_somma[]
endif
endseq
rule r_somma =
seq
valore := valore + 1
r_sottrazione[]
endseq
main rule r_main =
r_somma[]
default init s0:
function valore = 10
regole che sia chiamano a vicenda
Il problema è quello della mutua ricorsione.
Bisogna implementare meccanismi tipo dichiarazione anticipata oppure parsare due volte il file.