Lines Matching refs:pSys

83 static void ficlSetVersionEnv(FICL_SYSTEM *pSys);
101 FICL_SYSTEM *pSys = ficlMalloc(sizeof (FICL_SYSTEM)); in ficlInitSystemEx() local
103 assert(pSys); in ficlInitSystemEx()
106 memset(pSys, 0, sizeof (FICL_SYSTEM)); in ficlInitSystemEx()
116 pSys->dp = dictCreateHashed((unsigned)nDictCells, HASHSIZE); in ficlInitSystemEx()
117 pSys->dp->pForthWords->name = "forth-wordlist"; in ficlInitSystemEx()
119 pSys->envp = dictCreate((unsigned)nEnvCells); in ficlInitSystemEx()
120 pSys->envp->pForthWords->name = "environment"; in ficlInitSystemEx()
122 pSys->textOut = fsi->textOut; in ficlInitSystemEx()
123 pSys->pExtend = fsi->pExtend; in ficlInitSystemEx()
133 pSys->localp = dictCreate((unsigned)FICL_MAX_LOCALS * CELLS_PER_WORD); in ficlInitSystemEx()
141 ficlCompileCore(pSys); in ficlInitSystemEx()
142 ficlCompilePrefix(pSys); in ficlInitSystemEx()
144 ficlCompileFloat(pSys); in ficlInitSystemEx()
147 ficlCompilePlatform(pSys); in ficlInitSystemEx()
149 ficlSetVersionEnv(pSys); in ficlInitSystemEx()
156 ficlAddPrecompiledParseStep(pSys, "?prefix", ficlParsePrefix); in ficlInitSystemEx()
157 ficlAddPrecompiledParseStep(pSys, "?number", ficlParseNumber); in ficlInitSystemEx()
159 ficlAddPrecompiledParseStep(pSys, ">float", ficlParseFloatNumber); in ficlInitSystemEx()
170 ficlNewVM(pSys); in ficlInitSystemEx()
171 ficlCompileSoftCore(pSys); in ficlInitSystemEx()
172 ficlFreeVM(pSys->vmList); in ficlInitSystemEx()
175 return pSys; in ficlInitSystemEx()
194 int ficlAddParseStep(FICL_SYSTEM *pSys, FICL_WORD *pFW) in ficlAddParseStep() argument
199 if (pSys->parseList[i] == NULL) in ficlAddParseStep()
201 pSys->parseList[i] = pFW; in ficlAddParseStep()
216 void ficlAddPrecompiledParseStep(FICL_SYSTEM *pSys, char *name, FICL_PARSE_STEP pStep) in ficlAddPrecompiledParseStep() argument
218 FICL_DICT *dp = pSys->dp; in ficlAddPrecompiledParseStep()
221 ficlAddParseStep(pSys, pFW); in ficlAddPrecompiledParseStep()
231 FICL_SYSTEM *pSys = pVM->pSys; in ficlListParseSteps() local
232 assert(pSys); in ficlListParseSteps()
239 if (pSys->parseList[i] != NULL) in ficlListParseSteps()
241 vmTextOut(pVM, pSys->parseList[i]->name, 1); in ficlListParseSteps()
254 FICL_VM *ficlNewVM(FICL_SYSTEM *pSys) in ficlNewVM() argument
257 pVM->link = pSys->vmList; in ficlNewVM()
258 pVM->pSys = pSys; in ficlNewVM()
259 pVM->pExtend = pSys->pExtend; in ficlNewVM()
260 vmSetTextOut(pVM, pSys->textOut); in ficlNewVM()
262 pSys->vmList = pVM; in ficlNewVM()
276 FICL_SYSTEM *pSys = pVM->pSys; in ficlFreeVM() local
277 FICL_VM *pList = pSys->vmList; in ficlFreeVM()
281 if (pSys->vmList == pVM) in ficlFreeVM()
283 pSys->vmList = pSys->vmList->link; in ficlFreeVM()
315 int ficlBuild(FICL_SYSTEM *pSys, char *name, FICL_CODE code, char flags) in ficlBuild() argument
322 assert(dictCellsAvail(pSys->dp) > sizeof (FICL_WORD) / sizeof (CELL)); in ficlBuild()
323 dictAppendWord(pSys->dp, name, code, flags); in ficlBuild()
370 FICL_SYSTEM *pSys = pVM->pSys; in ficlExecC() local
371 FICL_DICT *dp = pSys->dp; in ficlExecC()
379 assert(pSys->pInterp[0]); in ficlExecC()
403 vmPushIP(pVM, &(pSys->pInterp[0])); in ficlExecC()
432 dictEmpty(pSys->localp, pSys->localp->pForthWords->size); in ficlExecC()
446 dictEmpty(pSys->localp, pSys->localp->pForthWords->size); in ficlExecC()
485 assert(pVM->pSys->pExitInner); in ficlExecXT()
502 vmPushIP(pVM, &(pVM->pSys->pExitInner)); in ficlExecXT()
543 FICL_WORD *ficlLookup(FICL_SYSTEM *pSys, char *name) in ficlLookup() argument
547 return dictLookup(pSys->dp, si); in ficlLookup()
555 FICL_DICT *ficlGetDict(FICL_SYSTEM *pSys) in ficlGetDict() argument
557 return pSys->dp; in ficlGetDict()
565 FICL_DICT *ficlGetEnv(FICL_SYSTEM *pSys) in ficlGetEnv() argument
567 return pSys->envp; in ficlGetEnv()
576 void ficlSetEnv(FICL_SYSTEM *pSys, char *name, FICL_UNS value) in ficlSetEnv() argument
580 FICL_DICT *envp = pSys->envp; in ficlSetEnv()
598 void ficlSetEnvD(FICL_SYSTEM *pSys, char *name, FICL_UNS hi, FICL_UNS lo) in ficlSetEnvD() argument
602 FICL_DICT *envp = pSys->envp; in ficlSetEnvD()
628 FICL_DICT *ficlGetLoc(FICL_SYSTEM *pSys) in ficlGetLoc() argument
630 return pSys->localp; in ficlGetLoc()
657 void ficlTermSystem(FICL_SYSTEM *pSys) in ficlTermSystem() argument
659 if (pSys->dp) in ficlTermSystem()
660 dictDelete(pSys->dp); in ficlTermSystem()
661 pSys->dp = NULL; in ficlTermSystem()
663 if (pSys->envp) in ficlTermSystem()
664 dictDelete(pSys->envp); in ficlTermSystem()
665 pSys->envp = NULL; in ficlTermSystem()
668 if (pSys->localp) in ficlTermSystem()
669 dictDelete(pSys->localp); in ficlTermSystem()
670 pSys->localp = NULL; in ficlTermSystem()
673 while (pSys->vmList != NULL) in ficlTermSystem()
675 FICL_VM *pVM = pSys->vmList; in ficlTermSystem()
676 pSys->vmList = pSys->vmList->link; in ficlTermSystem()
680 ficlFree(pSys); in ficlTermSystem()
681 pSys = NULL; in ficlTermSystem()
690 static void ficlSetVersionEnv(FICL_SYSTEM *pSys) in ficlSetVersionEnv() argument
692 ficlSetEnvD(pSys, "ficl-version", FICL_VER_MAJOR, FICL_VER_MINOR); in ficlSetVersionEnv()
693 ficlSetEnv (pSys, "ficl-robust", FICL_ROBUST); in ficlSetVersionEnv()