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
-~----------~----~----~----~------~----~------~--~---