
SIGOURE Benoit <sigoure.benoit@lrde.epita.fr> writes:
+ * Add arrays (sugar). module varArrays <=> module varArrays + module varArrays => x_0 : [0..3]; <=> for a_0 from 0 to 4 do + x[4] : [0..3]; => x_1 : [0..3]; <=> x[i] : [0..3]; + [] x[0]=0 -> ... => ... <=> end + endmodule => [] x_0=0 -> ... <=> [] x_0=0 -> ... + => endmodule <=> endmodule
Wow, et ça ne va pas conflicter avec tes boucles for sur les modules ? Si tu comptes te servir du fait que ce soit un identifiant, rappel toi bien que static const i = 3; x[i] c'est joliement évalué à la compil comme un tableau de 3 éléments pour toi. Qui plus est, il faudra faire attention au masquage de i par une variable de boucle.
+ * Add conditional tests on arrays (with support for ranges): + x[5]=0 => x_5=0 + x[1..3]=0 => x_1=0 & x_2=0 & x_3=0 + (support things such as: x[1..3,6,8..9]) + + x[1..3]?=0 => x_1=0 | x_2=0 | x_3=0 + + NOTE: x[5]?=0 should be considered as an error.
NOTE: Je ne vois pas pourquoi. Si j'ai une variable j dans mon module, j'aimerai pouvoir écrire x[1..j] = 0, ce qui se traduirait par (j < 1 || x_1 = 0) && (j < 2 || x_2 = 0) && ... Ce qui pourrait conduire à écrire non seulement x[1..1], mais aussi x[1..0]. Ajoute à ça que mon `j' peut-être connu (static const) à la compilation, donc il ne faudra pas faire cela. -- | Le copillage-collage Michaël `Micha' Cadilhac | | tue le programmeur. cadilh_m - Epita 2007 - CSI | | -- Dictons LRDE JID: micha@amessage.be | `-- - - - - --'