[Newcompiler] Changing just a part of a method
Mathieu Suen
mathieusuen at yahoo.fr
Fri Jul 27 13:26:14 UTC 2007
Also If you want to use it you should load the NewParser
Mth
On Jul 27, 2007, at 3:11 PM, Mathieu Suen wrote:
> So _ shouldn't be used anymore.
> But I have publish a new AST version so the _ are kept.
>
> Mth
>
>
>
> On Jul 27, 2007, at 2:51 PM, Damien Cassou wrote:
>
>> 2007/7/27, Mathieu Suen <mathieusuen at yahoo.fr>:
>>> Try to use the SqueakParser in the NewParser package.
>>> Could you give me your code to let me try.
>>> Thanks
>>
>> CompiledMethod>>linesOfCode before change:
>>
>> linesOfCode
>> "An approximate measure of lines of code.
>> Includes comments, but excludes blank lines."
>> | strm line lines |
>> lines _ 0.
>> strm _ ReadStream on: self getSource.
>> [strm atEnd] whileFalse:
>> [line _ strm upTo: Character cr.
>> line isEmpty ifFalse: [lines _ lines+1]].
>> ^lines
>>
>>
>> CompiledMethod>>linesOfCode after change using RBParser:
>>
>> linesOfCode
>> "An approximate measure of lines of code.
>> Includes comments, but excludes blank lines."
>>
>> | strm line lines |
>> lines := 0.
>> strm := self getSource readStream.
>> [strm atEnd] whileFalse:
>> [line := strm upTo: Character cr.
>> line isEmpty ifFalse: [lines := lines + 1]].
>> ^ lines
>>
>> All _ has been changed to := and I don't want this.
>>
>> The code to change the method is:
>>
>> rewriteRule := ParseTreeRewriter new.
>> rewriteRule replace: 'ReadStream on: ``@Expression' with:
>> '``@Expression readStream'.
>> tree := CompiledMethod parseTreeFor: #linesOfCode.
>> rewriteRule executeTree: tree.
>> rewriteRule tree printString.
>>
>>
>> I understand why this is like this: once you have a tree, you
>> can't go
>> back to previous formatting. But is there a workaround?
>>
>> --
>> Damien Cassou
>
>
>
>
>
>
> ______________________________________________________________________
> _____ Yahoo! Mail réinvente le mail ! Découvrez le nouveau Yahoo!
> Mail et son interface révolutionnaire.
> http://fr.mail.yahoo.com
___________________________________________________________________________
Yahoo! Mail réinvente le mail ! Découvrez le nouveau Yahoo! Mail et son interface révolutionnaire.
http://fr.mail.yahoo.com
More information about the Newcompiler
mailing list