>> "SIGOURE" == SIGOURE Benoit
<sigoure.benoit(a)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 :)