Excellent, I think I am nearly there. Thanks
2009/1/3 Ayende Rahien <[email protected]> > You need a transformer, and then you can do something like: > ReplaceCurrentNode( new MethodInvocationExpression( new > ReferenceExpression("CopyTo"), binaryExpression.Left, > binarExpression.Right)); > > > On Sat, Jan 3, 2009 at 3:30 PM, Paul Cowan <[email protected]> wrote: > >> Hi, >> >> I have created an AbstractVisitorCompilerStep and have the following >> OnBlockExpression: >> >> public override void OnBlockExpression(BlockExpression node) >> { >> foreach (Statement statement in node.Body.Statements) >> { >> MethodInvocationExpression method = >> (MethodInvocationExpression)((ExpressionStatement) statement).Expression; >> >> foreach(Expression arg in method.Arguments) >> { >> if ((!(arg is BinaryExpression)) && >> ((BinaryExpression)arg).Operator != BinaryOperatorType.ShiftRight) >> continue; >> >> var binaryExpression = (BinaryExpression) arg; >> } >> } >> >> base.OnBlockExpression(node); >> } >> >> Do I just create a new BlockExpression and pass it to the base >> OnBlockExpression? >> >> >> Cheers >> >> Paul >> >> 2009/1/3 Ayende Rahien <[email protected]> >> >>> You need to process the >> early in the compiler life cycle.Ideally, you >>> would have a visitor at step 2 or 3 that would look for the right shift >>> operator and translate that to copy_to("log4net", "bin") method call >>> >>> >>> On Sat, Jan 3, 2009 at 1:37 PM, Paul Cowan <[email protected]> wrote: >>> >>>> Hi, >>>> >>>> I have come up with the following syntax which I quite like: >>>> >>>> dependencies: >>>> depend "log4net" >> "bin" >>>> >>>> But I get the following runtime exception: >>>> >>>> >>>> Operator '>>' cannot be used with a left hand side of type 'string' and a >>>> right hand side of type 'string'. >>>> >>>> I have tried adding the following compiler state which I thought might >>>> fix it but alas it does not: >>>> >>>> pipeline.Insert(1, new >>>> ImplicitBaseClassCompilerStep(typeof(BaseConfigReader), "Prepare", >>>> "Horn.Core.dsl")); >>>> pipeline.InsertBefore(typeof(ProcessMethodBodiesWithDuckTyping), new >>>> UnderscorNamingConventionsToPascalCaseCompilerStep()); >>>> pipeline.Insert(2, new UseSymbolsStep()); >>>> >>>> Can anyone see what else, I need to do? >>>> >>>> Cheers >>>> >>>> Paul >>>> >>>> >>>> 2009/1/3 Ayende Rahien <[email protected]> >>>> >>>>> No, you can just use >> with the source that you have, because this is >>>>> a builtin operator >>>>> For words, you would need the patch. >>>>> You can see an example of using >> in Rhino ETL >>>>> >>>>> >>>>> On Sat, Jan 3, 2009 at 11:44 AM, Paul Cowan <[email protected]>wrote: >>>>> >>>>>> Great! >>>>>> >>>>>> Do I need to download the patch? >>>>>> >>>>>> Is there an example of using ">>" anywhere? >>>>>> >>>>>> Perhaps in the Rhino source? >>>>>> >>>>>> 2009/1/3 Ayende Rahien <[email protected]> >>>>>> >>>>>> That would require macro operators, which are currently not part of >>>>>>> boo. >>>>>>> There is a patch for this that I made a while ago, though. >>>>>>> >>>>>>> What you can do is: >>>>>>> >>>>>>> depend: >>>>>>> log4net >> "lib" >>>>>>> >>>>>>> >>>>>>> On Sat, Jan 3, 2009 at 11:28 AM, dagda1 <[email protected]> wrote: >>>>>>> >>>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> I am extending an existing DSL for the open source project I am >>>>>>>> working on code named horn ( >>>>>>>> http://the-software-simpleton.blogspot.com/ >>>>>>>> 2008/12/horn-package-management-project.html<http://the-software-simpleton.blogspot.com/2008/12/horn-package-management-project.html> >>>>>>>> ). >>>>>>>> >>>>>>>> Anyway I am trying to define dependencies as part of the existing >>>>>>>> boo >>>>>>>> DSL and I want the following syntax to tell me which dependency to >>>>>>>> include and where it should be copied too when it has been compiled. >>>>>>>> >>>>>>>> I am trying to get the following syntax but I do not believe this is >>>>>>>> possible: >>>>>>>> >>>>>>>> depend: >>>>>>>> Log4net copy_to "lib" >>>>>>>> >>>>>>>> I know the following is possible: >>>>>>>> >>>>>>>> depend: >>>>>>>> Include log4net, "lib" >>>>>>>> >>>>>>>> I really do not like the second syntax and can anyone help me getter >>>>>>>> a >>>>>>>> more descriptive syntax? >>>>>>>> >>>>>>>> Cheers >>>>>>>> >>>>>>>> Paul >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>> >>>> >>>> >>> >>> >>> >> >> >> > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Rhino Tools Dev" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rhino-tools-dev?hl=en -~----------~----~----~----~------~----~------~--~---
