Lines Matching defs:pCfgTokenizer

122  * @param   pCfgTokenizer    The config tokenizer.
125 static void autostartConfigTokenFree(PCFGTOKENIZER pCfgTokenizer, PCFGTOKEN pToken)
127 NOREF(pCfgTokenizer);
135 * @param pCfgTokenizer The config tokenizer.
137 static int autostartConfigTokenizerReadNextLine(PCFGTOKENIZER pCfgTokenizer)
141 if (pCfgTokenizer->fEof)
146 rc = RTStrmGetLine(pCfgTokenizer->hStrmConfig, pCfgTokenizer->pszLine,
147 pCfgTokenizer->cbLine);
152 pCfgTokenizer->cbLine += 128;
153 pszTmp = (char *)RTMemRealloc(pCfgTokenizer->pszLine, pCfgTokenizer->cbLine);
155 pCfgTokenizer->pszLine = pszTmp;
164 pCfgTokenizer->iLine++;
165 pCfgTokenizer->cchCurr = 1;
166 pCfgTokenizer->pszLineCurr = pCfgTokenizer->pszLine;
168 pCfgTokenizer->fEof = true;
178 * @param pCfgTokenizer The config tokenizer data.
183 static int autostartConfigTokenizerCreateToken(PCFGTOKENIZER pCfgTokenizer,
194 pszToken = pCfgTokenizer->pszLineCurr;
207 rc = autostartConfigTokenizerReadNextLine(pCfgTokenizer);
266 autostartConfigTokenFree(pCfgTokenizer, pCfgTokenUse);
285 pCfgTokenUse->cchStart = pCfgTokenizer->cchCurr;
286 pCfgTokenUse->iLine = pCfgTokenizer->iLine;
294 autostartConfigTokenFree(pCfgTokenizer, pCfgTokenUse);
299 pCfgTokenizer->pszLineCurr += cchToken + cchAdvance;
300 pCfgTokenizer->cchCurr += cchToken + cchAdvance;
312 * @param pCfgTokenizer The config tokenizer to destroy.
314 static void autostartConfigTokenizerDestroy(PCFGTOKENIZER pCfgTokenizer)
316 if (pCfgTokenizer->pszLine)
317 RTMemFree(pCfgTokenizer->pszLine);
318 if (pCfgTokenizer->hStrmConfig)
319 RTStrmClose(pCfgTokenizer->hStrmConfig);
320 if (pCfgTokenizer->pTokenNext)
321 RTMemFree(pCfgTokenizer->pTokenNext);
322 RTMemFree(pCfgTokenizer);
336 PCFGTOKENIZER pCfgTokenizer = (PCFGTOKENIZER)RTMemAllocZ(sizeof(CFGTOKENIZER));
338 if (pCfgTokenizer)
340 pCfgTokenizer->iLine = 0;
341 pCfgTokenizer->cbLine = 128;
342 pCfgTokenizer->pszLine = (char *)RTMemAllocZ(pCfgTokenizer->cbLine);
343 if (pCfgTokenizer->pszLine)
345 rc = RTStrmOpen(pszFilename, "r", &pCfgTokenizer->hStrmConfig);
348 rc = autostartConfigTokenizerReadNextLine(pCfgTokenizer);
350 rc = autostartConfigTokenizerCreateToken(pCfgTokenizer, NULL,
351 &pCfgTokenizer->pTokenNext);
361 *ppCfgTokenizer = pCfgTokenizer;
363 && pCfgTokenizer)
364 autostartConfigTokenizerDestroy(pCfgTokenizer);
373 * @param pCfgTokenizer The config tokenizer.
376 static int autostartConfigTokenizerGetNextToken(PCFGTOKENIZER pCfgTokenizer,
379 *ppCfgToken = pCfgTokenizer->pTokenNext;
380 return autostartConfigTokenizerCreateToken(pCfgTokenizer, NULL, &pCfgTokenizer->pTokenNext);
475 * @param pCfgTokenizer The config tokenizer.
478 static int autostartConfigTokenizerCheckAndConsume(PCFGTOKENIZER pCfgTokenizer, CFGTOKENTYPE enmType)
483 rc = autostartConfigTokenizerGetNextToken(pCfgTokenizer, &pCfgToken);
492 autostartConfigTokenFree(pCfgTokenizer, pCfgToken);
501 * @param pCfgTokenizer Tokenizer instance data.
503 static int autostartConfigTokenizerConsume(PCFGTOKENIZER pCfgTokenizer)
508 rc = autostartConfigTokenizerGetNextToken(pCfgTokenizer, &pCfgToken);
510 autostartConfigTokenFree(pCfgTokenizer, pCfgToken);
519 * @param pCfgTokenizer Tokenizer instance data.
521 DECLINLINE(PCFGTOKEN) autostartConfigTokenizerPeek(PCFGTOKENIZER pCfgTokenizer)
523 return pCfgTokenizer->pTokenNext;
533 DECLINLINE(bool) autostartConfigTokenizerPeekIsEqual(PCFGTOKENIZER pCfgTokenizer, CFGTOKENTYPE enmType)
535 PCFGTOKEN pToken = autostartConfigTokenizerPeek(pCfgTokenizer);
543 * @param pCfgTokenizer The tokenizer for the config stream.
547 static int autostartConfigParseValue(PCFGTOKENIZER pCfgTokenizer, const char *pszKey,
553 rc = autostartConfigTokenizerGetNextToken(pCfgTokenizer, &pToken);
588 * @param pCfgTokenizer The tokenizer for the config stream.
592 static int autostartConfigParseCompoundNode(PCFGTOKENIZER pCfgTokenizer, const char *pszScopeId,
618 if ( autostartConfigTokenizerPeekIsEqual(pCfgTokenizer, CFGTOKENTYPE_CURLY_CLOSING)
619 || autostartConfigTokenizerPeekIsEqual(pCfgTokenizer, CFGTOKENTYPE_EOF))
622 rc = autostartConfigTokenizerGetNextToken(pCfgTokenizer, &pToken);
627 rc = autostartConfigTokenizerCheckAndConsume(pCfgTokenizer, CFGTOKENTYPE_EQUAL);
631 if (autostartConfigTokenizerPeekIsEqual(pCfgTokenizer, CFGTOKENTYPE_CURLY_OPEN))
633 rc = autostartConfigTokenizerConsume(pCfgTokenizer);
635 rc = autostartConfigParseCompoundNode(pCfgTokenizer, pToken->u.Id.achToken,
639 rc = autostartConfigTokenizerCheckAndConsume(pCfgTokenizer, CFGTOKENTYPE_CURLY_CLOSING);
642 rc = autostartConfigParseValue(pCfgTokenizer, pToken->u.Id.achToken,
673 autostartConfigTokenFree(pCfgTokenizer, pToken);
687 PCFGTOKENIZER pCfgTokenizer = NULL;
694 rc = autostartConfigTokenizerCreate(pszFilename, &pCfgTokenizer);
697 rc = autostartConfigParseCompoundNode(pCfgTokenizer, "", &pCfgAst);
699 rc = autostartConfigTokenizerCheckAndConsume(pCfgTokenizer, CFGTOKENTYPE_EOF);
702 if (pCfgTokenizer)
703 autostartConfigTokenizerDestroy(pCfgTokenizer);