#include "api.h" #include API::API() { initCommand(); } void API::initCommand() { com=""; paramList.clear(); errorString=""; noErr=true; } void API::parseCommand (const QString &s) { initCommand(); QRegExp re; int pos; // Get command re.setPattern ("(.*)\\s"); re.setMinimal (true); pos=re.search (s); if (pos>=0) com=re.cap(1); // Get parameters paramList.clear(); re.setPattern ("\\((.*)\\)"); pos=re.search (s); if (pos>=0) { QString s=re.cap(1); QString a; bool inquote=false; pos=0; if (!s.isEmpty()) { while (pos paramList.count()) { errorString =QString("Parameter index %1 is outside of parameter list").arg(index); noErr=false; } else { paramList[index].toInt (&ok, 10); if (!ok) { errorString=QString("Parameter %1 is not an integer").arg(index); noErr=false; } else noErr=true; } return noErr; } int API::parInt (bool &ok,const uint &index) { if (checkParamIsInt (index)) { return paramList[index].toInt (&ok, 10); } ok=false; return 0; } QString API::parString (bool &ok,const uint &index) { // return the string at index, this could be also stored in // a variable later QString r; QRegExp re("\"(.*)\""); int pos=re.search (paramList[index]); if (pos>=0) r=re.cap (1); else r=""; ok=true; return r; }