Lines Matching refs:pszExpr

234  * @param   pszExpr     The expression string.
239 static int dbgcEvalSubNumericOrPointer(PDBGC pDbgc, char *pszExpr, size_t cchExpr, DBGCVARCAT enmCategory,
242 char const ch = pszExpr[0];
243 char const ch2 = pszExpr[1];
247 return dbgcEvalSubNum(pszExpr + 2, cchExpr - 2, 16, pResult);
250 if (RT_C_IS_XDIGIT(*pszExpr) && (pszExpr[cchExpr - 1] == 'h' || pszExpr[cchExpr - 1] == 'H'))
252 pszExpr[cchExpr] = '\0';
253 return dbgcEvalSubNum(pszExpr, cchExpr - 1, 16, pResult);
258 return dbgcEvalSubNum(pszExpr + 2, cchExpr - 2, 10, pResult);
262 return dbgcEvalSubNum(pszExpr + 2, cchExpr - 2, 8, pResult);
266 return dbgcEvalSubNum(pszExpr + 2, cchExpr - 2, 10, pResult);
270 while (off < cchExpr && (RT_C_IS_XDIGIT(pszExpr[off]) || pszExpr[off] == '`'))
273 return dbgcEvalSubNum(pszExpr, cchExpr, 16, pResult);
295 char const chQuote = *pszExpr;
301 if (pszExpr[cchExpr - 1] != chQuote)
303 pszExpr[cchExpr - 1] = '\0';
304 pszExpr++;
307 int rc = dbgcSymbolGet(pDbgc, pszExpr, enmType, pResult);
327 * @param pszExpr The expression string.
331 static int dbgcEvalSubUnaryAny(PDBGC pDbgc, char *pszExpr, size_t cchExpr, PDBGCVAR pResult)
333 char const ch = pszExpr[0];
334 char const ch2 = pszExpr[1];
340 while (RT_C_IS_XDIGIT(pszExpr[off]) || pszExpr[off] == '`')
343 return dbgcEvalSubNum(pszExpr + 2, cchExpr - 2, 16, pResult);
344 return dbgcEvalSubString(pDbgc, pszExpr, cchExpr, pResult);
348 if (RT_C_IS_XDIGIT(*pszExpr) && (pszExpr[cchExpr - 1] == 'h' || pszExpr[cchExpr - 1] == 'H'))
351 while (off < cchExpr && (RT_C_IS_XDIGIT(pszExpr[off]) || pszExpr[off] == '`'))
355 pszExpr[cchExpr] = '\0';
356 return dbgcEvalSubNum(pszExpr, cchExpr, 16, pResult);
358 return dbgcEvalSubString(pDbgc, pszExpr, cchExpr + 1, pResult);
364 while (RT_C_IS_DIGIT(pszExpr[off]) || pszExpr[off] == '`')
367 return dbgcEvalSubNum(pszExpr + 2, cchExpr - 2, 10, pResult);
368 return dbgcEvalSubString(pDbgc, pszExpr, cchExpr, pResult);
374 while (RT_C_IS_ODIGIT(pszExpr[off]) || pszExpr[off] == '`')
377 return dbgcEvalSubNum(pszExpr + 2, cchExpr - 2, 8, pResult);
378 return dbgcEvalSubString(pDbgc, pszExpr, cchExpr, pResult);
384 while (pszExpr[off] == '0' || pszExpr[off] == '1' || pszExpr[off] == '`')
387 return dbgcEvalSubNum(pszExpr + 2, cchExpr - 2, 10, pResult);
388 return dbgcEvalSubString(pDbgc, pszExpr, cchExpr, pResult);
394 while (RT_C_IS_XDIGIT(pszExpr[off]) || pszExpr[off] == '`')
397 return dbgcEvalSubNum(pszExpr, cchExpr, 16, pResult);
398 return dbgcEvalSubString(pDbgc, pszExpr, cchExpr, pResult);
448 * @param pszExpr The expression string.
453 static int dbgcEvalSubUnary(PDBGC pDbgc, char *pszExpr, size_t cchExpr, DBGCVARCAT enmCategory, PDBGCVAR pResult)
455 Log2(("dbgcEvalSubUnary: cchExpr=%d pszExpr=%s\n", cchExpr, pszExpr));
466 PCDBGCOP pOp = dbgcOperatorLookup(pDbgc, pszExpr, false, ' ');
478 char *pszExpr2 = pszExpr + pOp->cchName;
486 rc = dbgcEvalSub(pDbgc, pszExpr2, cchExpr - (pszExpr2 - pszExpr), pOp->enmCatArg1, &Arg);
488 rc = dbgcEvalSubUnary(pDbgc, pszExpr2, cchExpr - (pszExpr2 - pszExpr), pOp->enmCatArg1, &Arg);
508 bool fExternal = *pszExpr == '.';
509 char *pszFun = fExternal ? pszExpr + 1 : pszExpr;
511 if (pszExpr[cchExpr - 1] == ')' && RT_C_IS_ALPHA(*pszFun))
513 pszFunEnd = pszExpr + 1;
534 return dbgcEvalSubUnaryAny(pDbgc, pszExpr, cchExpr, pResult);
545 return dbgcEvalSubNumericOrPointer(pDbgc, pszExpr, cchExpr, enmCategory, pResult);
550 return dbgcEvalSubString(pDbgc, pszExpr, cchExpr, pResult);
569 * @param pszExpr The expression string.
573 int dbgcEvalSub(PDBGC pDbgc, char *pszExpr, size_t cchExpr, DBGCVARCAT enmCategory, PDBGCVAR pResult)
575 Log2(("dbgcEvalSub: cchExpr=%d pszExpr=%s\n", cchExpr, pszExpr));
583 while (cchExpr > 0 && RT_C_IS_BLANK(pszExpr[cchExpr - 1]))
584 pszExpr[--cchExpr] = '\0';
585 while (RT_C_IS_BLANK(*pszExpr))
586 pszExpr++, cchExpr--;
587 if (!*pszExpr)
593 if (pszExpr[0] == '(' && pszExpr[cchExpr - 1] == ')')
598 char *psz = pszExpr + 1;
619 pszExpr++;
621 pszExpr[cchExpr] = '\0';
624 while (cchExpr > 0 && RT_C_IS_BLANK(pszExpr[cchExpr - 1]))
625 pszExpr[--cchExpr] = '\0';
626 while (RT_C_IS_BLANK(*pszExpr))
627 pszExpr++, cchExpr--;
628 if (!*pszExpr)
630 } while (pszExpr[0] == '(' && pszExpr[cchExpr - 1] == ')');
647 char *psz = pszExpr;
768 rc = dbgcEvalSub(pDbgc, pszExpr, pszOpSplit - pszExpr, pOpSplit->enmCatArg1, &Arg1);
774 rc = dbgcEvalSub(pDbgc, psz2, cchExpr - (psz2 - pszExpr), pOpSplit->enmCatArg2, &Arg2);
788 rc = dbgcEvalSub(pDbgc, pszOpSplit, cchExpr - (pszOpSplit - pszExpr), pOpSplit->enmCatArg1, &Arg);
796 rc = dbgcEvalSubUnary(pDbgc, pszExpr, cchExpr, enmCategory, pResult);