From a0fcb600572ea0da9dee1b5b9e7a24ce674ebe7e Mon Sep 17 00:00:00 2001 From: Matias Linares Date: Sat, 5 Dec 2020 10:55:56 -0300 Subject: Add 2018 and 2017 --- 2018/day4.p6 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 2018/day4.p6 (limited to '2018/day4.p6') diff --git a/2018/day4.p6 b/2018/day4.p6 new file mode 100644 index 0000000..def1084 --- /dev/null +++ b/2018/day4.p6 @@ -0,0 +1,50 @@ +#`[ +[1518-11-01 00:00] Guard #10 begins shift +[1518-11-01 00:05] falls asleep +[1518-11-01 00:25] wakes up +[1518-11-01 00:30] falls asleep +[1518-11-01 00:55] wakes up +[1518-11-01 23:58] Guard #99 begins shift +[1518-11-02 00:40] falls asleep +[1518-11-02 00:50] wakes up +[1518-11-03 00:05] Guard #10 begins shift +[1518-11-03 00:24] falls asleep +[1518-11-03 00:29] wakes up +[1518-11-04 00:02] Guard #99 begins shift +[1518-11-04 00:36] falls asleep +[1518-11-04 00:46] wakes up +[1518-11-05 00:03] Guard #99 begins shift +[1518-11-05 00:45] falls asleep +[1518-11-05 00:55] wakes up +] + +use Grammar::Tracer; + +grammar GuardLog { + token TOP { [ ]+ } + rule guard-log { + 'Guard #' begins shift + [ ]+ + } + rule log { } + token shift-start { } + token id { \d+ } + token date { '[' \d ** 4 '-' \d ** 2 '-' \d ** 2 ' ' ']'} + token hour { \d ** 2 ':' \d ** 2 } + + rule action { + | 'falls asleep' + | 'wakes up' + } +} + +my $log = GuardLog.parse(q:to/EOF/); +[1518-11-01 00:00] Guard #10 begins shift +[1518-11-01 00:05] falls asleep +[1518-11-01 00:25] wakes up +[1518-11-01 00:30] falls asleep +[1518-11-01 00:55] wakes up +EOF + +say $log[0].elems; + -- cgit v1.2.3-70-g09d2