From ad05f557b4dadb6e1ac4f3223f9c2480ce92c03b Mon Sep 17 00:00:00 2001 From: Mark <53903062+andemark@users.noreply.github.com> Date: Sun, 10 Mar 2024 15:40:29 +0000 Subject: ch-1.raku --- challenge-259/mark-anderson/raku/ch-2.raku | 29 ----------------------------- 1 file changed, 29 deletions(-) delete mode 100644 challenge-259/mark-anderson/raku/ch-2.raku diff --git a/challenge-259/mark-anderson/raku/ch-2.raku b/challenge-259/mark-anderson/raku/ch-2.raku deleted file mode 100644 index 09272b6c72..0000000000 --- a/challenge-259/mark-anderson/raku/ch-2.raku +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env raku - -say parse-line('{% id field1="value1" field2="value2" field3=42 %}'); -say parse-line('{% youtube title="Title \"quoted\" done" %}'); -say parse-line('{% youtube title="Title with escaped backslash \\" %}'); - -grammar Ch2 -{ - rule TOP { '{%' * '%}' } - token ID { \w+ } - token Key { \w+ } - token Quoted { '\"' <[\w\s]>+ '\"' } - token Unquoted { <[\w\s]>+ } - token Val { '"' [ || || '\\' ]+ '"' || \d+ } - rule KeyVal { '=' } -} - -sub parse-line($s) -{ - my %h; - my %fields; - my $m = Ch2.parse($s); - - %h = ~$m; - %fields{~.} = ~. for $m; - %h = %fields; - - return %h -} -- cgit