A Debugger for the Interpreter Design Pattern

Using Interpreter and Visitor design patterns is a widely adopted approach to implement programming language interpreters. The popularity of these patterns stems from their expressive and simple design. However, no general approach to conceive a debugger has been commonly adopted.