/
LeafSubsetCallback.h
34 lines (32 loc) · 1.02 KB
/
LeafSubsetCallback.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#pragma once
#include "SubsetGenerator.h"
#include "Expression.h"
class LeafSubsetCallback : public SubsetCallback<Expression*>
{
private:
typedef std::set<ExprVector::iterator> ExprVectorPositions;
Expression *expression;
Expression *pattern;
Calculator *calculator;
Substitutions *subs;
MatchCallback *parentCallback;
SubsetGenerator<Expression*> *subsetGenerator;
ExprVector::iterator curPatternLeaf;
public:
LeafSubsetCallback(Expression *itsExpression, Expression *itsPattern,
Calculator *itsCalculator, Substitutions *itsSubs,
MatchCallback *itsParentCallback,
SubsetGenerator<Expression*> *itsSubsetGenerator,
ExprVector::iterator itsCurPatternLeaf) :
expression(itsExpression), pattern(itsPattern),
calculator(itsCalculator), subs(itsSubs),
parentCallback(itsParentCallback),
subsetGenerator(itsSubsetGenerator),
curPatternLeaf(itsCurPatternLeaf)
{
}
virtual ~LeafSubsetCallback()
{
}
virtual void Execute(ExprVectorPositions selection, bool &continueGenerating);
};