📄 cpplexer.cpp
字号:
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 + -