def assemble_command(parser: parse.Parser, table: symbol.SymbolTable) -> str: """convert the current command into a binary string""" if parser.command_type() == parse.CmdType.A: symbol = parser.symbol() num = resolve_symbol(symbol, table) return "{:016b}".format(num) elif parser.command_type() == parse.CmdType.C: #C command op = "1" dest_sym = parser.dest() dest = code.dest(dest_sym) comp_sym = parser.comp() comp = code.comp(comp_sym) jump_sym = parser.jump() jump = code.jump(jump_sym) return "111{comp}{dest}{jump}".format(dest=dest, comp=comp, jump=jump) else: raise RuntimeError("Cannot assemble pseudo-command")