I've been working for quite a while with trying to rewrite the grammar for the D bundle to be more accurate to the official grammar. The grammar for D is quite complex, that in the combination with the syntax for grammars in TextMate doesn't allow any good ways to reuse or compose rules making it very difficult to describe a grammar. I know it's possible to reuse rules with the repository, but that seems to be mostly useful when matching with "begin" and "end".
For example, this is the grammar for a function declaration from the official D grammar:
FuncDeclaration: StorageClasses(opt) BasicType FuncDeclarator FunctionBody AutoFuncDeclaration
AutoFuncDeclaration: StorageClasses Identifier FuncDeclaratorSuffix FunctionBody
FuncDeclarator: BasicType2(opt) Identifier FuncDeclaratorSuffix
FuncDeclaratorSuffix: Parameters MemberFunctionAttributes(opt) TemplateParameters Parameters MemberFunctionAttributes(opt) Constraint(opt)
Each of these parts/rules of the grammar consists of several other rules, many levels deep.
It would be really nice if the TextMate grammar syntax allowed, somehow, to define rules, or parts of a rule, which the other rules can be composed of, similar to above.
Or is there a way to already do something similar with the current syntax?