⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cpplexer.cpp

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
        case 's':        if (m_buffer[m_ptr+1] == 'h' &&            m_buffer[m_ptr+2] == 'o' &&            m_buffer[m_ptr+3] == 'r' &&            m_buffer[m_ptr+4] == 't')        {            *kind = Token_short;            return;        }        if (m_buffer[m_ptr+1] == 'l' &&            m_buffer[m_ptr+2] == 'o' &&            m_buffer[m_ptr+3] == 't' &&            m_buffer[m_ptr+4] == 's')        {            *kind = Token_slots;            return;        }        break;        case 'u':        if (m_buffer[m_ptr+1] == 'n' &&            m_buffer[m_ptr+2] == 'i' &&            m_buffer[m_ptr+3] == 'o' &&            m_buffer[m_ptr+4] == 'n')        {            *kind = Token_union;            return;        }        if (m_buffer[m_ptr+1] == 's' &&            m_buffer[m_ptr+2] == 'i' &&            m_buffer[m_ptr+3] == 'n' &&            m_buffer[m_ptr+4] == 'g')        {            *kind = Token_using;            return;        }        break;        case 't':        if (m_buffer[m_ptr+1] == 'h' &&            m_buffer[m_ptr+2] == 'r' &&            m_buffer[m_ptr+3] == 'o' &&            m_buffer[m_ptr+4] == 'w')        {            *kind = Token_throw;            return;        }        break;        case 'w':        if (m_buffer[m_ptr+1] == 'h' &&            m_buffer[m_ptr+2] == 'i' &&            m_buffer[m_ptr+3] == 'l' &&            m_buffer[m_ptr+4] == 'e')        {            *kind = Token_while;            return;        }        break;    }    *kind = Token_identifier;}void CppLexer::scanKeyword6(int *kind){    switch (m_buffer[m_ptr]) {        case 'a':        if (m_buffer[m_ptr+1] == 'n' &&            m_buffer[m_ptr+2] == 'd' &&            m_buffer[m_ptr+3] == '_' &&            m_buffer[m_ptr+4] == 'e' &&            m_buffer[m_ptr+5] == 'q')        {            *kind = Token_and_eq;            return;        }        break;        case 'b':        if (m_buffer[m_ptr+1] == 'i' &&            m_buffer[m_ptr+2] == 't' &&            m_buffer[m_ptr+3] == 'a' &&            m_buffer[m_ptr+4] == 'n' &&            m_buffer[m_ptr+5] == 'd')        {            *kind = Token_bitand;            return;        }        break;        case 'e':        if (m_buffer[m_ptr+1] == 'x' &&            m_buffer[m_ptr+2] == 'p' &&            m_buffer[m_ptr+3] == 'o' &&            m_buffer[m_ptr+4] == 'r' &&            m_buffer[m_ptr+5] == 't')        {            *kind = Token_export;            return;        }        if (m_buffer[m_ptr+1] == 'x' &&            m_buffer[m_ptr+2] == 't' &&            m_buffer[m_ptr+3] == 'e' &&            m_buffer[m_ptr+4] == 'r' &&            m_buffer[m_ptr+5] == 'n')        {            *kind = Token_extern;            return;        }        break;        case 'd':        if (m_buffer[m_ptr+1] == 'e' &&            m_buffer[m_ptr+2] == 'l' &&            m_buffer[m_ptr+3] == 'e' &&            m_buffer[m_ptr+4] == 't' &&            m_buffer[m_ptr+5] == 'e')        {            *kind = Token_delete;            return;        }        if (m_buffer[m_ptr+1] == 'o' &&            m_buffer[m_ptr+2] == 'u' &&            m_buffer[m_ptr+3] == 'b' &&            m_buffer[m_ptr+4] == 'l' &&            m_buffer[m_ptr+5] == 'e')        {            *kind = Token_double;            return;        }        break;        case 'f':        if (m_buffer[m_ptr+1] == 'r' &&            m_buffer[m_ptr+2] == 'i' &&            m_buffer[m_ptr+3] == 'e' &&            m_buffer[m_ptr+4] == 'n' &&            m_buffer[m_ptr+5] == 'd')        {            *kind = Token_friend;            return;        }        break;        case 'i':        if (m_buffer[m_ptr+1] == 'n' &&            m_buffer[m_ptr+2] == 'l' &&            m_buffer[m_ptr+3] == 'i' &&            m_buffer[m_ptr+4] == 'n' &&            m_buffer[m_ptr+5] == 'e')        {            *kind = Token_inline;            return;        }        break;        case 'K':        if (m_buffer[m_ptr+1] == '_' &&            m_buffer[m_ptr+2] == 'D' &&            m_buffer[m_ptr+3] == 'C' &&            m_buffer[m_ptr+4] == 'O' &&            m_buffer[m_ptr+5] == 'P')        {            *kind = Token_K_DCOP;            return;        }        break;        case 'n':        if (m_buffer[m_ptr+1] == 'o' &&            m_buffer[m_ptr+2] == 't' &&            m_buffer[m_ptr+3] == '_' &&            m_buffer[m_ptr+4] == 'e' &&            m_buffer[m_ptr+5] == 'q')        {            *kind = Token_not_eq;            return;        }        break;        case 'p':        if (m_buffer[m_ptr+1] == 'u' &&            m_buffer[m_ptr+2] == 'b' &&            m_buffer[m_ptr+3] == 'l' &&            m_buffer[m_ptr+4] == 'i' &&            m_buffer[m_ptr+5] == 'c')        {            *kind = Token_public;            return;        }        break;        case 's':        if (m_buffer[m_ptr+1] == 'i' &&            m_buffer[m_ptr+2] == 'g' &&            m_buffer[m_ptr+3] == 'n' &&            m_buffer[m_ptr+4] == 'e' &&            m_buffer[m_ptr+5] == 'd')        {            *kind = Token_signed;            return;        }        if (m_buffer[m_ptr+1] == 'i' &&            m_buffer[m_ptr+2] == 'z' &&            m_buffer[m_ptr+3] == 'e' &&            m_buffer[m_ptr+4] == 'o' &&            m_buffer[m_ptr+5] == 'f')        {            *kind = Token_sizeof;            return;        }        if (m_buffer[m_ptr+1] == 't' &&            m_buffer[m_ptr+2] == 'a' &&            m_buffer[m_ptr+3] == 't' &&            m_buffer[m_ptr+4] == 'i' &&            m_buffer[m_ptr+5] == 'c')        {            *kind = Token_static;            return;        }        if (m_buffer[m_ptr+1] == 't' &&            m_buffer[m_ptr+2] == 'r' &&            m_buffer[m_ptr+3] == 'u' &&            m_buffer[m_ptr+4] == 'c' &&            m_buffer[m_ptr+5] == 't')        {            *kind = Token_struct;            return;        }        if (m_buffer[m_ptr+1] == 'w' &&            m_buffer[m_ptr+2] == 'i' &&            m_buffer[m_ptr+3] == 't' &&            m_buffer[m_ptr+4] == 'c' &&            m_buffer[m_ptr+5] == 'h')        {            *kind = Token_switch;            return;        }        break;        case 'r':        if (m_buffer[m_ptr+1] == 'e' &&            m_buffer[m_ptr+2] == 't' &&            m_buffer[m_ptr+3] == 'u' &&            m_buffer[m_ptr+4] == 'r' &&            m_buffer[m_ptr+5] == 'n')        {            *kind = Token_return;            return;        }        break;        case 't':        if (m_buffer[m_ptr+1] == 'y' &&            m_buffer[m_ptr+2] == 'p' &&            m_buffer[m_ptr+3] == 'e' &&            m_buffer[m_ptr+4] == 'i' &&            m_buffer[m_ptr+5] == 'd')        {            *kind = Token_typeid;            return;        }        break;        case 'x':        if (m_buffer[m_ptr+1] == 'o' &&            m_buffer[m_ptr+2] == 'r' &&            m_buffer[m_ptr+3] == '_' &&            m_buffer[m_ptr+4] == 'e' &&            m_buffer[m_ptr+5] == 'q')        {            *kind = Token_xor_eq;            return;        }        break;        case 'k':        if (m_buffer[m_ptr+1] == '_' &&            m_buffer[m_ptr+2] == 'd' &&            m_buffer[m_ptr+3] == 'c' &&            m_buffer[m_ptr+4] == 'o' &&            m_buffer[m_ptr+5] == 'p')        {            *kind = Token_k_dcop;            return;        }        break;    }    *kind = Token_identifier;}void CppLexer::scanKeyword7(int *kind){    switch (m_buffer[m_ptr]) {        case 'd':        if (m_buffer[m_ptr+1] == 'e' &&            m_buffer[m_ptr+2] == 'f' &&            m_buffer[m_ptr+3] == 'a' &&            m_buffer[m_ptr+4] == 'u' &&            m_buffer[m_ptr+5] == 'l' &&            m_buffer[m_ptr+6] == 't')        {            *kind = Token_default;            return;        }        break;        case 'm':        if (m_buffer[m_ptr+1] == 'u' &&            m_buffer[m_ptr+2] == 't' &&            m_buffer[m_ptr+3] == 'a' &&            m_buffer[m_ptr+4] == 'b' &&            m_buffer[m_ptr+5] == 'l' &&            m_buffer[m_ptr+6] == 'e')        {            *kind = Token_mutable;            return;        }        break;        case 'p':        if (m_buffer[m_ptr+1] == 'r' &&            m_buffer[m_ptr+2] == 'i' &&            m_buffer[m_ptr+3] == 'v' &&            m_buffer[m_ptr+4] == 'a' &&            m_buffer[m_ptr+5] == 't' &&            m_buffer[m_ptr+6] == 'e')        {            *kind = Token_private;            return;        }        break;#if 0        case 's':        if (m_buffer[m_ptr+1] == 'i' &&            m_buffer[m_ptr+2] == 'g' &&            m_buffer[m_ptr+3] == 'n' &&            m_buffer[m_ptr+4] == 'a' &&            m_buffer[m_ptr+5] == 'l' &&            m_buffer[m_ptr+6] == 's')        {            *kind = Token_signals;            return;        }        break;#endif        case 't':        if (m_buffer[m_ptr+1] == 'y' &&            m_buffer[m_ptr+2] == 'p' &&            m_buffer[m_ptr+3] == 'e' &&            m_buffer[m_ptr+4] == 'd' &&            m_buffer[m_ptr+5] == 'e' &&            m_buffer[m_ptr+6] == 'f')        {            *kind = Token_typedef;            return;        }        break;        case 'v':        if (m_buffer[m_ptr+1] == 'i' &&            m_buffer[m_ptr+2] == 'r' &&            m_buffer[m_ptr+3] == 't' &&            m_buffer[m_ptr+4] == 'u' &&            m_buffer[m_ptr+5] == 'a' &&            m_buffer[m_ptr+6] == 'l')        {            *kind = Token_virtual;            return;        }        break;    }    *kind = Token_identifier;}void CppLexer::scanKeyword8(int *kind){    switch (m_buffer[m_ptr]) {        case '_':        if (m_buffer[m_ptr+1] == '_' &&            m_buffer[m_ptr+2] == 't' &&            m_buffer[m_ptr+3] == 'y' &&            m_buffer[m_ptr+4] == 'p' &&            m_buffer[m_ptr+5] == 'e' &&            m_buffer[m_ptr+6] == 'o' &&            m_buffer[m_ptr+7] == 'f')        {            *kind = Token___typeof;            return;        }        break;        case 'c':        if (m_buffer[m_ptr+1] == 'o' &&            m_buffer[m_ptr+2] == 'n' &&            m_buffer[m_ptr+3] == 't' &&            m_buffer[m_ptr+4] == 'i' &&            m_buffer[m_ptr+5] == 'n' &&            m_buffer[m_ptr+6] == 'u' &&            m_buffer[m_ptr+7] == 'e')        {            *kind = Token_continue;            return;        }        break;        case 'e':        if (m_buffer[m_ptr+1] == 'x' &&            m_buffer[m_ptr+2] == 'p' &&            m_buffer[m_ptr+3] == 'l' &&            m_buffer[m_ptr+4] == 'i' &&            m_buffer[m_ptr+5] == 'c' &&            m_buffer[m_ptr+6] == 'i' &&            m_buffer[m_ptr+7] == 't')        {            *kind = Token_explicit;            return;        }        break;        case 'o':        if (m_buffer[m_ptr+1] == 'p' &&

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -