SIGOURE Benoit <sigoure.benoit(a)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(a)amessage.be |
`-- - - - - --'