I will reply for each. Detailing my thought pattern. I know all the "rules and conventions" of smalltalk but i "can't play" very well.At first�(Point>>#x) parseTree explorejust looks weird.�Then things start to settle. () Paranthesis means i don't actually have to care what is in there, conclusion is whatever happens the product of () will be an object. I'm actually scared of >>, since i don't know what it does� i've seen it in old code snippets of class definitions.parseTree seems to be a method, and so does explore.Going on� it seems to be a chain of unary messages.Based on first trial conclusion it might be a statement even though the "." at the end is missing.I paste in the Workspace and right click 'Do It' on the whole thing.�A window opens with lots of information in it. I can't make sense of it since i have no idea what i just did.�I need more information on what i just did.Restart from the beginning."Point" might be a point like in a cardinal system� x is there so i might be right.�I replace x with y and 'Do It' again� another window pop open� seems to be quite similar to the first one only it has y in it instead of x.I continue the assumption and replace y with z.I get a KeyNotFound:, i don't understand this but it's similar to MessageNotUnderstood:. Since success would have meant i would get a similar window as in the x y case, getting a different window means the test failed.I can only use x and y in the statement as it is now.Point might be a class, i search for it� it seems to have instance variable names by that name. I add z to its list of instance variable names, save, replace it in the command� error. Assumption was incorrect. I look at the Point class again notice it also has accessor methods by that name, just x and y � there is no z. Agrees with the failure of earlier experiment, i might be on the right track.I choose another method of Point. Execute the command again� get the "success" window with lots of information on it.I choose another class and one of its methods, execute the command again��get the "success" windows with lots of information on it.Conclusion��I can put�any�class name and choose any method it has and the command will pop up information�about�if. I don't understand the information from the pop up.Restart from the beginning.�I search for�parseTree in the browser and there seems to be a lot of implementors of that method.I search for explore in the browser and Object seems to implement it.I 'Inspect It' on just the�(Point>>#x) part and it seems to be producing a CompiledMethod object.Based on assumption from the beginning whatever happens between () is an object this object then responds to parseTree.�I 'Inspect It' on just�(Point>>#x) parseTree and get an RBMethodNode object. Seems the parseTree gets CompiledMethod as input and outputs this different kind of object called�RBMethodNode.
Adding explore, based on the fact that explore is a method of object, seems to be just a generic printout of this entire object.The end. Time elapsed, a little over 3 min. Took longer to write the email.Pending questions:What exactly does >> do here?�I know # is followed by a string literal normally in '' but since there are no spaces just the characters will do.Pe 26.01.2013, la 13:41, St�phane Ducasse [via Smalltalk] <[hidden email]> a scris:> It's like being a two-eyed man in a dark room with no flashlight. Your eyes are there, but without the flashlight there might as well be no room.�
>�
> Without previous knowledge of how this AST is implemented my best bet is do the "architectural plan" example i gave Dale H.�
(Point>>#x) parseTree explore�
will show you the tree then you can navigate in it.�
View this message in context: Re: How do i list the execution order of statements inside a method?
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.