Lines Matching defs:cchExpr

116  * @param   cchExpr             The length of the expression.
119 static int dbgcEvalSubString(PDBGC pDbgc, const char *pachExpr, size_t cchExpr, PDBGCVAR pArg)
121 Log2(("dbgcEvalSubString: cchExpr=%d pachExpr=%.*s\n", cchExpr, cchExpr, pachExpr));
126 char *pszCopy = dbgcAllocStringScatch(pDbgc, cchExpr + 1);
136 if (pachExpr[--cchExpr] != chQuote)
139 cchExpr--;
141 if (!memchr(pachExpr, chQuote, cchExpr))
142 memcpy(pszCopy, pachExpr, cchExpr);
147 while (offSrc < cchExpr)
161 memcpy(pszCopy, pachExpr, cchExpr);
162 pszCopy[cchExpr] = '\0';
172 pArg->u64Range = cchExpr;
179 static int dbgcEvalSubNum(const char *pachExpr, size_t cchExpr, unsigned uBase, PDBGCVAR pArg)
181 Log2(("dbgcEvalSubNum: uBase=%d pachExpr=%.*s\n", uBase, cchExpr, pachExpr));
186 if (!cchExpr)
193 while (cchExpr-- > 0)
235 * @param cchExpr The length of the expression.
239 static int dbgcEvalSubNumericOrPointer(PDBGC pDbgc, char *pszExpr, size_t cchExpr, DBGCVARCAT enmCategory,
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] == '`'))
272 if (off == cchExpr)
273 return dbgcEvalSubNum(pszExpr, cchExpr, 16, pResult);
301 if (pszExpr[cchExpr - 1] != chQuote)
303 pszExpr[cchExpr - 1] = '\0';
328 * @param cchExpr The length of the expression.
331 static int dbgcEvalSubUnaryAny(PDBGC pDbgc, char *pszExpr, size_t cchExpr, PDBGCVAR pResult)
342 if (off == cchExpr)
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'))
350 cchExpr--;
351 while (off < cchExpr && (RT_C_IS_XDIGIT(pszExpr[off]) || pszExpr[off] == '`'))
353 if (off == cchExpr)
355 pszExpr[cchExpr] = '\0';
356 return dbgcEvalSubNum(pszExpr, cchExpr, 16, pResult);
358 return dbgcEvalSubString(pDbgc, pszExpr, cchExpr + 1, pResult);
366 if (off == cchExpr)
367 return dbgcEvalSubNum(pszExpr + 2, cchExpr - 2, 10, pResult);
368 return dbgcEvalSubString(pDbgc, pszExpr, cchExpr, pResult);
376 if (off == cchExpr)
377 return dbgcEvalSubNum(pszExpr + 2, cchExpr - 2, 8, pResult);
378 return dbgcEvalSubString(pDbgc, pszExpr, cchExpr, pResult);
386 if (off == cchExpr)
387 return dbgcEvalSubNum(pszExpr + 2, cchExpr - 2, 10, pResult);
388 return dbgcEvalSubString(pDbgc, pszExpr, cchExpr, pResult);
396 if (off == cchExpr)
397 return dbgcEvalSubNum(pszExpr, cchExpr, 16, pResult);
398 return dbgcEvalSubString(pDbgc, pszExpr, cchExpr, pResult);
449 * @param cchExpr The length of the expression.
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));
486 rc = dbgcEvalSub(pDbgc, pszExpr2, cchExpr - (pszExpr2 - pszExpr), pOp->enmCatArg1, &Arg);
488 rc = dbgcEvalSubUnary(pDbgc, pszExpr2, cchExpr - (pszExpr2 - pszExpr), pOp->enmCatArg1, &Arg);
511 if (pszExpr[cchExpr - 1] == ')' && RT_C_IS_ALPHA(*pszFun))
522 return dbgcEvalSubCall(pDbgc, pszFun, cchFunNm, fExternal, pszFunEnd + 1, cchExpr - cchFunNm - fExternal - 2,
534 return dbgcEvalSubUnaryAny(pDbgc, pszExpr, cchExpr, pResult);
545 return dbgcEvalSubNumericOrPointer(pDbgc, pszExpr, cchExpr, enmCategory, pResult);
550 return dbgcEvalSubString(pDbgc, pszExpr, cchExpr, pResult);
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';
586 pszExpr++, cchExpr--;
593 if (pszExpr[0] == '(' && pszExpr[cchExpr - 1] == ')')
620 cchExpr -= 2;
621 pszExpr[cchExpr] = '\0';
624 while (cchExpr > 0 && RT_C_IS_BLANK(pszExpr[cchExpr - 1]))
625 pszExpr[--cchExpr] = '\0';
627 pszExpr++, cchExpr--;
630 } while (pszExpr[0] == '(' && pszExpr[cchExpr - 1] == ')');
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);