1. A method for testing operation of a context-free language compiler, the method comprising acts of: (a) generating a terminal string based, at least in part, on a grammar description comprising a set of production rules, each production rule comprising a replacement string for a non-terminal symbol, the terminal string comprising one or more instances of at least one terminal symbol; (b) generating a test string by replacing, with a value, one or more instances of a terminal symbol in the terminal string; (c) applying the test string to the compiler so that the context-free language compiler produces a response based upon the test string; (d) determining whether the response matches an expected response for application of the test string; (e) generating a set of terminal strings by repeating act (a), the set of terminal strings being generated by applying each production rule in the set of production rules at least once; and (f) repeating acts (b), (c), (d) for each terminal string in the set of terminal strings.