Skip to content

Instantly share code, notes, and snippets.

@colomon
Created January 7, 2011 14:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save colomon/769504 to your computer and use it in GitHub Desktop.
Save colomon/769504 to your computer and use it in GitHub Desktop.
use MONKEY_TYPING;
grammar Color {
regex blue { :i "blue" }
regex green { :i "green" }
regex TOP { <blue> | <green> }
}
augment class Match {
method dump ($d = 0) {
my $s = ' ' x $d;
my @caps = self.caps;
return "=> $(self)\n" unless @caps;
return (@caps[0].key//'?') ~ " " ~ @caps[0].value.dump($d) if @caps == 1;
return "\n" ~ @caps.map({
"$s " ~ ($_.key||'?') ~ " " ~ $_.value.dump($d+1);
}).join;
}
}
my $match = Color.parse("Blue skies");
say $match.perl;
say $match.dump;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment