33 #include <QtCore/QStringList>
34 #include <QtCore/QThreadStorage>
38 namespace PredicateParse
58 Solid::PredicateParse::ParsingData *data =
new Solid::PredicateParse::ParsingData();
59 s_parsingData->setLocalData(data);
60 data->buffer = predicate.toLatin1();
68 s_parsingData->setLocalData(0);
75 Solid::PredicateParse::ParsingData *data = s_parsingData->localData();
81 qWarning(
"ERROR from solid predicate parser: %s", s);
82 s_parsingData->localData()->result = 0;
87 Solid::PredicateParse::ParsingData *data = s_parsingData->localData();
89 if (p != data->result) {
96 QString iface(interface);
97 QString prop(property);
98 QVariant *val = (QVariant *)value;
111 QString iface(interface);
112 QString prop(property);
113 QVariant *val = (QVariant *)value;
127 QString iface(interface);
141 Solid::PredicateParse::ParsingData *data = s_parsingData->localData();
145 if (p1==data->result || p2==data->result) {
162 Solid::PredicateParse::ParsingData *data = s_parsingData->localData();
166 if (p1==data->result || p2==data->result) {
185 return new QVariant(s);
192 return new QVariant(b);
198 return new QVariant(val);
204 return new QVariant(val);
210 return new QVariant(QStringList());
217 list << QString(name);
221 return new QVariant(list);
227 QVariant *variant = (QVariant *)list;
229 QStringList new_list = variant->toStringList();
231 new_list << QString(name);
236 return new QVariant(new_list);
241 qWarning(
"ERROR from solid predicate parser: unrecognized token '%s' in predicate '%s'\n",
242 text, s_parsingData->localData()->buffer.constData());