void showDebug(const char* funcName, const QAccessibleInterface *iface) { qDebug() << "Role:" << roleString(iface->role(0)) << "Name:" << iface->text(QAccessible::Name, 0) << "State:" << QString::number(int(iface->state(0)), 16) << QLatin1String(funcName); }
KFormula* KFormula::parseRest(const char*& str) { while(isspace(*str)) ++str; KFormula *left; if(*str == '('){ ++str; left = parseEQU(str); while(isspace(*str)) ++str; assert(*str == ')'); ++str; return left; } else if (strncmp(str,"<", 1) == 0 && (isalnum(*(str + 1)) || *(str+1) == '-')) { size_t n = 1;// "<" if (*(str+1) == '-') ++n; while(isalnum(*(str+n))) ++n; std::string roleString(str+1, n - 1); ++n;// ">" str += n; left = parseRest(str); left = new KFormula(KFormula::DIA,left,NULL); left->setprop(roleString); return left; } else if (strncmp(str,"<>", 2) == 0) { str += 2; left = parseRest(str); left = new KFormula(KFormula::DIA,left,NULL); return left; } else if (strncmp(str,"[", 1) == 0 && (isalnum(*(str + 1)) || *(str+1) == '-')) { size_t n = 1;// "[" if (*(str+1) == '-') ++n; while(isalnum(*(str+n))) ++n; std::string roleString(str+1, n - 1); ++n;// "]" str += n; left = parseRest(str); left = new KFormula(KFormula::BOX,left,NULL); left->setprop(roleString); return left; }else if (strncmp(str,"[]",2) == 0) { str += 2; left = parseRest(str); left = new KFormula(KFormula::BOX,left,NULL); return left; } else if (*str=='~') { ++str; left = parseRest(str); left = new KFormula(KFormula::NOT,left,NULL); return left; } else if (strncmp(str,"True",4)==0) { str += 4; return new KFormula(true); } else if (strncmp(str,"False",5)==0) { str += 5; return new KFormula(false); } else if (isalpha(*str) || *str == '_') { size_t n = 1; while(isalnum(*(str+n)) || *(str+n) == '_') ++n; left = new KFormula(std::string(str,n)); str += n; return left; } assert(false && "Could not parse input"); // Must not reach here }