# Path: awake/address.py
# BANK_SIZE = 0x4000
# class BadAddressException(Exception):
# class Address(object):
#     def __init__(self, addr):
#     def __str__(self):
# def fromVirtual(virtual):
# def fromVirtualAndBank(virtual, bank):
# def fromVirtualAndCurrent(virtual, current):
# def fromPhysical(physical):
# def fromConventional(conventional):
#     def __init__(self, address):
#     def virtual(self):
#     def bank(self):
#     def isAmbiguous(self):
#     def inBankedSpace(self):
#     def inPhysicalMem(self):
#     def physical(self):
#     def offset(self, offset):
#     def withBankSpecified(self, bank):
#     def __lt__(self, other):
#     def __eq__(self, other):
#     def __ne__(self, other):
#     def __hash__(self):
#     def __str__(self):
#     def __repr__(self):
# 
# Path: awake/regutil.py
# REGS16 = set(['BC', 'DE', 'HL', 'SP', 'AF'])
# 
# def splitRegister(name):
#     if name in ('BC', 'DE', 'HL'):
#         return set([name[0], name[1]])
#     elif name == 'AF':
#         #return set(['A', 'FZ', 'FC', 'FN', 'FH'])
#         return set(['A'])
#     elif name == 'FNZ':
#         return set(['FZ'])
#     elif name == 'FNC':
#         return set(['FC'])
#     elif name == 'FF00+C':
#         return set(['C'])
#     return set([name])


from awake import address
from awake.regutil import REGS16, splitRegister
class JumpTableAddress(AddressConstant):
    link_prefix = "/jump/"
    html_class = "jumptable-addr"

class Register(Operand):
    def __init__(self, name):
        self.name = name

    def __str__(self):
        return self.name

    def render(self, renderer):
        renderer.add(str(self), 'register')

    def optimizedWithContext(self, ctx):
        if ctx.hasValue(self.name):
            return ctx.getValue(self.name)
        return self

    def getDependencies(self):
        return splitRegister(self.name)

    def __hash__(self):
        return hash((Register, self.name))

    def __eq__(self, other):
        return isinstance(other, Register) and self.name == other.name

    @property
    def bits(self):

# Path: awake/address.py
# BANK_SIZE = 0x4000
# class BadAddressException(Exception):
# class Address(object):
#     def __init__(self, addr):
#     def __str__(self):
# def fromVirtual(virtual):
# def fromVirtualAndBank(virtual, bank):
# def fromVirtualAndCurrent(virtual, current):
# def fromPhysical(physical):
# def fromConventional(conventional):
#     def __init__(self, address):
#     def virtual(self):
#     def bank(self):
#     def isAmbiguous(self):
#     def inBankedSpace(self):
#     def inPhysicalMem(self):
#     def physical(self):
#     def offset(self, offset):
#     def withBankSpecified(self, bank):
#     def __lt__(self, other):
#     def __eq__(self, other):
#     def __ne__(self, other):
#     def __hash__(self):
#     def __str__(self):
#     def __repr__(self):
# 
# Path: awake/regutil.py
# REGS16 = set(['BC', 'DE', 'HL', 'SP', 'AF'])
# 
# def splitRegister(name):
#     if name in ('BC', 'DE', 'HL'):
#         return set([name[0], name[1]])
#     elif name == 'AF':
#         #return set(['A', 'FZ', 'FC', 'FN', 'FH'])
#         return set(['A'])
#     elif name == 'FNZ':
#         return set(['FZ'])
#     elif name == 'FNC':
#         return set(['FC'])
#     elif name == 'FF00+C':
#         return set(['C'])
#     return set([name])


# Path: awake/operand.py
from awake import address
from awake.regutil import REGS16, splitRegister

class JumpTableAddress(AddressConstant):
    link_prefix = "/jump/"
    html_class = "jumptable-addr"

class Register(Operand):
    def __init__(self, name):
        self.name = name

    def __str__(self):
        return self.name

    def render(self, renderer):
        renderer.add(str(self), 'register')

    def optimizedWithContext(self, ctx):
        if ctx.hasValue(self.name):
            return ctx.getValue(self.name)
        return self

    def getDependencies(self):
        return splitRegister(self.name)

    def __hash__(self):
        return hash((Register, self.name))

    def __eq__(self, other):
        return isinstance(other, Register) and self.name == other.name

    @property
    def bits(self):

        if self.name in REGS16: