Example #1
0
void CTobCompiler::Reset()
{
    m_errornum = 0;
    m_line = 0;
    m_err.Empty();
    m_bin.RemoveAll();
    if (m_fsrc) { fclose(m_fsrc); m_fsrc = 0; }
    if (m_fdst) { fclose(m_fdst); m_fdst = 0; }

    POSITION p;
    CString str;

    p = m_binmap.GetStartPosition();
    CByteArray* bin;
    while(p)
    {
        m_binmap.GetNextAssoc(p, str, bin);
        delete bin;
    }
    m_binmap.RemoveAll();
    m_binmap.InitHashTable(251);

    p = m_valmap.GetStartPosition();
    SValueType* val;
    while(p)
    {
        m_valmap.GetNextAssoc(p, str, val);
        delete val;
    }
    m_valmap.RemoveAll();
    m_valmap.InitHashTable(251);

    for(int i = m_exparr.GetSize() - 1; i >= 0; --i)
        delete m_exparr.GetAt(i);
    m_exparr.RemoveAll();

    m_Option.DefInt = 4;
    m_Option.DefFloat = 4;
    m_Option.bIgnoreCase = FALSE;
}