Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Tree: d173558582
Fetching contributors…

Cannot retrieve contributors at this time

34 lines (22 sloc) 1.099 kB

Grammar::Debugger

This module provides a simple debugger for grammars. Just use it:

use Grammar::Debugger;

And any grammar in the lexical scope of the use satement will automatically have debugging enabled. The debugger will break execution when you first enter the grammar, and provide a prompt. Type "h" for a list of commands.

If you are debugging a grammar and want to set up breakpoints in code rather than entering them manually at the debug prompt, you can apply the breakpoint trait to any rule:

token name is breakpoint { \w+ [\h+ \w+]* }

If you want to conditionally break, you can also do something like:

token name will break { $^m eq 'Russia' } { \w+ [\h+ \w+]* }

Which will only break after the name rule has matched "Russia".

Grammar::Tracer

This gives similar output to Grammar::Debugger, but just runs through the whole grammar without stopping until it is successful or fails. Once again, after a use:

use Grammar::Tracer;

It will apply to any grammars in the lexical scope of the use statement.

Bugs? Ideas?

Please file them in GitHub issues.

Jump to Line
Something went wrong with that request. Please try again.