Beispiel #1
0
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
Beispiel #2
0
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)
Beispiel #3
0
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))
Beispiel #4
0
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)
Beispiel #5
0
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))