Le 30/10/2015 11:59, stepharo a écrit :
I'm thorn because on one hand I would like to be able to express a
visitor for the complete compilation unit and in particular package and extensions but may be we do not need to have this nodes and just have an object. I would be favor to have a nice and full AST representation of the compilation unit.
Well, you can unify Ring and RBMethodNode from the point of view of the visitor: you're not in Java where typing could be an issue.
If you have some cycle I would love to have that unification :) Yes I know :) and thought about it.
I'll have a look.
Note that I have a structure + visitor for the above AST level implemented in the AltBrowser (covers groups of groups of packages, packages, package tags, classes, extensions, protocols, methods, comments). Do you have a gofer expression :)
Loading AltBrowser from the ConfigurationBrowser and looking at the Alt-Browser-Nodes package tag :) A bit unstable to use as Browser on Pharo5 at the moment, however. I'm in the middle of a browser rewrite. I looked and I don't have a Visitor on the structure. I know I did that on purpose, but can't remember what was my rationale.
so that I can load the code because I think that we should have this as a clearly identifiable component.
I tried to match to Ring at a point, but Ring coverage is partial. My approach is symbol-based (each node only contains a symbol on the underlying object and resolve the symbol when needed. resolution can be dependent on the environment: the node parent).
We may not have to load it always in Pharo but it should be there.
It could simplify Nautilus code a bit.
Stef