Hi,
SmalltalkImporter gets as input a collection of classes. Based on these class objects, it creates the structural entities up to the level of methods. To build the entities that reside at the level of method bodies, The SmalltalkMethodVisitor is used and this traverses the RB AST. The RB AST is only used in the SmalltalkMethodVisitor.
But, if you want to get more details, you could: - put a self halt in createMethod: - run LANImporterTest>>testClassName - and then step through the execution :)
Cheers, Doru
On Feb 27, 2013, at 9:59 PM, Fabrizio Perin fabrizio.perin@gmail.com wrote:
Hi Doru, probably I got confused. You wrote:
- The visiting of method ASTs happens in the SmalltalkMethodVisitor which is triggered by SmalltalkImporter>>
createMethod:. It is this visitor which is the responsible for triggering the creation of low-level objects like invocations and accesses.
I though that the SmalltalkImporter was used to instantiate a famix model out of a RB infrastructure but probably there is something missing. I have in output from my parser RBMethodNodes and RBClasses (plus other stuff) but I cannot make the SmalltalkImporter running on them. Either I did not instantiate properly the RBMethods or there is something else.
Anyway the output of my parser is a list of nodes that are independent from one another, i.e. a RBMethod node is not into a RBClass node. It might be that the problem. I will investigate tomorrow.
Cheers, Fabrizio
2013/2/27 Tudor Girba tudor@tudorgirba.com Hi Fabrizio,
I think I do not understand the question.
SmalltalkImporter>>createMethod: takes a compiled method, and then uses the RB infrastructure to build the AST. In your case, you will probably have to use your parser for the method, obtain the AST and traverse that one with a visitor.
Cheers, Doru
On Feb 27, 2013, at 3:26 PM, Fabrizio Perin fabrizio.perin@gmail.com wrote:
- The visiting of method ASTs happens in the SmalltalkMethodVisitor which is triggered by SmalltalkImporter>>createMethod:. It is this visitor which is the responsible for triggering the creation of low-level objects like invocations and accesses.
Yes.
The SmalltalkImporter>>createMethod: need as parameter acompiledMethod which is evidently a MethodNode since RBMethodNode do not implement the methodClass which is invoked in createMethod:
So, am I missing something? Should I use another parser other than PPSmalltalkParser?
Cheers, Fabrizio _______________________________________________ Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
-- www.tudorgirba.com
"Some battles are better lost than fought."
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
-- www.tudorgirba.com
"We can create beautiful models in a vacuum. But, to get them effective we have to deal with the inconvenience of reality."