int CEXEBuild::IsTokenPlacedRight(int pos, const TCHAR *tok) { if (preprocessonly) return PS_OK; if ((unsigned int) pos > (sizeof(tokenlist) / sizeof(tokenType))) return PS_OK; int tp = tokenlist[pos].placement; int cp = GetCurrentTokenPlace(); if (tp & cp) { return PS_OK; } else { TCHAR err[1024]; if (cp == TP_SEC) { _tcscpy(err, _T("Error: command %") NPRIs _T(" not valid in Section\n")); } else if (cp == TP_FUNC) { _tcscpy(err, _T("Error: command %") NPRIs _T(" not valid in Function\n")); } else if (cp == TP_PAGEEX) { _tcscpy(err, _T("Error: command %") NPRIs _T(" not valid in PageEx\n")); } else { _tcscpy(err, _T("Error: command %") NPRIs _T(" not valid outside ")); if (tp & TP_SEC) _tcscat(err, _T("Section")); if (tp & TP_FUNC) { if (tp & TP_SEC) { if (tp & TP_PAGEEX) { _tcscat(err, _T(", ")); } else { _tcscat(err, _T(" or ")); } } _tcscat(err, _T("Function")); } if (tp & TP_PAGEEX) { if (tp & TP_CODE) { _tcscat(err, _T(" or ")); } _tcscat(err, _T("PageEx")); } _tcscat(err, _T("\n")); } ERROR_MSG(err, tok); return PS_ERROR; } }
int CEXEBuild::IsTokenPlacedRight(int pos, char *tok) { if ((unsigned int) pos > (sizeof(tokenlist) / sizeof(tokenType))) return PS_OK; int tp = tokenlist[pos].placement; int cp = GetCurrentTokenPlace(); if (tp & cp) { return PS_OK; } else { char err[1024]; if (cp == TP_SEC) { strcpy(err, "Error: command %s not valid in Section\n"); } else if (cp == TP_FUNC) { strcpy(err, "Error: command %s not valid in Function\n"); } else if (cp == TP_PAGEEX) { strcpy(err, "Error: command %s not valid in PageEx\n"); } else { strcpy(err, "Error: command %s not valid outside "); if (tp & TP_SEC) strcat(err, "Section"); if (tp & TP_FUNC) { if (tp & TP_SEC) { if (tp & TP_PAGEEX) { strcat(err, ", "); } else { strcat(err, " or "); } } strcat(err, "Function"); } if (tp & TP_PAGEEX) { if (tp & TP_CODE) { strcat(err, " or "); } strcat(err, "PageEx"); } strcat(err, "\n"); } ERROR_MSG(err, tok); return PS_ERROR; } }