deduplicate txti/text_cache language stuff; port over odin lexing

This commit is contained in:
Ryan Fleury
2024-03-26 11:00:17 -07:00
parent ca6e75d466
commit 4bc82db69e
4 changed files with 268 additions and 74 deletions
+15 -9
View File
@@ -32,15 +32,6 @@ typedef enum TXT_TokenKind
}
TXT_TokenKind;
typedef enum TXT_LangKind
{
TXT_LangKind_Null,
TXT_LangKind_C,
TXT_LangKind_CPlusPlus,
TXT_LangKind_COUNT
}
TXT_LangKind;
typedef struct TXT_Token TXT_Token;
struct TXT_Token
{
@@ -105,6 +96,19 @@ struct TXT_TextInfo
TXT_TokenArray tokens;
};
////////////////////////////////
//~ rjf: Language Kind Types
typedef enum TXT_LangKind
{
TXT_LangKind_Null,
TXT_LangKind_C,
TXT_LangKind_CPlusPlus,
TXT_LangKind_Odin,
TXT_LangKind_COUNT
}
TXT_LangKind;
typedef TXT_TokenArray TXT_LangLexFunctionType(Arena *arena, U64 *bytes_processed_counter, String8 string);
////////////////////////////////
@@ -234,6 +238,7 @@ global TXT_Shared *txt_shared = 0;
//~ rjf: Basic Helpers
internal TXT_LangKind txt_lang_kind_from_extension(String8 extension);
internal TXT_LangLexFunctionType *txt_lex_function_from_lang_kind(TXT_LangKind kind);
////////////////////////////////
//~ rjf: Token Type Functions
@@ -247,6 +252,7 @@ internal TXT_TokenArray txt_token_array_from_list(Arena *arena, TXT_TokenList *l
//~ rjf: Lexing Functions
internal TXT_TokenArray txt_token_array_from_string__c_cpp(Arena *arena, U64 *bytes_processed_counter, String8 string);
internal TXT_TokenArray txt_token_array_from_string__odin(Arena *arena, U64 *bytes_processed_counter, String8 string);
////////////////////////////////
//~ rjf: Main Layer Initialization