day 6 fix bug
[aoc_eblake.git] / 2022 / day10.m4
blob6217ad208ae50920e9c2d68dbdc4602da9beac64
1 divert(-1)dnl -*- m4 -*-
2 # Usage: m4 [-Dfile=day10.input] day10.m4
4 include(`common.m4')ifelse(common(10), `ok', `',
5 `errprint(`Missing common initialization
6 ')m4exit(1)')
8 # Map 'addx N' to 'x(N)', 'noop' to 'n()'.
9 define(`clk', 1)define(`accum', 1)define(`part1', 0)
10 define(`abs', `translit(eval($1), -)')
11 define(`x', `n()n()define(`accum', eval(accum+$1))')
12 define(`out', `define(`o$1', defn(`o$1')`$2')')
13 define(`_n', `ifelse(eval($1%40), 20, `define(`part1', eval(part1 +
14   $1*$2))')out(eval(($1-1)%40/5), ifelse(eval(abs($2 - ($1-1)%40) < 2), 1,
15   ``X'', `` ''))define(`clk', incr($1))')
16 define(`n', `_n(clk, accum)')
17 translit(include(defn(`file')), nl`p ado', `)((')
19 # Now run OCR on the output
20 include(`ocr.m4')
21 define(`part2', forloop(0, 7, `ocr(defn(`o'', `))'))
23 divert`'part1
24 part2