From 3c4cb2454d629dff131ce8ff9dd7056255b28d13 Mon Sep 17 00:00:00 2001 From: Ruben Westerberg Date: Fri, 19 Jul 2019 21:55:23 +1000 Subject: Added ch2 solution for p6 First time using grammars --- challenge-017/ruben-westerberg/perl6/ch-2.p6 | 40 ++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 challenge-017/ruben-westerberg/perl6/ch-2.p6 diff --git a/challenge-017/ruben-westerberg/perl6/ch-2.p6 b/challenge-017/ruben-westerberg/perl6/ch-2.p6 new file mode 100755 index 0000000000..0d6d955f9d --- /dev/null +++ b/challenge-017/ruben-westerberg/perl6/ch-2.p6 @@ -0,0 +1,40 @@ +#!/usr/bin/env perl6 +# +grammar URI { + token TOP {\:?[\?]?[\#]?};##|}; + token scheme { :i([<[\-\.\+] + alnum>]*)}; + token path { (\/*)+}; + token authority { (\/\/)[[\:]?\@]?[\:]?}; + token user { (+)}; + token password { ( +)}; + + token host { (+)}; + token port { (+)}; + token query { [\&]*}; + token qpair { (\=)+}; + token qkey {+}; + token qval {+}; + token fragment { (+)}; + ##token query { \?+}; + ##token fragment { + }; +} + ##|()??}; + + +#say URI.parse("jdbc://user:password@localhost:3306/pwc?profile=true#h1"); +my $m=URI.parse(@*ARGS[0]); +die "Not a URI\n" unless $m; +#say $m; +given $m { + put "Scheme: {.}"; + given . { + put "User: {.}"; + put "Password: {.//""}"; + put "Host: {.}"; + put "Port: {.//""}"; + } + put "Path: {.//""}"; + put "Query: {.//""}"; + put "Fragment: {.//""}"; + +} -- cgit