>> You need to create a meta method that accepts a params of  
>> ReferenceExpression.this will allow you to skip the strings.

I can get this working for one task expression

Like this for the DSL:

install "horn":
        description "This is a description of horn"
        svn "https://svnserver/trunk";
        #buildfile default.build
        tasks one

And this for the meta method:

[Meta]
public static Expression tasks(ReferenceExpression expression)
{
    var condition = new BlockExpression();

    var taskExpression = new StringLiteralExpression(expression.Name);

    condition.Body.Add(new ReturnStatement(taskExpression));

    return new MethodInvocationExpression(
        new ReferenceExpression("SetBuildTargets"),
        condition
    );
}


I cannot work out how to handle an array of ReferenceExpressions as I
can only return 1 expression.

Do I need to use a ListExpression or something?

By the way the lack of documentation for this kind of thing is
frightenning.  Without Rhino.DSL I would have been lost.

Cheers

Paul




On 6 Nov, 16:31, "Ayende Rahien" <[EMAIL PROTECTED]> wrote:
> LOL
>
>
>
> On Thu, Nov 6, 2008 at 6:06 PM, Paul Cowan <[EMAIL PROTECTED]> wrote:
> > Excellent,
>
> > I'll resist the urge to say that you should write a BOOk about this, I'm
> > guessing you may have heard it before!!!
>
> > 2008/11/6 Ayende Rahien <[EMAIL PROTECTED]>
>
> > You need to create a meta method that accepts a params of
> >> ReferenceExpression.this will allow you to skip the strings.
> >> The meta method will be responsible only for translating the call from RE
> >> to strings, and generating a new method call to the real Tasks method
>
> >> On Thu, Nov 6, 2008 at 7:25 AM, dagda1 <[EMAIL PROTECTED]> wrote:
>
> >>> I have the following dsl with the help of rhino DSL
>
> >>> Install "component":
> >>>    Description "blah"
> >>>    Svn "https://server.com";
> >>>    Tasks "one", "two", "three"
>
> >>> I am unhappy with it because I think I am over using strings.
>
> >>> Can anyone suggest a better way?
>
> >>> Also can anyone tell me how to read in the multiple values for the
> >>> tasks
> >>> Section on the last line?
>
> >>> Cheers- Hide quoted text -
>
> - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to