1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
#include "CxxScannerBase.h"
#include "CxxPreProcessor.h"
#include "fileutils.h"
CxxScannerBase::CxxScannerBase(CxxPreProcessor* preProcessor, const wxFileName& filename)
: m_scanner(NULL)
, m_filename(filename)
, m_preProcessor(preProcessor)
{
wxString content;
FileUtils::ReadFileContent(filename, content);
m_scanner = ::LexerNew(content, m_preProcessor->GetOptions());
}
CxxScannerBase::~CxxScannerBase()
{
if(m_scanner) {
::LexerDestroy(&m_scanner);
}
}
void CxxScannerBase::Parse()
{
CxxLexerToken token;
while(::LexerNext(m_scanner, token)) {
OnToken(token);
}
}
|