def mips_to_bin(mips: FileInput) -> Generator[str, None, None]: address: int = 0 yield ".text" for line in mips: line = line.strip() token = decode_line(line) meta = META[token.coding] instr = meta(token.instruction, *token.operands) yield '\t'.join(["%0.8X" % address, instr.encode(), line]) address += 4
def default_plan(start, goal, generator, search=False, meta=None, debug=False): search = default_search(search, debug) if meta is not None: meta = default_meta(meta) return meta(start, goal, generator, search) return search(start, goal, generator)
def default_meta(meta=incremental_goal_addition): # incremental_goal_addition if meta == incremental_goal_addition: return lambda start, goal, generator, search: meta( start, goal, lambda s, g: search(s, g, generator)) raise ValueError('Invalid meta: ' + str(meta))
def default_meta(meta=incremental_goal_addition): # incremental_goal_addition if meta == incremental_goal_addition: return lambda start, goal, generator, search: meta(start, goal, lambda s, g: search(s, g, generator)) raise ValueError('Invalid meta: ' + str(meta))