"nng": lambda x: XP.XNonNegative(*x),
                      "nz": lambda x: XP.XNotZero(*x),
                      "null": lambda x: XP.XNull(*x),
                      "nt": lambda x: XP.XNullTerminated(*x),
                      "ofs": lambda x: XP.XOutputFormatString(*x),
                      "pr": lambda x: XP.XPreservesMemory(*x),
                      "pv": lambda x: XP.XPreservesValue(*x),
                      "prm": lambda x: XP.XPreservesAllMemory(*x),
                      "prmx": lambda x: XP.XPreservesAllMemoryX(*x),
                      "prn": lambda x: XP.XPreservesNullTermination(*x),
                      "prv": lambda x: XP.XPreservesValidity(*x),
                      "rb": lambda x: XP.XRevBuffer(*x),
                      "rep": lambda x: XP.XRepositioned(*x),
                      "sa": lambda x: XP.XStackAddress(*x),
                      "x": lambda x: XP.XRelationalExpr(*x),
                      "cf": lambda x: XP.XConfined(*x),
                      "tt": lambda x: XP.XTainted(*x),
                      "up": lambda x: XP.XUniquePointer(*x),
                      "vm": lambda x: XP.XValidMem(*x),
                  }


class InterfaceDictionary(object):
    """Function interface constructs."""
    def __init__(self, cfile: "CFile"):
        self.cfile = cfile
        self.declarations = self.cfile.declarations
        self.dictionary = self.declarations.dictionary
        self.api_parameter_table: IndexedTable[ApiParameter] = IndexedTable(
            "api-parameter-table")
        self.s_offset_table: IndexedTable[SOffset] = IndexedTable(
Exemplo n.º 2
0
    'nng': lambda x: XP.XNonNegative(*x),
    'nz': lambda x: XP.XNotZero(*x),
    'null': lambda x: XP.XNull(*x),
    'nt': lambda x: XP.XNullTerminated(*x),
    'ofs': lambda x: XP.XOutputFormatString(*x),
    'pr': lambda x: XP.XPreservesMemory(*x),
    'pv': lambda x: XP.XPreservesValue(*x),
    'prm': lambda x: XP.XPreservesAllMemory(*x),
    'prmx': lambda x: XP.XPreservesAllMemoryX(*x),
    'prn': lambda x: XP.XPreservesNullTermination(*x),
    'prv': lambda x: XP.XPreservesValidity(*x),
    'rb': lambda x: XP.XRevBuffer(*x),
    'rep': lambda x: XP.XRepositioned(*x),
    'sa': lambda x: XP.XStackAddress(*x),
    'x': lambda x: XP.XRelationalExpr(*x),
    'cf': lambda x: XP.XConfined(*x),
    'tt': lambda x: XP.XTainted(*x),
    'up': lambda x: XP.XUniquePointer(*x),
    'vm': lambda x: XP.XValidMem(*x)
}


class InterfaceDictionary(object):
    """Function interface constructs."""
    def __init__(self, cfile):
        self.cfile = cfile
        self.declarations = self.cfile.declarations
        self.dictionary = self.declarations.dictionary
        self.api_parameter_table = IT.IndexedTable('api-parameter-table')
        self.s_offset_table = IT.IndexedTable('s-offset-table')
        self.s_term_table = IT.IndexedTable('s-term-table')