
"SIGOURE" == SIGOURE Benoit <sigoure.benoit@lrde.epita.fr> writes:
Index: src/syn/xrm/XRM-Arrays.sdf --- src/syn/xrm/XRM-Arrays.sdf (revision 0) +++ src/syn/xrm/XRM-Arrays.sdf (revision 0) @@ -0,0 +1,19 @@ +module XRM-Arrays +imports + PRISM-to-XRM +exports + + %% EBNF Grammar: Arrays + %% ArrayAccess ::= Identifier ArraySubscript {ArraySubscript} + %% + %% ArraySubscript ::= "[" Identifier "]" + + sorts ArrayAccess ArraySubscript + context-free syntax + Identifier ArraySubscript+ -> ArrayAccess {cons("ArrayAccess")} + "[" Identifier "]" -> ArraySubscript {bracket}
Ceci n'est pas suffisant à plusieurs titres : - tableaux multidimensionnels - expressions plutôt qu'ID comme indices mais je suppose que c'est seulement le temps de passer à plus grande échelle. C'est vraiment du beau travail.
+ %% Note: why use bracket here?
Tu devrais préciser que tu parles de l'annotation, sinon c'est pas clair.
+ %% This is a work around. In SDF, if a production contains literals, + %% a constructor is required. With brackets, we specify that literals + %% are allowed there, however this does not create a node in the AST.
Je vois pas en quoi ça fait de ça un work-around :)