On 2006-05-22, Akim Demaille <akim(a)lrde.epita.fr> wrote:
>>
"SIGOURE" == SIGOURE Benoit <sigoure.benoit(a)lrde.epita.fr> writes:
+ sorts UpdateElement
+ context-free syntax
+ "(" ArrayAccessPrime "=" Expression ")"
+ -> UpdateElement {cons("UpdateElement")}
+
+ %% NOTE: Officially this form is NOT supported but it is still supported
+ %% for backwards compatibility. This form introduces an ambiguity
+ %% because the `+' between the elements can be bound to the
+ %% Expression or can be a separator between two elements.
+ ArrayAccessPrime "=" Expression -> UpdateElement
{cons("UpdateElement")}
Je comprends pas bien ce que tu veux dire.
En fait c'est (presque) un copier/colle d'un commentaire que j'ai trouve dans
le parser d'origine.
En gros ceci n'est officiellement pas correct:
module chiche
x : [0..42];
[] x=0 -> x'=1;
endmodule
Devrait etre:
module chiche
x : [0..42];
[] x=0 -> (x'=1);
endmodule
Sinon il y a une ambiguite:
module chiche
x : [0..42];
[] x=0 -> 0.5:x'=1 + 0.5:x'=2;
// ^^^^^^^
endmodule
Ici on voit une exp 1+0.5. Je presume que cela ne pause pas de probleme a
notre chere SGLR, mais avec leur parser de ***** en JavaCC qui a le bon gout
d'etre un parser LR (et d'etre en Java) c'est probablement pas pareil.
C'est pourquoi cette forme la n'est plus autorise meme si elle est toujours
dans le parser par soucis compatibilite.
--
SIGOURE Benoit aka Tsuna
_____
/EPITA\ Promo 2008.CSI Rock & tRoll