EBNF: aoc19-p1 [=[ 130 = 92 41 | 110 106 129 = 130 92 | 108 110 128 = 92 24 | 110 9 127 = 61 110 | 9 92 126 = 4 110 | 39 92 125 = 121 110 | 45 92 124 = 83 110 | 100 92 123 = 110 64 | 92 68 122 = 110 92 | 92 110 121 = 75 92 | 24 110 120 = 48 92 | 48 110 119 = 103 110 | 88 92 118 = 110 61 | 92 75 117 = 110 22 | 92 59 116 = 110 32 | 92 67 115 = 110 110 | 92 110 114 = 47 110 | 63 92 113 = 92 81 | 110 54 112 = 92 30 | 110 122 111 = 110 74 | 92 46 110 = "a" 109 = 26 92 | 81 110 108 = 37 92 | 35 110 107 = 110 30 | 92 115 106 = 110 7 | 92 18 105 = 75 92 | 61 110 104 = 92 81 | 110 30 103 = 82 82 102 = 101 92 | 49 110 101 = 45 92 | 80 110 100 = 97 92 | 68 110 99 = 110 122 | 92 54 98 = 103 110 | 3 92 97 = 92 48 | 110 122 96 = 75 92 | 9 110 95 = 92 107 | 110 86 94 = 92 78 | 110 28 93 = 54 92 | 26 110 92 = "b" 91 = 92 54 | 110 3 90 = 110 122 | 92 9 89 = 115 110 | 26 92 88 = 110 92 87 = 36 110 | 94 92 86 = 54 110 | 9 92 85 = 38 92 | 102 110 84 = 110 104 | 92 78 83 = 110 33 | 92 56 82 = 110 | 92 81 = 92 110 80 = 61 110 | 81 92 79 = 110 55 | 92 77 78 = 92 115 | 110 54 77 = 103 92 | 81 110 76 = 3 92 75 = 92 110 | 92 92 74 = 120 92 | 78 110 73 = 110 116 | 92 69 72 = 17 110 | 109 92 71 = 115 110 | 61 92 70 = 92 30 | 110 9 69 = 5 110 | 43 92 68 = 92 30 | 110 81 67 = 93 92 | 112 110 66 = 92 98 | 110 21 65 = 92 103 | 110 115 64 = 92 115 | 110 24 63 = 92 6 | 110 23 62 = 110 112 | 92 68 61 = 92 110 | 110 82 60 = 122 92 | 54 110 59 = 110 70 | 92 105 58 = 28 92 | 16 110 57 = 92 48 | 110 81 56 = 81 92 | 30 110 55 = 75 110 | 26 92 54 = 92 92 | 110 92 53 = 87 92 | 44 110 52 = 92 81 | 110 103 51 = 110 117 | 92 111 50 = 88 110 | 115 92 49 = 97 110 | 91 92 48 = 92 92 47 = 110 15 | 92 124 46 = 76 92 | 89 110 45 = 61 82 44 = 40 92 | 66 110 43 = 92 113 | 110 56 42 = 114 110 | 19 92 41 = 92 128 | 110 118 40 = 110 96 | 92 99 39 = 30 110 | 115 92 38 = 84 110 | 12 92 37 = 92 109 | 110 25 36 = 92 90 | 110 127 35 = 104 92 | 57 110 34 = 29 110 | 79 92 33 = 110 61 | 92 103 32 = 104 92 | 91 110 31 = 14 92 | 10 110 30 = 92 92 | 110 110 29 = 110 65 | 92 60 28 = 122 92 27 = 125 92 | 2 110 26 = 92 82 | 110 110 25 = 9 110 | 61 92 24 = 110 92 | 110 110 23 = 110 95 | 92 72 22 = 119 92 | 50 110 21 = 30 82 20 = 110 115 | 92 3 19 = 110 73 | 92 1 18 = 26 92 | 48 110 17 = 110 115 16 = 115 92 | 103 110 15 = 123 110 | 58 92 14 = 85 110 | 51 92 13 = 75 92 12 = 13 92 | 52 110 11 = 42 31 10 = 129 110 | 53 92 9 = 82 92 | 92 110 8 = 42 7 = 61 92 | 48 110 6 = 92 62 | 110 126 5 = 110 109 | 92 105 4 = 48 110 | 30 92 3 = 110 110 2 = 71 92 | 20 110 1 = 110 27 | 92 34 0 = 8 11 !(.) ]=] "/home/harperjon/Téléchargements/input19" ascii file-lines { "" } split second [ [ aoc19-p1 ] [ 2drop f ] recover ] map sift length . ! for p2 just replace 8 and 11 with ! 8: 42 &(11) | 42 8 ! 11: 42 31 | 42 11 31 ! this works because the toplevel rule is 0: 8 11 EBNF: aoc19-p2 [=[ 130 = 92 41 | 110 106 129 = 130 92 | 108 110 128 = 92 24 | 110 9 127 = 61 110 | 9 92 126 = 4 110 | 39 92 125 = 121 110 | 45 92 124 = 83 110 | 100 92 123 = 110 64 | 92 68 122 = 110 92 | 92 110 121 = 75 92 | 24 110 120 = 48 92 | 48 110 119 = 103 110 | 88 92 118 = 110 61 | 92 75 117 = 110 22 | 92 59 116 = 110 32 | 92 67 115 = 110 110 | 92 110 114 = 47 110 | 63 92 113 = 92 81 | 110 54 112 = 92 30 | 110 122 111 = 110 74 | 92 46 110 = "a" 109 = 26 92 | 81 110 108 = 37 92 | 35 110 107 = 110 30 | 92 115 106 = 110 7 | 92 18 105 = 75 92 | 61 110 104 = 92 81 | 110 30 103 = 82 82 102 = 101 92 | 49 110 101 = 45 92 | 80 110 100 = 97 92 | 68 110 99 = 110 122 | 92 54 98 = 103 110 | 3 92 97 = 92 48 | 110 122 96 = 75 92 | 9 110 95 = 92 107 | 110 86 94 = 92 78 | 110 28 93 = 54 92 | 26 110 92 = "b" 91 = 92 54 | 110 3 90 = 110 122 | 92 9 89 = 115 110 | 26 92 88 = 110 92 87 = 36 110 | 94 92 86 = 54 110 | 9 92 85 = 38 92 | 102 110 84 = 110 104 | 92 78 83 = 110 33 | 92 56 82 = 110 | 92 81 = 92 110 80 = 61 110 | 81 92 79 = 110 55 | 92 77 78 = 92 115 | 110 54 77 = 103 92 | 81 110 76 = 3 92 75 = 92 110 | 92 92 74 = 120 92 | 78 110 73 = 110 116 | 92 69 72 = 17 110 | 109 92 71 = 115 110 | 61 92 70 = 92 30 | 110 9 69 = 5 110 | 43 92 68 = 92 30 | 110 81 67 = 93 92 | 112 110 66 = 92 98 | 110 21 65 = 92 103 | 110 115 64 = 92 115 | 110 24 63 = 92 6 | 110 23 62 = 110 112 | 92 68 61 = 92 110 | 110 82 60 = 122 92 | 54 110 59 = 110 70 | 92 105 58 = 28 92 | 16 110 57 = 92 48 | 110 81 56 = 81 92 | 30 110 55 = 75 110 | 26 92 54 = 92 92 | 110 92 53 = 87 92 | 44 110 52 = 92 81 | 110 103 51 = 110 117 | 92 111 50 = 88 110 | 115 92 49 = 97 110 | 91 92 48 = 92 92 47 = 110 15 | 92 124 46 = 76 92 | 89 110 45 = 61 82 44 = 40 92 | 66 110 43 = 92 113 | 110 56 42 = 114 110 | 19 92 41 = 92 128 | 110 118 40 = 110 96 | 92 99 39 = 30 110 | 115 92 38 = 84 110 | 12 92 37 = 92 109 | 110 25 36 = 92 90 | 110 127 35 = 104 92 | 57 110 34 = 29 110 | 79 92 33 = 110 61 | 92 103 32 = 104 92 | 91 110 31 = 14 92 | 10 110 30 = 92 92 | 110 110 29 = 110 65 | 92 60 28 = 122 92 27 = 125 92 | 2 110 26 = 92 82 | 110 110 25 = 9 110 | 61 92 24 = 110 92 | 110 110 23 = 110 95 | 92 72 22 = 119 92 | 50 110 21 = 30 82 20 = 110 115 | 92 3 19 = 110 73 | 92 1 18 = 26 92 | 48 110 17 = 110 115 16 = 115 92 | 103 110 15 = 123 110 | 58 92 14 = 85 110 | 51 92 13 = 75 92 12 = 13 92 | 52 110 11 = 42 31 | 42 11 31 10 = 129 110 | 53 92 9 = 82 92 | 92 110 8 = 42 &(11) | 42 8 7 = 61 92 | 48 110 6 = 92 62 | 110 126 5 = 110 109 | 92 105 4 = 48 110 | 30 92 3 = 110 110 2 = 71 92 | 20 110 1 = 110 27 | 92 34 0 = 8 11 !(.) ]=] "/home/harperjon/Téléchargements/input19" ascii file-lines { "" } split second [ [ aoc19-p2 ] [ 2drop f ] recover ] map sift length .