This is a wonderful article on the use of an “M” grammar to parse a set of rules specific to credit card validation and then parse those rules at run-time to drive a framework for doing the validation itself. The article does a marvelous job of motivating the use of a custom DSL for construction and validation by non-engineers and then lays out the entire grammar and C# loader code. Recommended.