use lib $*PROGRAM.parent.parent; use Lib; grammar Solution does AOC { method aocparse(::?CLASS:U: $content) { ($content ~~ m:g/ /)>>>>.made } proto token instr {*} token instr:i { 'don\'t()' { make False }} token instr:i { 'do()' { make True }} token instr:i { 'mul(' ',' ')' { make $/>>.made }} token num { \d ** 1..3 { make val($/.Str) }} method part1(::?CLASS:U: $v) { my @x = $v.grep({ .isa(List) }); [+] (@x>>[0] <<*>> @x>>[1]) } method part2(::?CLASS:U: $v) { my @x = $v.grep({ state $do = True; $do = $_ if .isa(Bool); $do and .isa(List) }); [+] (@x>>[0] <<*>> @x>>[1]) } } Solution.main()