//--------------------------------------------------------------------------- #include "CommonCheck.h" #include "tokenize.h" #include #include #include #include //--------------------------------------------------------------------------- bool HasErrors; bool OnlyReportUniqueErrors; std::ostringstream errout; //--------------------------------------------------------------------------- std::string FileLine(TOKEN *tok) { std::ostringstream ostr; ostr << "[" << Files[tok->FileIndex] << ":" << tok->linenr << "]"; return ostr.str(); } //--------------------------------------------------------------------------- std::list ErrorList; void ReportErr(const std::string errmsg) { if ( OnlyReportUniqueErrors ) { if ( std::find( ErrorList.begin(), ErrorList.end(), errmsg ) != ErrorList.end() ) return; ErrorList.push_back( errmsg ); } errout << errmsg << std::endl; HasErrors = true; } //--------------------------------------------------------------------------- bool IsName(const char str[]) { return (str[0]=='_' || std::isalpha(str[0])); } //--------------------------------------------------------------------------- bool IsNumber(const char str[]) { return std::isdigit(str[0]); } //--------------------------------------------------------------------------- bool IsStandardType(const char str[]) { if (!str) return false; bool Ret = false; const char *type[] = {"bool","char","short","int","long","float","double",0}; for (int i = 0; type[i]; i++) Ret |= (strcmp(str,type[i])==0); return Ret; } //---------------------------------------------------------------------------