Merging with Tuner branch
[satune.git] / src / Interpreter / alloyinterpreter.h
1 #ifndef ALLOYINTERPRETER_H
2 #define ALLOYINTERPRETER_H
3
4 #include "classlist.h"
5 #include "signatureenc.h"
6 #include "interpreter.h"
7 #include <iostream>
8 #include <fstream>
9
10 class AlloyInterpreter: public Interpreter{
11 public:
12         AlloyInterpreter(CSolver *solver);
13         virtual ValuedSignature *getBooleanSignature(uint id);
14         virtual ValuedSignature *getElementSignature(uint id, Signature *ssig);
15         virtual Signature *getSetSignature(uint id, Set *set);
16         virtual ~AlloyInterpreter();
17 protected:
18         virtual void dumpFooter();
19         virtual void dumpHeader();
20         int getAlloyIntScope();
21         virtual void compileRunCommand(char * command , size_t size);
22         virtual int getResult();
23         virtual void dumpAllConstraints(Vector<char *> &facts);
24         virtual string negateConstraint(string constr);
25         virtual string encodeBooleanLogic( BooleanLogic *bl);
26         virtual string encodeBooleanVar( BooleanVar *bv);
27         string encodeOperatorPredicate(BooleanPredicate *constraint);
28         virtual string processElementFunction(ElementFunction *element, ValuedSignature *signature);
29         virtual string operatorPredicateConstraint(CompOp op, ValuedSignature *elemSig1, ValuedSignature *elemSig2);
30 };
31
32 #endif