Predator  [unstable] git snapshot
symdiscover.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2010 Kamil Dudka <kdudka@redhat.com>
3  *
4  * This file is part of predator.
5  *
6  * predator is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * any later version.
10  *
11  * predator is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with predator. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef H_GUARD_SYMDISCOVER_H
21 #define H_GUARD_SYMDISCOVER_H
22 
23 /**
24  * @file symdiscover.hh
25  * public interface of list segment discovering algorithms
26  */
27 
28 #include "config.h"
29 #include "shape.hh"
30 
31 /// probe neighbouring objects and return a list of shape properties candidates
33  TShapePropsList *pDst,
34  SymHeap &sh,
35  TObjId obj);
36 
37 /// true if we can merge a pair of subsequent objects according to shape props
39  SymHeap &sh,
40  TObjId obj,
41  const ShapeProps &props,
42  TObjId *pNextObj = 0);
43 
44 /**
45  * Take the given symbolic heap and look for the best possible abstraction in
46  * there. If nothing is found, zero is returned. Otherwise it returns total
47  * length of the best possible abstraction.
48  */
49 bool discoverBestAbstraction(Shape *pDst, SymHeap &sh);
50 
51 #endif /* H_GUARD_SYMDISCOVER_H */