Lines Matching refs:pVM

228 void ficlListParseSteps(FICL_VM *pVM)
231 FICL_SYSTEM *pSys = pVM->pSys;
234 vmTextOut(pVM, "Parse steps:", 1);
235 vmTextOut(pVM, "lookup", 1);
241 vmTextOut(pVM, pSys->parseList[i]->name, 1);
256 FICL_VM *pVM = vmCreate(NULL, defaultStack, defaultStack);
257 pVM->link = pSys->vmList;
258 pVM->pSys = pSys;
259 pVM->pExtend = pSys->pExtend;
260 vmSetTextOut(pVM, pSys->textOut);
262 pSys->vmList = pVM;
263 return pVM;
274 void ficlFreeVM(FICL_VM *pVM)
276 FICL_SYSTEM *pSys = pVM->pSys;
279 assert(pVM != NULL);
281 if (pSys->vmList == pVM)
287 if (pList->link == pVM)
289 pList->link = pVM->link;
295 vmDelete(pVM);
334 int ficlEvaluate(FICL_VM *pVM, char *pText)
337 CELL id = pVM->sourceID;
338 pVM->sourceID.i = -1;
339 returnValue = ficlExecC(pVM, pText, -1);
340 pVM->sourceID = id;
363 int ficlExec(FICL_VM *pVM, char *pText)
365 return ficlExecC(pVM, pText, -1);
368 int ficlExecC(FICL_VM *pVM, char *pText, FICL_INT size)
370 FICL_SYSTEM *pSys = pVM->pSys;
378 assert(pVM);
384 vmPushTib(pVM, pText, size, &saveTib);
389 oldState = pVM->pState;
390 pVM->pState = &vmState; /* This has to come before the setjmp! */
396 if (pVM->fRestart)
398 pVM->runningWord->code(pVM);
399 pVM->fRestart = 0;
403 vmPushIP(pVM, &(pSys->pInterp[0]));
406 vmInnerLoop(pVM);
410 pVM->fRestart = 1;
415 vmPopIP(pVM);
417 if ((pVM->state != COMPILE) && (pVM->sourceID.i == 0))
418 ficlTextOut(pVM, FICL_PROMPT, 0);
428 if (pVM->state == COMPILE)
435 vmQuit(pVM);
442 if (pVM->state == COMPILE)
450 vmReset(pVM);
454 pVM->pState = oldState;
455 vmPopTib(pVM, &saveTib);
477 int ficlExecXT(FICL_VM *pVM, FICL_WORD *pWord)
484 assert(pVM);
485 assert(pVM->pSys->pExitInner);
491 oldRunningWord = pVM->runningWord;
495 oldState = pVM->pState;
496 pVM->pState = &vmState; /* This has to come before the setjmp! */
500 vmPopIP(pVM);
502 vmPushIP(pVM, &(pVM->pSys->pExitInner));
507 vmExecute(pVM, pWord);
508 vmInnerLoop(pVM);
525 pVM->pState = oldState;
526 vmThrow(pVM, except);
531 pVM->pState = oldState;
532 pVM->runningWord = oldRunningWord;
675 FICL_VM *pVM = pSys->vmList;
677 vmDelete(pVM);