port from perforce

This commit is contained in:
2026-04-18 22:31:51 +02:00
commit 8d0ab5b7cc
8409 changed files with 3972376 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
#pragma once
struct r_KeywordType
{
enum Enumeration
{
Identifier,
Type,
Symbol,
Number,
FunctionDeclaration,
ArgumentDeclaration,
VariableDeclaration,
Variable,
ReservedVariable,
Scope, // Reserved for the semantic analyzer
FunctionCall, // Reserved for the semantic analyzer
Unknown
};
};
struct r_Keyword
{
r_Keyword(r_KeywordType::Enumeration ae_Type, const CString& as_Name, int ai_LineNumber)
: me_Type(ae_Type)
, ms_Name(as_Name)
, mi_LineNumber(ai_LineNumber)
, mr_SymbolTableEntry_(NULL)
, mb_CanBeRenamed(true)
{
}
r_KeywordType::Enumeration me_Type;
CString ms_Name;
int mi_LineNumber;
bool mb_CanBeRenamed;
r_Keyword* mr_SymbolTableEntry_;
};
class k_LanguageSpecifier
{
std::vector<CString> mk_Identifiers;
std::vector<CString> mk_Symbols;
std::vector<CString> mk_Functions;
std::vector<CString> mk_Types;
std::vector<CString> mk_ReservedVariables;
int mi_LineNumber;
public:
k_LanguageSpecifier();
virtual ~k_LanguageSpecifier() {}
r_Keyword Classify(const CString& as_Keyword, char* ac_Char_);
r_Keyword get_NextKeyword(char** ac_Chars__);
};