Am 08.03.2012 um 17:08 schrieb Sean P. DeNigris: > > Marcus Denker-4 wrote >> >> -> Compile the code to an RB AST, this then has all the interfaces needed >> to replace nodes or add nodes. >> You can then pretty print it back to source. >> > > Thanks Marcus. That's what I was trying to do. I got the AST and created the > node: > body := (AbstractSound>>#initialize) parseTree body. > body addNode: (RBParser parseExpression: 'envelopes := nil'). > > But then I couldn't figure out how to get the source back... > > "These both returned the statements without the header" > body formattedCode. > body newSource. > > "This returned the full method, but without the added node" > body source > Sean,
you extracted the body first and operate on it. So you only have the body. Try method := (AbstractSound>>#initialize) parseTree. method body addNode: (RBParser parseExpression: 'envelopes := nil'). method formattedCode Norbert