preprocessing : Skip special characters. Refactoring.
This commit is contained in:
parent
bcf393292e
commit
2b7338450c
|
@ -162,7 +162,7 @@ void CppCheck::check()
|
||||||
if ( _settings._errorsOnly == false )
|
if ( _settings._errorsOnly == false )
|
||||||
_errorLogger->reportOut( std::string( "Checking " ) + fname + std::string( "..." ) );
|
_errorLogger->reportOut( std::string( "Checking " ) + fname + std::string( "..." ) );
|
||||||
|
|
||||||
Preprocessor preprocessor( this );
|
Preprocessor preprocessor;
|
||||||
std::map<std::string, std::string> code;
|
std::map<std::string, std::string> code;
|
||||||
if( _fileContents.size() > 0 && _fileContents.find( _filenames[c] ) != _fileContents.end() )
|
if( _fileContents.size() > 0 && _fileContents.find( _filenames[c] ) != _fileContents.end() )
|
||||||
{
|
{
|
||||||
|
|
|
@ -28,9 +28,9 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
Preprocessor::Preprocessor( ErrorLogger *errorLogger )
|
Preprocessor::Preprocessor()
|
||||||
{
|
{
|
||||||
_errorLogger = errorLogger;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Just read the code into a string. Perform simple cleanup of the code */
|
/** Just read the code into a string. Perform simple cleanup of the code */
|
||||||
|
@ -46,13 +46,7 @@ std::string Preprocessor::read(std::istream &istr, const std::string &filename)
|
||||||
for (char ch = (char)istr.get(); istr.good(); ch = (char)istr.get())
|
for (char ch = (char)istr.get(); istr.good(); ch = (char)istr.get())
|
||||||
{
|
{
|
||||||
if ( ch < 0 )
|
if ( ch < 0 )
|
||||||
{
|
continue;
|
||||||
// Bad content..
|
|
||||||
std::ostringstream oss;
|
|
||||||
oss << "[" << filename << ":" << lineno << "] Bad character found: " << int((unsigned char)ch) << std::endl;
|
|
||||||
_errorLogger->reportErr( oss.str() );
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( ch == '\n' )
|
if ( ch == '\n' )
|
||||||
++lineno;
|
++lineno;
|
||||||
|
|
|
@ -25,12 +25,13 @@
|
||||||
#include <istream>
|
#include <istream>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <list>
|
#include <list>
|
||||||
#include "errorlogger.h"
|
|
||||||
|
|
||||||
class Preprocessor
|
class Preprocessor
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Preprocessor( ErrorLogger *errorLogger );
|
Preprocessor();
|
||||||
|
|
||||||
void preprocess(std::istream &istr, std::map<std::string, std::string> &result, const std::string &filename);
|
void preprocess(std::istream &istr, std::map<std::string, std::string> &result, const std::string &filename);
|
||||||
|
|
||||||
/** Just read the code into a string. Perform simple cleanup of the code */
|
/** Just read the code into a string. Perform simple cleanup of the code */
|
||||||
|
@ -50,8 +51,6 @@ private:
|
||||||
std::string getdef(std::string line, bool def);
|
std::string getdef(std::string line, bool def);
|
||||||
|
|
||||||
bool match_cfg_def( std::string cfg, const std::string &def );
|
bool match_cfg_def( std::string cfg, const std::string &def );
|
||||||
|
|
||||||
ErrorLogger *_errorLogger;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
|
@ -68,7 +68,7 @@ private:
|
||||||
{
|
{
|
||||||
const char code[] = " \t a //\n"
|
const char code[] = " \t a //\n"
|
||||||
" #aa\t /* remove this */\tb \r\n";
|
" #aa\t /* remove this */\tb \r\n";
|
||||||
Preprocessor p(NULL);
|
Preprocessor p;
|
||||||
std::istringstream istr(code);
|
std::istringstream istr(code);
|
||||||
std::string codestr( p.read(istr,"") );
|
std::string codestr( p.read(istr,"") );
|
||||||
ASSERT_EQUALS( "a \n#aa b \n", codestr );
|
ASSERT_EQUALS( "a \n#aa b \n", codestr );
|
||||||
|
@ -154,7 +154,7 @@ private:
|
||||||
// Preprocess => actual result..
|
// Preprocess => actual result..
|
||||||
std::istringstream istr(filedata);
|
std::istringstream istr(filedata);
|
||||||
std::map<std::string, std::string> actual;
|
std::map<std::string, std::string> actual;
|
||||||
Preprocessor preprocessor( this );
|
Preprocessor preprocessor;
|
||||||
preprocessor.preprocess( istr, actual, "" );
|
preprocessor.preprocess( istr, actual, "" );
|
||||||
|
|
||||||
// Compare results..
|
// Compare results..
|
||||||
|
@ -178,7 +178,7 @@ private:
|
||||||
// Preprocess => actual result..
|
// Preprocess => actual result..
|
||||||
std::istringstream istr(filedata);
|
std::istringstream istr(filedata);
|
||||||
std::map<std::string, std::string> actual;
|
std::map<std::string, std::string> actual;
|
||||||
Preprocessor preprocessor( this );
|
Preprocessor preprocessor;
|
||||||
preprocessor.preprocess( istr, actual, "" );
|
preprocessor.preprocess( istr, actual, "" );
|
||||||
|
|
||||||
// Compare results..
|
// Compare results..
|
||||||
|
@ -201,7 +201,7 @@ private:
|
||||||
// Preprocess => actual result..
|
// Preprocess => actual result..
|
||||||
std::istringstream istr(filedata);
|
std::istringstream istr(filedata);
|
||||||
std::map<std::string, std::string> actual;
|
std::map<std::string, std::string> actual;
|
||||||
Preprocessor preprocessor( this );
|
Preprocessor preprocessor;
|
||||||
preprocessor.preprocess( istr, actual, "" );
|
preprocessor.preprocess( istr, actual, "" );
|
||||||
|
|
||||||
// Compare results..
|
// Compare results..
|
||||||
|
@ -227,7 +227,7 @@ private:
|
||||||
// Preprocess => actual result..
|
// Preprocess => actual result..
|
||||||
std::istringstream istr(filedata);
|
std::istringstream istr(filedata);
|
||||||
std::map<std::string, std::string> actual;
|
std::map<std::string, std::string> actual;
|
||||||
Preprocessor preprocessor( this );
|
Preprocessor preprocessor;
|
||||||
preprocessor.preprocess( istr, actual, "" );
|
preprocessor.preprocess( istr, actual, "" );
|
||||||
|
|
||||||
// Compare results..
|
// Compare results..
|
||||||
|
@ -251,7 +251,7 @@ private:
|
||||||
// Preprocess => actual result..
|
// Preprocess => actual result..
|
||||||
std::istringstream istr(filedata);
|
std::istringstream istr(filedata);
|
||||||
std::map<std::string, std::string> actual;
|
std::map<std::string, std::string> actual;
|
||||||
Preprocessor preprocessor( this );
|
Preprocessor preprocessor;
|
||||||
preprocessor.preprocess( istr, actual, "" );
|
preprocessor.preprocess( istr, actual, "" );
|
||||||
|
|
||||||
// Compare results..
|
// Compare results..
|
||||||
|
@ -278,7 +278,7 @@ private:
|
||||||
// Preprocess => actual result..
|
// Preprocess => actual result..
|
||||||
std::istringstream istr(filedata);
|
std::istringstream istr(filedata);
|
||||||
std::map<std::string, std::string> actual;
|
std::map<std::string, std::string> actual;
|
||||||
Preprocessor preprocessor( this );
|
Preprocessor preprocessor;
|
||||||
preprocessor.preprocess( istr, actual, "" );
|
preprocessor.preprocess( istr, actual, "" );
|
||||||
|
|
||||||
// Compare results..
|
// Compare results..
|
||||||
|
@ -301,7 +301,7 @@ private:
|
||||||
// Preprocess => actual result..
|
// Preprocess => actual result..
|
||||||
std::istringstream istr(filedata);
|
std::istringstream istr(filedata);
|
||||||
std::map<std::string, std::string> actual;
|
std::map<std::string, std::string> actual;
|
||||||
Preprocessor preprocessor( this );
|
Preprocessor preprocessor;
|
||||||
preprocessor.preprocess( istr, actual, "" );
|
preprocessor.preprocess( istr, actual, "" );
|
||||||
|
|
||||||
// Compare results..
|
// Compare results..
|
||||||
|
@ -324,7 +324,7 @@ private:
|
||||||
// Preprocess => actual result..
|
// Preprocess => actual result..
|
||||||
std::istringstream istr(filedata);
|
std::istringstream istr(filedata);
|
||||||
std::map<std::string, std::string> actual;
|
std::map<std::string, std::string> actual;
|
||||||
Preprocessor preprocessor( this );
|
Preprocessor preprocessor;
|
||||||
preprocessor.preprocess( istr, actual, "" );
|
preprocessor.preprocess( istr, actual, "" );
|
||||||
|
|
||||||
// Compare results..
|
// Compare results..
|
||||||
|
@ -344,7 +344,7 @@ private:
|
||||||
// Preprocess => actual result..
|
// Preprocess => actual result..
|
||||||
std::istringstream istr(filedata);
|
std::istringstream istr(filedata);
|
||||||
std::map<std::string, std::string> actual;
|
std::map<std::string, std::string> actual;
|
||||||
Preprocessor preprocessor( this );
|
Preprocessor preprocessor;
|
||||||
preprocessor.preprocess( istr, actual, "" );
|
preprocessor.preprocess( istr, actual, "" );
|
||||||
|
|
||||||
// Compare results..
|
// Compare results..
|
||||||
|
@ -369,7 +369,7 @@ private:
|
||||||
// Preprocess => actual result..
|
// Preprocess => actual result..
|
||||||
std::istringstream istr(filedata);
|
std::istringstream istr(filedata);
|
||||||
std::map<std::string, std::string> actual;
|
std::map<std::string, std::string> actual;
|
||||||
Preprocessor preprocessor( this );
|
Preprocessor preprocessor;
|
||||||
preprocessor.preprocess( istr, actual, "" );
|
preprocessor.preprocess( istr, actual, "" );
|
||||||
|
|
||||||
// Compare results..
|
// Compare results..
|
||||||
|
@ -389,7 +389,7 @@ private:
|
||||||
// Preprocess => actual result..
|
// Preprocess => actual result..
|
||||||
std::istringstream istr(filedata);
|
std::istringstream istr(filedata);
|
||||||
std::map<std::string, std::string> actual;
|
std::map<std::string, std::string> actual;
|
||||||
Preprocessor preprocessor( this );
|
Preprocessor preprocessor;
|
||||||
preprocessor.preprocess( istr, actual, "" );
|
preprocessor.preprocess( istr, actual, "" );
|
||||||
|
|
||||||
// Compare results..
|
// Compare results..
|
||||||
|
@ -414,7 +414,7 @@ private:
|
||||||
// Preprocess => actual result..
|
// Preprocess => actual result..
|
||||||
std::istringstream istr(filedata);
|
std::istringstream istr(filedata);
|
||||||
std::map<std::string, std::string> actual;
|
std::map<std::string, std::string> actual;
|
||||||
Preprocessor preprocessor( this );
|
Preprocessor preprocessor;
|
||||||
preprocessor.preprocess( istr, actual, "" );
|
preprocessor.preprocess( istr, actual, "" );
|
||||||
|
|
||||||
// Compare results..
|
// Compare results..
|
||||||
|
@ -434,7 +434,7 @@ private:
|
||||||
// Preprocess => actual result..
|
// Preprocess => actual result..
|
||||||
std::istringstream istr(filedata);
|
std::istringstream istr(filedata);
|
||||||
std::map<std::string, std::string> actual;
|
std::map<std::string, std::string> actual;
|
||||||
Preprocessor preprocessor( this );
|
Preprocessor preprocessor;
|
||||||
preprocessor.preprocess( istr, actual, "" );
|
preprocessor.preprocess( istr, actual, "" );
|
||||||
|
|
||||||
// Compare results..
|
// Compare results..
|
||||||
|
|
Loading…
Reference in New Issue