1. At a computer system including a processor and system memory, a computer-implemented method for providing debugging functionality for debugging a programming language within an interactive development environment, the method comprising: an act of displaying an interactive development environment including a programming language grammar input receiving area that allows a user to view and interact with grammar inputs defining a particular programming language, a programming language input receiving area that allows the user to view and interact with programming language inputs that use the particular programming language as defined by the grammar inputs, and a parse output area that allows the user to view the current state of a parser, wherein the grammar input receiving area, the language input receiving area, and the parse output area are each displayed simultaneously; an act of receiving a step input from the user indicating that the interactive development environment is to begin stepping through each language input to determine whether the language inputs have created an error relative to the grammar that defines acceptable language inputs; and an act of presenting the resulting output for each language input, such that as the user provides subsequent step inputs, the interactive development environment successively steps through each language input and simultaneously presents, at each step: an indication within the language input receiving area of a present language input that is being parsed by the parser, an indication within the grammar input receiving area of at least one grammar rule that is being applied to the present language input, the indication visually distinguishing the at least one grammar rule that is being applied to the present language input from other grammar inputs, and corresponding output in the parse output area.