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, the terminal string comprising one or more terminal symbols; (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 compiler produces a response based upon the test string; and (d) determining whether the response matches an expected response for application of the test string.