ULONG fstk_RunInclude(char *s) { FILE *f; char tzFileName[_MAX_PATH + 1]; //printf( "INCLUDE: %s\n", s ); strcpy(tzFileName, s); fstk_FindFile(tzFileName); //printf( "INCLUDING: %s\n", tzFileName ); if ((f = fopen(tzFileName, "rt")) != NULL) { pushcontext(); nLineNo = 1; nCurrentStatus = STAT_isInclude; strcpy(tzCurrentFileName, tzFileName); pCurrentFile = f; CurrentFlexHandle = yy_create_buffer(pCurrentFile); yy_switch_to_buffer(CurrentFlexHandle); // Dirty hack to give the INCLUDE directive a linefeed yyunput('\n'); nLineNo -= 1; return (1); } else return (0); }
/* * Set up an include file for parsing */ void fstk_RunInclude(char *tzFileName) { FILE *f; f = fstk_FindFile(tzFileName); if (f == NULL) { err(1, "Unable to open included file '%s'", tzFileName); } pushcontext(); nLineNo = 1; nCurrentStatus = STAT_isInclude; strcpy(tzCurrentFileName, tzFileName); pCurrentFile = f; CurrentFlexHandle = yy_create_buffer(pCurrentFile); yy_switch_to_buffer(CurrentFlexHandle); //Dirty hack to give the INCLUDE directive a linefeed yyunput('\n'); nLineNo -= 1; }
void fstk_RunString(char *s) { struct sSymbol *pSym; if ((pSym = sym_FindSymbol(s)) != NULL) { pushcontext(); nCurrentStatus = STAT_isMacroArg; strcpy(tzCurrentFileName, s); CurrentFlexHandle = yy_scan_bytes(pSym->pMacro, strlen(pSym->pMacro)); yy_switch_to_buffer(CurrentFlexHandle); } else yyerror("No such string symbol"); }
void fstk_RunRept(ULONG count) { if (count) { pushcontext(); sym_UseCurrentMacroArgs(); sym_SetMacroArgID(nMacroCount++); sym_UseNewMacroArgs(); nCurrentREPTBlockCount = count; nCurrentStatus = STAT_isREPTBlock; nCurrentREPTBlockSize = ulNewMacroSize; pCurrentREPTBlock = tzNewMacro; CurrentFlexHandle = yy_scan_bytes(pCurrentREPTBlock, nCurrentREPTBlockSize); yy_switch_to_buffer(CurrentFlexHandle); } }
void fstk_RunMacroArg(SLONG s) { char *sym; if (s == '@') s = -1; else s -= '0'; if ((sym = sym_FindMacroArg(s)) != NULL) { pushcontext(); nCurrentStatus = STAT_isMacroArg; sprintf(tzCurrentFileName, "%c", (UBYTE) s); CurrentFlexHandle = yy_scan_bytes(sym, strlen(sym)); yy_switch_to_buffer(CurrentFlexHandle); } else fatalerror("No such macroargument"); }
ULONG fstk_RunMacro(char *s) { struct sSymbol *sym; if ((sym = sym_FindMacro(s)) != NULL) { pushcontext(); sym_SetMacroArgID(nMacroCount++); nLineNo = -1; sym_UseNewMacroArgs(); nCurrentStatus = STAT_isMacro; strcpy(tzCurrentFileName, s); pCurrentMacro = sym; CurrentFlexHandle = yy_scan_bytes(pCurrentMacro->pMacro, pCurrentMacro->ulMacroSize); yy_switch_to_buffer(CurrentFlexHandle); return (1); } else return (0); }
/* * Set up a macroargument for parsing */ void fstk_RunMacroArg(int32_t s) { char *sym; if (s == '@') s = -1; else s -= '0'; sym = sym_FindMacroArg(s); if (sym == NULL) fatalerror("No such macroargument"); pushcontext(); nCurrentStatus = STAT_isMacroArg; snprintf(tzCurrentFileName, _MAX_PATH + 1, "%c", (uint8_t)s); CurrentFlexHandle = yy_scan_bytes(sym, strlen(sym)); yy_switch_to_buffer(CurrentFlexHandle); }
/* * Set up an include file for parsing */ void fstk_RunInclude(char *tzFileName) { char *incPathUsed = ""; FILE *f = fstk_FindFile(tzFileName, &incPathUsed); if (f == NULL) err(1, "Unable to open included file '%s'", tzFileName); pushcontext(); nLineNo = 1; nCurrentStatus = STAT_isInclude; snprintf(tzCurrentFileName, sizeof(tzCurrentFileName), "%s%s", incPathUsed, tzFileName); pCurrentFile = f; CurrentFlexHandle = yy_create_buffer(pCurrentFile); yy_switch_to_buffer(CurrentFlexHandle); /* Dirty hack to give the INCLUDE directive a linefeed */ yyunput('\n'); nLineNo -= 1; }
/* * Set up a macro for parsing */ uint32_t fstk_RunMacro(char *s) { struct sSymbol *sym = sym_FindMacro(s); if (sym == NULL) return 0; pushcontext(); sym_SetMacroArgID(nMacroCount++); nLineNo = -1; sym_UseNewMacroArgs(); nCurrentStatus = STAT_isMacro; strcpy(tzCurrentFileName, s); if (sym->pMacro == NULL) return 0; pCurrentMacro = sym; CurrentFlexHandle = yy_scan_bytes(pCurrentMacro->pMacro, strlen(pCurrentMacro->pMacro)); yy_switch_to_buffer(CurrentFlexHandle); return 1; }