Le 25/07/2014 21:42, kilon alios a écrit :
ok we are getting somewhere, the problem is that if I do
(SomeClass compiledMethodAt: #nameOfMethod it will look only in the
instance side for method, how I look also for class methods ? Also
how I can return source of class ? to be specific I need the names of
instance variables, class variables and class instance variables .
For the class method:
SomeClass class compiledMethodAt: #nameOfClassMethod
For the instance variable, etc... SomeClass definition will give you
that. But it's a bit tricky to parse; for example, if you want a
reification (instance variable name is recognized as instance variable
name in the ast), I have some code which does: parse, rewrite and
reparse on a class definition (for the smart suggestion thing).
Markus that beautiful nodesDo outputs the full syntax tree yeap
definetly what I need to do what I want.
Does the ast method applies also to classes or only compiled methods ?
Only source code. A class definition is not entirely code (see above).
On Fri, Jul 25, 2014 at 9:59 PM, Marcus Denker <marcus.den...@inria.fr
<mailto:marcus.den...@inria.fr>> wrote:
as example how to query the AST see the method #accessesSlot:
accessesSlot: aSlot
self ast nodesDo: [ :node |
node isVariable and: [
node isInstance and: [
(node binding slot == aSlot)
ifTrue: [^true]]]].
^false
Thanks Markus, this is a nice example.
Thierry