In our current (proprietary) language, it's something like this: Define File 1234 Name = "My File" Parent = 5678 DataItem = "DataItem 1", Decimal, 10 bytes DataItem = "DataItem 2", Hex, 10 bytes This format allows you to do simple things fairly easily, but it might be impossible to do more complicated things. Currently, the format is almost entirely declarative. You can't have any logic (e.g. determining the second data item based on the contents of the first), and there's only a very primitive and limited form of variables. Doing some new means extending the language definition. I'd also like (if possible) to allow declaring files hierarchically, so that I can define File 1234 in the scope of 5678. As I said, I'm also just looking for general articles/mailings etc. on using Ruby as a domain-specific language - examples, showing what's possible/allowed etc. Thanks, Calum