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 >
