moved
This commit is contained in:
47
Sapfor/_src/SageAnalysisTool/set.h
Normal file
47
Sapfor/_src/SageAnalysisTool/set.h
Normal file
@@ -0,0 +1,47 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdio.h>
|
||||
#include <sage++user.h>
|
||||
|
||||
//
|
||||
// class Set used for data flow analysis...
|
||||
//
|
||||
|
||||
class Set {
|
||||
void **data;
|
||||
int nbelement;
|
||||
int nballocated;
|
||||
int deallocelem;
|
||||
SgStatement *stmt;
|
||||
|
||||
// used to compare two elements
|
||||
int(*equal)(void *e1, void *e2);
|
||||
void *(*combine)(void *e1, void *e2);
|
||||
void(*printEl)(void *e1);
|
||||
|
||||
public:
|
||||
Set(int(*feq)(void *e1, void *e2),
|
||||
void *(*fcomb)(void *e1, void *e2),
|
||||
void(*fp)(void *e1))
|
||||
/* end of fp */;
|
||||
~Set();
|
||||
void interSet(Set *s1, Set *s2);
|
||||
void unionSet(Set *s1);
|
||||
Set *combineSet();
|
||||
void diffSet(Set *s1, Set *s2);
|
||||
int equalSet(Set *s1);
|
||||
int isInSet(void *e1);
|
||||
void setDealllocateElem() { deallocelem = 1; }
|
||||
void resetDealllocateElem() { deallocelem = 0; }
|
||||
void printSet();
|
||||
int size() const { return nbelement; }
|
||||
void addElement(void *el);
|
||||
void *rmElement(int i);
|
||||
void* getElement(int i) const;
|
||||
Set *compact();
|
||||
Set *copy();
|
||||
void setStmt(SgStatement *s) { stmt = s; }
|
||||
SgStatement* getStmt() const { return stmt; }
|
||||
// add a chunk to the size ;
|
||||
void Reallocatedata();
|
||||
};
|
||||
Reference in New Issue
Block a user