コード例 #1
0
    'pre': lambda x: PO.CPOPredicate(*x),
    'prm': lambda x: PO.CPOPreservedAllMemory(*x),
    'pub': lambda x: PO.CPOPtrUpperBound(*x),
    'pubd': lambda x: PO.CPOPtrUpperBoundDeref(*x),
    'pv': lambda x: PO.CPOPreservedValue(*x),
    'rb': lambda x: PO.CPORevBuffer(*x),
    'sae': lambda x: PO.CPOStackAddressEscape(*x),
    'tao': lambda x: PO.CPOTypeAtOffset(*x),
    'ub': lambda x: PO.CPOUpperBound(*x),
    'uio': lambda x: PO.CPOUIntOverflow(*x),
    'uiu': lambda x: PO.CPOUIntUnderflow(*x),
    'va': lambda x: PO.CPOVarArgs(*x),
    'vc': lambda x: PO.CPOValueConstraint(*x),
    'vm': lambda x: PO.CPOValidMem(*x),
    'w': lambda x: PO.CPOWidthOverflow(*x),
    'z': lambda x: PO.CPONotZero(*x)
}


class CFilePredicateDictionary(object):
    """Dictionary that encodes proof obligation predicates."""
    def __init__(self, cfile):
        self.cfile = cfile
        self.dictionary = self.cfile.declarations.dictionary
        self.po_predicate_table = IT.IndexedTable('po-predicate-table')
        self.tables = [(self.po_predicate_table,
                        self._read_xml_po_predicate_table)]
        self.initialize()

    def get_predicate(self, ix):
        return self.po_predicate_table.retrieve(ix)
コード例 #2
0
 def f(index, key):
     return PO.CPONotZero(self, index, p.tags, args)
    "pre": lambda x: PO.CPOPredicate(*x),
    "prm": lambda x: PO.CPOPreservedAllMemory(*x),
    "pub": lambda x: PO.CPOPtrUpperBound(*x),
    "pubd": lambda x: PO.CPOPtrUpperBoundDeref(*x),
    "pv": lambda x: PO.CPOPreservedValue(*x),
    "rb": lambda x: PO.CPORevBuffer(*x),
    "sae": lambda x: PO.CPOStackAddressEscape(*x),
    "tao": lambda x: PO.CPOTypeAtOffset(*x),
    "ub": lambda x: PO.CPOUpperBound(*x),
    "uio": lambda x: PO.CPOUIntOverflow(*x),
    "uiu": lambda x: PO.CPOUIntUnderflow(*x),
    "va": lambda x: PO.CPOVarArgs(*x),
    "vc": lambda x: PO.CPOValueConstraint(*x),
    "vm": lambda x: PO.CPOValidMem(*x),
    "w": lambda x: PO.CPOWidthOverflow(*x),
    "z": lambda x: PO.CPONotZero(*x),
}


class CFilePredicateDictionary(object):
    """Dictionary that encodes proof obligation predicates."""
    def __init__(self, cfile):
        self.cfile = cfile
        self.dictionary = self.cfile.declarations.dictionary
        self.po_predicate_table = IT.IndexedTable("po-predicate-table")
        self.tables = [(self.po_predicate_table,
                        self._read_xml_po_predicate_table)]
        self.initialize()

    def get_predicate(self, ix):
        return self.po_predicate_table.retrieve(ix)