Hi sven

I think that I will have to hack my own, I was just surprised that we do not 
have a nice way back
from tokens back to code. (not talking about quote inside strings). 


String streamContents: [ :s |
                 #('self' 'classVariables:' ${ #A $. #B $}) 
                        do: [ :each | s print: each ]
                        separatedBy: [ s space ]].

 '''self'' ''classVariables:'' ${ #A $. #B $}’

S.




> On 20 Jan 2020, at 10:45, Sven Van Caekenberghe <[email protected]> wrote:
> 
> #foo printString.  
> '#foo'
> 
> String streamContents: [ :out | out print: #foo ].
> '#foo'
> 
> String streamContents: [ :out | out << #foo ].
> 'foo'
> 
> I would not use #storeOn: directly, I would consider the fact that 
> String>>#printOn: uses it an implementation detail, and a confusing one at 
> that.
> 
>> On 20 Jan 2020, at 03:54, Eliot Miranda <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> 
>> 
>>> On Jan 19, 2020, at 1:50 PM, Stéphane Ducasse <[email protected]> 
>>> wrote:
>>> 
>>> 
>>> The idea that is that I would like to be able to 
>>> 
>>> text -> tokens -> text
>>> 
>>> For text -> tokens 
>>> 
>>>     (RBScanner on: 'self classVariables: { #A . #B }' readStream)
>>>             contents collect: #value
>>> 
>>> 
>>> I wrote a little method that takes the result of the RBScanner and recreate 
>>> the text
>>> But I cannot get this method to work. 
>>> I’m puzzled because the symbols are eaten.
>>> 
>>> 
>>> expressionStringFrom: aLine
>>>     
>>>     "self new 
>>>             expressionStringFrom:  #('self' 'classVariables:' ${ #A $. #B 
>>> $}) 
>>>     >>> 
>>>             'self classVariables: { A . B }'
>>>     "
>>>     ^ String streamContents: [ :s |
>>>             aLine 
>>>                     do: [ :each | s << each ]
>>>                     separatedBy: [ s space ]]
>>> 
>>> I tried with print:, printOn:, but I failed. 
>>> 
>>> Any idea?
>> 
>> With Symbols one needs to use storeOn:
>> 
>>> 
>>> S. 
>>> 
>>> 
>>> 
>>> 
>>> --------------------------------------------
>>> Stéphane Ducasse
>>> http://stephane.ducasse.free.fr <http://stephane.ducasse.free.fr/> / 
>>> http://www.pharo.org <http://www.pharo.org/> 
>>> 03 59 35 87 52
>>> Assistant: Julie Jonas 
>>> FAX 03 59 57 78 50
>>> TEL 03 59 35 86 16
>>> S. Ducasse - Inria
>>> 40, avenue Halley, 
>>> Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
>>> Villeneuve d'Ascq 59650
>>> France

Reply via email to