#!/usr/bin/env python3 import sys with open(sys.argv[1], 'r') as f: lines = [line.rstrip('\n') for line in f] colours = {} colour_lines = True data = [] for i, line in enumerate(lines): linenum = i + 1 if colour_lines and line == '----------': colour_lines = False continue if colour_lines: char = line[0] colour = line[1:] colours[char] = colour elif len(line) != 10: print(f'{sys.argv[0]}: {sys.argv[1]}: line {linenum} is {len(line)} wide, expected 10', file=sys.stderr) sys.exit(1) else: data.append(line) if len(data) != 10: print(f'{sys.argv[0]}: {sys.argv[1]}: {len(data)} lines of data, expected 10', file=sys.stderr) name = sys.argv[1].rsplit(".", 1)[0] if len(sys.argv) == 3 and sys.argv[2] == 'reversed': data = [''.join(reversed(line)) for line in data] name = name + '_reversed' print(f'enum palette {name}[] = {{') for line in data: print('\t' + ', '.join(colours[char] for char in line) + ',') print('};')