• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.9.5/kext_tools-326.95.1/

Lines Matching refs:query

27 * The internal query engine object definition.
31 /* queryRoot: the outermost query element, always an OR group
35 /* queryStack, queryStackTop: a lifo stack of query elements representing
53 /* The last error to happen with this query.
77 * Internal query element keys for the basic operators and such.
80 * "Or" groups are always explicit, except for the query root. "And" groups are
82 * query engine promotes the element preceding the "and" into the new "and"
102 QEQueryRef query,
106 CF_RETURNS_RETAINED CFMutableDictionaryRef _QEQueryYankElement(QEQueryRef query);
107 Boolean _QEQueryStackTopIsAndGroup(QEQueryRef query);
108 Boolean _QEQueryStackTopIsOrGroup(QEQueryRef query);
109 Boolean _QEQueryStackTopHasCount(QEQueryRef query, CFIndex count);
110 Boolean _QEQueryPushGroup(QEQueryRef query, Boolean negated, Boolean andFlag);
111 Boolean _QEQueryPopGroup(QEQueryRef query);
113 QEQueryRef query,
117 QEQueryRef query,
120 QEQueryRef query,
123 QEQueryRef query,
126 QEQueryRef query,
214 QEQueryFree(QEQueryRef query)
216 if (query->queryRoot) CFRelease(query->queryRoot);
217 if (query->queryStack) CFRelease(query->queryStack);
218 if (query->operators) CFRelease(query->operators);
219 if (query->parseCallbacks) CFRelease(query->parseCallbacks);
220 if (query->evaluationCallbacks) CFRelease(query->evaluationCallbacks);
221 if (query->synonyms) CFRelease(query->synonyms);
222 free(query);
230 QEQueryEmptyParseDictionaries(QEQueryRef query)
232 CFDictionaryRemoveAllValues(query->parseCallbacks);
233 CFDictionaryRemoveAllValues(query->evaluationCallbacks);
234 CFDictionaryRemoveAllValues(query->synonyms);
243 QEQuerySetOperators(QEQueryRef query,
250 CFDictionarySetValue(query->operators, CFSTR(kQEQueryTokenAnd),
252 CFDictionarySetValue(query->operators, CFSTR(kQEQueryTokenOr),
254 CFDictionarySetValue(query->operators, CFSTR(kQEQueryTokenNot),
256 CFDictionarySetValue(query->operators, CFSTR(kQEQueryTokenGroupStart),
258 CFDictionarySetValue(query->operators, CFSTR(kQEQueryTokenGroupEnd),
268 QEQueryRef query,
280 CFDictionarySetValue(query->parseCallbacks, predicate, pCallback);
282 CFDictionaryRemoveValue(query->parseCallbacks, predicate);
295 QEQueryRef query,
307 CFDictionarySetValue(query->evaluationCallbacks, predicate, eCallback);
309 CFDictionaryRemoveValue(query->evaluationCallbacks, predicate);
322 QEQueryRef query,
327 CFDictionarySetValue(query->synonyms, synonym, predicate);
329 CFDictionaryRemoveValue(query->synonyms, synonym);
338 QEQueryIsComplete(QEQueryRef query)
340 if (!query->nestingLevel &&
341 !query->logicOpActive &&
342 query->lastError == kQEQueryErrorNone) {
353 QEQueryLastError(QEQueryRef query)
355 return query->lastError;
365 QEQueryRef query,
368 query->shortCircuitEval = flag;
375 QEQueryGetShortCircuits(QEQueryRef query)
377 return query->shortCircuitEval;
385 QEQueryRef query,
401 * root query, but empty groups are trivially true; basically,
413 if (!_QEQueryElementEvaluate(query, thisElement, object)) {
414 if (query->shortCircuitEval) {
424 * root query, but empty groups are trivially true; basically,
437 if (_QEQueryElementEvaluate(query, thisElement, object)) {
439 if (query->shortCircuitEval) {
449 _QEQueryEvaluationCallbackForPredicate(query, predicate);
451 result = evalCallback(element, object, query->userData,
452 &query->lastError);
454 query->lastError = kQEQueryErrorNoEvaluationCallback;
468 if (query->lastError != kQEQueryErrorNone) {
479 QEQueryRef query,
483 if (!QEQueryIsComplete(query) || query->lastError != kQEQueryErrorNone) {
486 result = _QEQueryElementEvaluate(query, query->queryRoot, object);
498 QEQueryRef query,
513 predicate = _QEPredicateForString(query, argv[index]);
516 CFDictionaryGetValue(query->operators, CFSTR(kQEQueryTokenNot)))) {
522 query->lastError = kQEQueryErrorSyntax;
529 predicate = _QEPredicateForString(query, argv[index]);
534 CFDictionaryGetValue(query->operators, CFSTR(kQEQueryTokenAnd)))) {
537 query->lastError = kQEQueryErrorSyntax;
540 if (!QEQueryAppendAndOperator(query)) {
545 CFDictionaryGetValue(query->operators, CFSTR(kQEQueryTokenOr)))) {
548 query->lastError = kQEQueryErrorSyntax;
551 if (!QEQueryAppendOrOperator(query)) {
556 CFDictionaryGetValue(query->operators, CFSTR(kQEQueryTokenGroupStart)))) {
558 if (!_QEQueryStartGroup(query, false /* 'and' group */, negated)) {
559 // called function sets query->lastError
564 CFDictionaryGetValue(query->operators, CFSTR(kQEQueryTokenGroupEnd)))) {
566 if (!QEQueryEndGroup(query)) {
567 // called function sets query->lastError
575 element = QEQueryCreateElement(query, predicate, NULL, negated);
577 // called function sets query->lastError
581 parseCallback = _QEQueryParseCallbackForPredicate(query, predicate);
583 query->lastError = kQEQueryErrorNoParseCallback;
590 &callbackNumUsed, query->userData, &query->lastError)) {
592 // user callback sets query->lastError
598 if (!QEQueryAppendElement(query, element)) {
599 // called function sets query->lastError
626 QEQueryRef query,
642 query->lastError = kQEQueryErrorNoMemory;
646 synonym = CFDictionaryGetValue(query->synonyms, predicate);
671 QEQueryRef query,
680 if (!query->logicOpActive && !_QEQueryStackTopHasCount(query, 0)) {
681 if (!QEQueryAppendAndOperator(query)) {
682 // called function sets query->lastError
688 query->queryStackTop, kQEQueryKeyArguments);
691 query->logicOpActive = false;
702 QEQueryAppendAndOperator(QEQueryRef query)
706 if (query->logicOpActive) {
707 query->lastError = kQEQueryErrorSyntax;
711 query->logicOpActive = true;
713 if (_QEQueryStackTopIsOrGroup(query)) {
714 if (!_QEQueryStartGroup(query, true /* 'and' group */,
717 // called function sets query->lastError
732 QEQueryAppendOrOperator(QEQueryRef query)
736 if (query->logicOpActive) {
737 query->lastError = kQEQueryErrorSyntax;
741 query->logicOpActive = true;
743 if (_QEQueryStackTopIsAndGroup(query)) {
744 if (!_QEQueryPopGroup(query)) {
760 QEQueryRef query,
763 return _QEQueryStartGroup(query, false /* not an 'and' group */, negated);
771 QEQueryRef query,
777 if (!query->logicOpActive && _QEQueryStackTopIsOrGroup(query)) {
778 if (!_QEQueryPushGroup(query, false /* negated */,
781 // called function sets query->lastError
786 if (!_QEQueryPushGroup(query, negated, andFlag)) {
787 // called function sets query->lastError
800 QEQueryEndGroup(QEQueryRef query)
804 /* A complete query has no open groups.
806 if (QEQueryIsComplete(query)) {
807 query->lastError = kQEQueryErrorGroupNesting;
814 if (_QEQueryStackTopHasCount(query, 0)) {
815 query->lastError = kQEQueryErrorEmptyGroup;
822 if (_QEQueryStackTopIsAndGroup(query)) {
823 if (!_QEQueryPopGroup(query)) {
824 // called function sets query->lastError
831 if (_QEQueryStackTopIsAndGroup(query)) {
832 query->lastError = kQEQueryErrorGroupNesting;
839 if (!_QEQueryStackTopIsOrGroup(query)) {
840 query->lastError = kQEQueryErrorGroupNesting;
847 if (!_QEQueryPopGroupAndCoalesce(query, false /* pop only if can coalesce */)) {
848 query->lastError = kQEQueryErrorGroupNesting;
854 query->nestingLevel--;
859 if (_QEQueryStackTopIsAndGroup(query)) {
860 if (!_QEQueryPopGroupAndCoalesce(query, true /* pop only if can coalesce */)) {
861 query->lastError = kQEQueryErrorGroupNesting;
1089 QEQueryPrint(QEQueryRef query)
1091 // printPList(stdout, query->queryRoot);
1092 _QEQueryElementPrint(query->queryRoot, false);
1145 * top of the query's group stack, and returns it. It's used to pull an
1150 _QEQueryYankElement(QEQueryRef query)
1157 query->queryStackTop, kQEQueryKeyArguments);
1174 _QEQueryStackTopIsAndGroup(QEQueryRef query)
1176 CFStringRef predicate = CFDictionaryGetValue(query->queryStackTop,
1188 _QEQueryStackTopIsOrGroup(QEQueryRef query)
1190 CFStringRef predicate = CFDictionaryGetValue(query->queryStackTop,
1202 _QEQueryStackTopHasCount(QEQueryRef query, CFIndex count)
1204 CFArrayRef elements = CFDictionaryGetValue(query->queryStackTop,
1219 QEQueryRef query,
1230 query->lastError = kQEQueryErrorNoMemory;
1239 yankedElement = _QEQueryYankElement(query);
1241 query->nestingLevel++;
1245 query->queryStackTop, kQEQueryKeyArguments);
1248 CFArrayAppendValue(query->queryStack, (const void *)newGroup);
1249 query->queryStackTop = newGroup;
1252 QEQueryAppendElement(query, yankedElement);
1266 _QEQueryPopGroup(QEQueryRef query)
1271 stackDepth = CFArrayGetCount(query->queryStack);
1273 // fprintf(stderr, "query stack error\n");
1274 query->lastError = kQEQueryErrorGroupNesting;
1277 CFArrayRemoveValueAtIndex(query->queryStack, stackDepth - 1);
1278 query->queryStackTop = (CFMutableDictionaryRef)CFArrayGetValueAtIndex(
1279 query->queryStack, stackDepth - 2);
1291 QEQueryRef query,
1300 topArgs = QEQueryElementGetArguments(query->queryStackTop);
1302 canCoalesce = (_QEQueryStackTopHasCount(query, 1) &&
1303 (query->queryStackTop != query->queryRoot));
1314 if (!_QEQueryPopGroup(query)) {
1315 // called function sets query->lastError
1319 topArgs = QEQueryElementGetArguments(query->queryStackTop);
1322 groupOfOne = _QEQueryYankElement(query);
1324 query->lastError = kQEQueryErrorGroupNesting;
1344 QEQueryRef query,
1347 return CFDictionaryGetValue(query->operators, token);
1354 QEQueryRef query,
1366 synonym = CFDictionaryGetValue(query->synonyms, predicate);
1381 QEQueryRef query,
1389 callbackData = CFDictionaryGetValue(query->parseCallbacks, predicate);
1405 QEQueryRef query,
1413 callbackData = CFDictionaryGetValue(query->evaluationCallbacks, predicate);