@morten
are you sure we still need to check this in DoParse().
else if ( m_pTokensTree
&& ( (peek==ParserConsts::semicolon)
|| ( (m_Options.useBuffer && (peek.GetChar(0) == _T('(')))
&& (!m_Str.Contains(ParserConsts::dcolon)) ) ) )
here I don't think we need check
m_pTokensTreebecause it has been done in Parse() which called Doparse()
bool ParserThread::Parse()
{
TRACE(_T("Parse() : Parsing '%s'"), m_Filename.wx_str());
if (!InitTokenizer())
return false;
bool result = false;
m_ParsingTypedef = false;
do
{
if (!m_pTokensTree || !m_Tokenizer.IsOK())
break;
if (!m_Options.useBuffer) // Parse a file
{
s_MutexProtection.Enter();
m_FileIdx = m_pTokensTree->ReserveFileForParsing(m_Filename);
s_MutexProtection.Leave();
if (!m_FileIdx)
break;
}
DoParse();
if (!m_Options.useBuffer) // Parsing a file
{
s_MutexProtection.Enter();
m_pTokensTree->FlagFileAsParsed(m_Filename);
s_MutexProtection.Leave();
}
result = true;
} while (false);
return result;
}
if (!m_pTokensTree || !m_Tokenizer.IsOK())
break;