72 virtual void execute(istream &s)=0;
73 virtual string getModule(
void)
const=0;
75 void addWord(
const string &temp) { com.push_back(temp); }
76 void removeWord(
void) { com.pop_back(); }
77 const string &getCommandWord(int4 i)
const {
return com[i]; }
78 void addWords(
const vector<string> &wordlist);
79 int4 numWords(
void)
const {
return com.size(); }
80 void commandString(
string &res)
const;
87 virtual void execute(istream &s) {}
88 virtual string getModule(
void)
const {
return "dummy"; }
93 return (0>a->compare(*b));
97 static vector<IfaceCapability *> thelist;
101 const string &getName(
void)
const {
return name; }
102 virtual void initialize(
void);
103 virtual void registerCommands(
IfaceStatus *status)=0;
105 static void registerAllCommands(
IfaceStatus *status);
109 vector<istream *> inputstack;
110 vector<string> promptstack;
111 vector<uint4> flagstack;
115 vector<string> history;
119 void restrict(vector<IfaceCommand *>::const_iterator &first,vector<IfaceCommand *>::const_iterator &last,vector<string> &input);
120 virtual void readLine(
string &line) { getline(*sptr,line,
'\n'); }
121 void saveHistory(
const string &line);
124 vector<IfaceCommand *> comlist;
125 map<string,IfaceData *> datamap;
126 int4 expandCom(vector<string> &expand,istream &s,
127 vector<IfaceCommand *>::const_iterator &first,
128 vector<IfaceCommand *>::const_iterator &last);
134 IfaceStatus(
const string &prmpt,istream &is,ostream &os,int4 mxhist=10);
136 void setErrorIsDone(
bool val) { errorisdone = val; }
137 void pushScript(
const string &filename,
const string &newprompt);
138 void popScript(
void);
139 int4 getNumInputStreamSize(
void)
const {
return inputstack.size(); }
140 void writePrompt(
void) { *optr << prompt; }
142 const char *nm2 = (
const char *)0,
143 const char *nm3 = (
const char *)0,
144 const char *nm4 = (
const char *)0,
145 const char *nm5 = (
const char *)0);
146 IfaceData *getData(
const string &nm)
const;
147 bool runCommand(
void);
148 void getHistory(
string &line,int4 i)
const;
149 int4 getHistorySize(
void)
const {
return history.size(); }
150 bool isStreamFinished(
void)
const {
if (done||inerror)
return true;
return sptr->eof(); }
151 bool isInError(
void)
const {
return inerror; }
152 void evaluateError(
void);
153 static void wordsToString(
string &res,
const vector<string> &list);
161 virtual string getModule(
void)
const {
return "base"; }
167 virtual void execute(istream &s);
172 virtual void execute(istream &s);
177 virtual void execute(istream &s);
182 virtual void execute(istream &s);
187 virtual void execute(istream &s);
192 virtual void execute(istream &s);
Definition: interface.hh:62
Definition: interface.hh:185
Infrastructure for discovering code extensions to the decompiler.
Definition: interface.hh:175
Definition: interface.hh:156
Definition: interface.hh:56
Definition: interface.hh:52
Definition: interface.hh:84
Definition: interface.hh:190
Definition: interface.hh:47
Definition: interface.hh:165
Definition: interface.hh:108
Definition: interface.hh:67
Class for automatically registering extension points to the decompiler.
Definition: capability.hh:36
Definition: interface.hh:180
Definition: interface.hh:96
Definition: interface.hh:170