"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 :)
On 2006-05-22, Akim Demaille akim@lrde.epita.fr wrote:
"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.
En effet c'etait juste pour le debut. On peut maintenant y mettre n'importe quelle expression tant qu'elle est evaluable statiquement.
- %% Note: why use bracket here?
Tu devrais préciser que tu parles de l'annotation, sinon c'est pas clair.
Hmm pour moi une annotation c'est rajouter une annotation a un constructeur (genre Toto(...){annotations ici}) Mais en effet je vais clarifier ca en:
Why use the "bracket" keyword here?
qui me semble plus explicite.
- %% 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 :)
Parce que d'un point de vu semantique ce ne sont pas des parentheses. J'ai pas mal etudie java-front, et, a vrai dire, beaucoup de mon code s'en inspire largement, et lorsque j'ai vu ca j'en ai parle a Martin qui m'a dit que c'etait a "dirty hack" :)
Note: il est aussi possible de faire un workaround en utilisant la syntax kernel du SDF, mais ce serait clairement moins lisible. De plus le fonctionnement exact de cette syntaxe est encore assez obscure pour moi. *Apparament* la seule source de documentation complete a ce sujet est la these de Eelco Visser (http://www.cs.uu.nl/people/visser/ftp/Vis97.ps.gz) D'ailleurs elle est dans la bibmachin du labo? Enfin le truc ou on met tous les papiers? :P
"Tsuna" == Tsuna tsuna@warszawa.lrde.epita.fr writes:
- %% Note: why use bracket here?
Tu devrais préciser que tu parles de l'annotation, sinon c'est pas clair.
Hmm pour moi une annotation c'est rajouter une annotation a un constructeur (genre Toto(...){annotations ici}) Mais en effet je vais clarifier ca en:
Why use the "bracket" keyword here?
qui me semble plus explicite.
Ben non, braket n'est pas un mot clé, mais une annotation comme les autres.
On 2006-05-29, Akim Demaille akim@lrde.epita.fr wrote:
"Tsuna" == Tsuna tsuna@warszawa.lrde.epita.fr writes:
- %% Note: why use bracket here?
Tu devrais préciser que tu parles de l'annotation, sinon c'est pas clair.
Hmm pour moi une annotation c'est rajouter une annotation a un constructeur (genre Toto(...){annotations ici}) Mais en effet je vais clarifier ca en:
Why use the "bracket" keyword here?
qui me semble plus explicite.
Ben non, braket n'est pas un mot clé, mais une annotation comme les autres.
une annotation destinée au parser alors, mais elle ne figurera pas dans l'AST.
"Tsuna" == Tsuna tsuna@warszawa.lrde.epita.fr writes:
Ben non, braket n'est pas un mot clé, mais une annotation comme les autres.
une annotation destinée au parser alors, mais elle ne figurera pas dans l'AST.
T'as déjà vu bcp d'annotations de la grammaire passer dans l'ast toi ? cons n'est bien sûr pas une réponse, puisque c'est l'implosion qui s'en sert et la "recopie".
"Tsuna" == Tsuna tsuna@warszawa.lrde.epita.fr writes:
Note: il est aussi possible de faire un workaround en utilisant la syntax kernel du SDF, mais ce serait clairement moins lisible. De plus le fonctionnement exact de cette syntaxe est encore assez obscure pour moi. *Apparament* la seule source de documentation complete a ce sujet est la these de Eelco Visser (http://www.cs.uu.nl/people/visser/ftp/Vis97.ps.gz) D'ailleurs elle est dans la bibmachin du labo? Enfin le truc ou on met tous les papiers? :P
T'as qu'à regarder !
~/src/vaucanson % ls doc/share/bib/visser.bib nostromo 18:57 doc/share/bib/visser.bib