# similar to spritesheet/gfx.py from parse.generic import tokenize from parse.generic.flatten import flatten def tokenize_lines(lines): for line in lines: if '::' in line: yield tokenize.block(line, delim='::') def parse(path): with open(path) as f: tokens = tokenize_lines(f.read().split('\n')) l = flatten(tokens, endings=['Front', 'Back', 'Pic'], base_path='gfx/') return l def _parse_all(prefix): pics = [ "gfx/pics.asm", "data/pokemon/mew.asm" ] for pic in pics: path = prefix / pic yield from parse(path) def parse_all(prefix): l = list(_parse_all(prefix)) d = dict(l) assert len(l) == len(d) return d