[Pharo-project] Decompiling method body returns as block?

Lukas Renggli renggli at gmail.com
Tue Oct 19 16:45:00 EDT 2010


The old compiler has a strange AST representation. It represents
method bodies as blocks.

Probably the easiest is to parse the decompiled code with the
refactoring engine and extract the body there:

   (RBParser parseMethod: aCompiledMethod decompileWithTemps) body

Lukas

On 19 October 2010 22:37, Hernán Morales Durand
<hernan.morales at gmail.com> wrote:
> Hi list,
> I'm using Pharo1.1rc2 #11400 and I want to extract the body part (the
> String without the selector) of a CompiledMethod, but I'm getting a
> BlockNode after sending #body and a MNU afterwards. This is what I do
>
> aCompiledMethod decompileWithTemps ---> a BytecodeAgnosticMethodNode
> which is displayed like:
>
> 'renderContentOn: aRenderer
>        aRenderer form id: ''horizontalForm'';
>                with: [aRenderer
>                                fieldSet: [ ... blablabla ]]'
>
> and is ok. Then
>
> aCompiledMethod decompileWithTemps body ---> a BlockNode displayed as:
>
> {[:aRenderer |
> aRenderer form id: 'horizontalForm';
>                with: [aRenderer
>                                fieldSet: [... blablabla]]]}
>
> I've expected the code string (sending #decompileString) without
> "[:aRenderer |" part (used to work that way).
> The thing is if I send #code to the BlockNode I get a
> "MessageNotUnderstood: CascadeNode>>code".
> I'd appreciate any hint to solve this.
> Cheers,
>
>
> --
> Hernán Morales
> Information Technology Manager,
> Institute of Veterinary Genetics.
> National Scientific and Technical Research Council (CONICET).
> La Plata (1900), Buenos Aires, Argentina.
> Telephone: +54 (0221) 421-1799.
> Internal: 422
> Fax: 425-7980 or 421-1799.
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project at lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project



-- 
Lukas Renggli
www.lukas-renggli.ch




More information about the Pharo-dev mailing list