From 3f65d48264430428a2165f6a9f5a4e16f823f6b8 Mon Sep 17 00:00:00 2001 From: Zoffix Znet Date: Thu, 19 May 2016 19:49:39 -0400 Subject: Start new design docs --- lib/old-IRC/Grammar/Actions.pm6 | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 lib/old-IRC/Grammar/Actions.pm6 (limited to 'lib/old-IRC/Grammar/Actions.pm6') diff --git a/lib/old-IRC/Grammar/Actions.pm6 b/lib/old-IRC/Grammar/Actions.pm6 new file mode 100644 index 0000000..234e392 --- /dev/null +++ b/lib/old-IRC/Grammar/Actions.pm6 @@ -0,0 +1,26 @@ +unit class IRC::Grammar::Actions; +method TOP ($/) { $/.make: $>>.made } +method message ($/) { + my $pref = $/; + my %args = command => ~$/; + for qw/nick user host/ { + $pref{$_}.defined or next; + %args{$_} = $pref{$_}.Str; + } + %args = ~$pref if $pref.defined; + + my $p = $/; + + for ^100 { # bail out after 100 iterations; we're stuck + if ( $p.defined ) { + %args.append: ~$p; + } + if ( $p.defined ) { + %args.append: ~$p; + last; + } + $p = $p; + } + + $/.make: %args; +} -- cgit v1.1