gf256 0.3.1

A Rust library containing Galois-field types and utilities
Documentation
#!/usr/bin/env python

import sys
import math

BITS = {
    " ": 0,
    "'": 1,
    ".": 2,
    ":": 3,
}

def main(path):
    with open(path) as f:
        dots = f.read()

    linewidth = max(len(line) for line in dots.splitlines())
    linewidth = math.ceil(linewidth / 4)*4

    for line in dots.splitlines():
        print("    ", end="")
        line = line.ljust(linewidth, ' ')
        for a, b, c, d in zip(*[iter(line)]*4):
            assert a in BITS
            assert b in BITS
            assert c in BITS
            assert d in BITS
            x = (BITS[a] << 6) | (BITS[b] << 4) | (BITS[c] << 2) | (BITS[d] << 0)
            print("0x%02x, " % x, end="")
        print()

if __name__ == "__main__":
    main(*sys.argv[1:])