There is a Data folder, but only the pdf of my blog is in there. Lukas
On 4 November 2010 14:04, Stéphane Ducasse <[email protected]> wrote: > no data folder? > probably forgot the push > > RewriteRules ls > Data/ RewriteRules.tex > Lint.odt program-checking-paper.tex > Lint.tex > RewriteRules git push > Everything up-to-date > RewriteRules > > > > Stef > > On Nov 4, 2010, at 1:45 PM, Lukas Renggli wrote: > >> I don't see any french text. Just a PDF of a blog article I wrote, the >> LaTeX source of the program-checking paper, and an empty LaTeX >> template. >> >> Lukas >> >> On 4 November 2010 13:30, Stéphane Ducasse <[email protected]> wrote: >>> Normally I added some text in french :( >>> do not pay attention too much on the style >>> dump information and like that we can get material to work on >>> I think that having examples is the key point to get started. >>> >>> >>>> >>>> On 4 November 2010 10:09, Stéphane Ducasse <[email protected]> >>>> wrote: >>>>> I'm adding some other files (in french) :( >>>>> but I'm stuck with git.... >>>> >>>> git pull >>>> git add french-rewrite.tex >>>> git commit >>>> git push >>>> >>>>>> Yeah, where do I find that chapter? >>>>>> >>>>>> There is a section on the AST matching/search in my PhD as Helvetia >>>>>> builds on top of it. Not on the AST rewriting though, Helvetia uses a >>>>>> different mechanism there. Still it might be a good start. >>>>>> >>>>>> Lukas >>>>>> >>>>>> On 4 November 2010 09:49, Stéphane Ducasse <[email protected]> >>>>>> wrote: >>>>>>> lukas >>>>>>> >>>>>>> I would love to have a chapter on Rules. I have a starter that I wrote >>>>>>> long time ago for the squeak french book >>>>>>> but it would be cool if you could add to it. >>>>>>> >>>>>>> Stef >>>>>>> >>>>>>> On Nov 4, 2010, at 12:55 AM, Lukas Renggli wrote: >>>>>>> >>>>>>>>> If I try to match it like: >>>>>>>>> '`...@browser showOn: `...@target; from: `...@origin; using: [ >>>>>>>>> `...@browser `[email protected]]' >>>>>>>> >>>>>>>> The match expression >>>>>>>> >>>>>>>> �...@browser `[email protected] >>>>>>>> >>>>>>>> doesn't make sense. Statements (.) cannot be a message selector that >>>>>>>> would be expected after a receiver. Also, you cannot have a selector >>>>>>>> list (@) if you don't give also an argument list to match. So the >>>>>>>> closest valid thing is >>>>>>>> >>>>>>>> �...@browser `message >>>>>>>> >>>>>>>> which looks for unary message sends (recursive is not necessary here >>>>>>>> either, because there is nothing to recurse into), or >>>>>>>> >>>>>>>> �...@browser `...@message: `...@message >>>>>>>> >>>>>>>> which looks for arbitrary message sends and recursively into all >>>>>>>> arguments. >>>>>>>> >>>>>>>>> It seems to only get those appearances which contain a single >>>>>>>>> appearance of browser inside the block. >>>>>>>> >>>>>>>> As I wrote in the previous mail you need to do it with nested >>>>>>>> rewrites. Inside the block you match for any sequence of statements: >>>>>>>> >>>>>>>> �[email protected] >>>>>>>> >>>>>>>> And as replacement you use the `{ :context | ... } trick to perform a >>>>>>>> new rewrite somehow along the following untested lines: >>>>>>>> >>>>>>>> `{ :context | >>>>>>>> RBParseTreeRewriter new >>>>>>>> " replace whatever matched to `...@browser with the >>>>>>>> variable a " >>>>>>>> replaceTree: (context at: '`...@browser') with: (RBParser >>>>>>>> parseExpression: 'a'); >>>>>>>> " execute on the list of statements " >>>>>>>> executeTree: (context at: '`[email protected]'); >>>>>>>> " return the rewritten tree " >>>>>>>> tree } >>>>>>>> >>>>>>>> Cheers, >>>>>>>> Lukas >>>>>>>> >>>>>>>> -- >>>>>>>> Lukas Renggli >>>>>>>> www.lukas-renggli.ch >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Lukas Renggli >>>>>> www.lukas-renggli.ch >>>>>> >>>>> >>>>> >>>>> >>>> >>>> >>>> >>>> -- >>>> Lukas Renggli >>>> www.lukas-renggli.ch >>>> >>> >>> >>> >> >> >> >> -- >> Lukas Renggli >> www.lukas-renggli.ch >> > > > -- Lukas Renggli www.lukas-renggli.ch
