Right, but if you want to use ColdFusion to parse it you have to leave  
in the brackets, dots and the like. That's why people like using Ruby  
or Groovy for internal DSLs. All that stuff is optional so you can use  
a pre-written parser and still get something that doesn't look scary  
so non-programmers can read it more easily (it's also cleaner for  
programmers). Of course you *can* just go generate a parser using  
ANTLR, but unless you're experienced in doing so it's a big step up in  
terms of effort from using an internal DSL using your 3GL languages  
parser, That said openArchitectureWare is starting to do a really good  
job of generating parsers *and* Eclipse IDE plugins for textual  
exteral DSLs. Enter the abstract grammar and the constraints and it'll  
get an Eclipse plugin along with code completion, syntax highlighting  
and the works. It makes ANTLR look as hard as using Lex and Yacc.

Best Wishes,
Peter

On Feb 17, 2009, at 6:11 AM, Tom Chiverton wrote:

> On Monday 16 Feb 2009, Alan Livie wrote:
> > In 'The Thoughtworks Anthology' Martin Fowler gets pretty serious  
> with
> > method chaining building internal DSL's in Ruby and his examples  
> read very
> > well.
>
> If you are going to build a DSL, you might as well make it easy to  
> read.
> In this case I'd throw out the brackets, colons and dots.
> It's 'just' a string transform inside the DSL compiler to get it  
> back to what
> the internals 'need', but it makes it a lot clearer.
>
> Mind you, I've only built one DSL, and it's space was fairly  
> constrained.
>
> > ConfigurationBuilder.
> >
> > item(:secure_air_vent).
> >
> > item(:acid_bath).
> > uses(Resources.acid.
> > type(:hcl).
> > grade(5)).
> > uses(Resources.electricity(12)).
>
> ConfigurationBuilder
>
> item secure_air_vent
>
> item acid_bath
> uses Resources.acid
> type hcl
> grade 5
> uses Resources.electricity 12
> -- 
> Tom Chiverton
> ****************************************************
>
>
> This email is sent for and on behalf of Halliwells LLP.
>
> Halliwells LLP is a limited liability partnership registered in  
> England and Wales under registered number OC307980 whose registered  
> office address is at Halliwells LLP, 3 Hardman Square,  
> Spinningfields, Manchester, M3 3EB. A list of members is available  
> for inspection at the registered office together with a list of  
> those non members who are referred to as partners. We use the word ? 
> partner? to refer to a member of the LLP, or an employee or  
> consultant with equivalent standing and qualifications. Regulated by  
> the Solicitors Regulation Authority.
>
> CONFIDENTIALITY
>
> This email is intended only for the use of the addressee named above  
> and may be confidential or legally privileged. If you are not the  
> addressee you must not read it and must not use any information  
> contained in nor copy it nor inform any person other than Halliwells  
> LLP or the addressee of its existence or contents. If you have  
> received this email in error please delete it and notify Halliwells  
> LLP IT Department on 0870 365 2500.
>
> For more information about Halliwells LLP visit www.halliwells.com.
>
>
> >


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CFCDev" 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/cfcdev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to