diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-03-10 15:43:46 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-10 15:43:46 +0000 |
| commit | eb5bf748cf07c8bb20e1e41dfcce3478b9c54dde (patch) | |
| tree | f4f5088da0b9a42dd4072a37bb913a8523e16274 | |
| parent | 24cdda1f9a40a31065dfd51a7a786a7df7a2534e (diff) | |
| parent | ad05f557b4dadb6e1ac4f3223f9c2480ce92c03b (diff) | |
| download | perlweeklychallenge-club-eb5bf748cf07c8bb20e1e41dfcce3478b9c54dde.tar.gz perlweeklychallenge-club-eb5bf748cf07c8bb20e1e41dfcce3478b9c54dde.tar.bz2 perlweeklychallenge-club-eb5bf748cf07c8bb20e1e41dfcce3478b9c54dde.zip | |
Merge pull request #9716 from andemark/challenge-259
ch-1.raku
| -rw-r--r-- | challenge-259/mark-anderson/raku/ch-2.raku | 29 |
1 files changed, 0 insertions, 29 deletions
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 { '{%' <ID> <KeyVal>* '%}' } - token ID { \w+ } - token Key { \w+ } - token Quoted { '\"' <[\w\s]>+ '\"' } - token Unquoted { <[\w\s]>+ } - token Val { '"' [<Quoted> || <Unquoted> || '\\' ]+ '"' || \d+ } - rule KeyVal { <Key> '=' <Val> } -} - -sub parse-line($s) -{ - my %h; - my %fields; - my $m = Ch2.parse($s); - - %h<name> = ~$m<ID>; - %fields{~.<Key>} = ~.<Val> for $m<KeyVal>; - %h<fields> = %fields; - - return %h -} |
