advent-of-code/2020/src/day_loader.nim

21 lines
653 B
Nim
Raw Normal View History

2020-12-02 21:33:18 -06:00
import input_requestor, os, macros, strformat, tables
macro loadDays(): untyped =
var solver_str = "var solvers = {\n"
result = newStmtList()
2020-12-03 09:54:58 -06:00
for day in 1..3:
2020-12-02 21:33:18 -06:00
let module = fmt"day{day}"
if fileExists joinPath("src/", &"{module}.nim"):
result.add parseStmt fmt"from {module} import nil"
solver_str = solver_str & &"""
2020-12-03 09:54:58 -06:00
{day}: proc(): tuple[part1: int, part2: int] =
echo "Day {day}"
(
{module}.part1(getInputFileStreamForDay({day})),
{module}.part2(getInputFileStreamForDay({day}))
),
2020-12-02 21:33:18 -06:00
"""
result.add parseStmt (solver_str & "\n}.newTable()\nexport solvers")
loadDays()