Modifying the class hierarchy and removing globals, allocators, simplifying
This commit is contained in:
@@ -56,7 +56,7 @@ lex_set_len(Lex_Stream *s, Token *token){
|
||||
}
|
||||
|
||||
CORE_Static void
|
||||
lex_set_keywords(Lexer *lexer, Array<String> keywords){
|
||||
lex_set_keywords(Parse_Ctx *lexer, Array<String> keywords){
|
||||
Intern_String keyword = {};
|
||||
For(keywords){
|
||||
keyword = intern_string(&lexer->interns, it);
|
||||
@@ -79,7 +79,7 @@ token_error(Token *t, String error_val){
|
||||
}
|
||||
|
||||
CORE_Static void
|
||||
lex_parse_u64(Lexer *lexer, Token *t, S64 base){
|
||||
lex_parse_u64(Parse_Ctx *lexer, Token *t, S64 base){
|
||||
Scratch scratch;
|
||||
Set_BigInt_Arena(scratch);
|
||||
|
||||
@@ -100,7 +100,7 @@ lex_parse_u64(Lexer *lexer, Token *t, S64 base){
|
||||
m = bigint_mul(&m, &base_mul);
|
||||
}
|
||||
|
||||
t->int_val = bigint_copy(lexer->arena, &result);
|
||||
t->int_val = bigint_copy(lexer->perm, &result);
|
||||
}
|
||||
|
||||
CORE_Static void
|
||||
@@ -175,7 +175,7 @@ lex_parse_ident(Intern_Table *table, Lex_Stream *s, Token *t){
|
||||
break
|
||||
|
||||
CORE_Static Token
|
||||
token_make(Lexer *lexer, U8 *str, Intern_String file, int line, U8 *line_begin){
|
||||
token_make(Parse_Ctx *lexer, U8 *str, Intern_String file, int line, U8 *line_begin){
|
||||
Token t = {};
|
||||
t.str = str;
|
||||
t.file = file;
|
||||
@@ -186,7 +186,7 @@ token_make(Lexer *lexer, U8 *str, Intern_String file, int line, U8 *line_begin){
|
||||
}
|
||||
|
||||
CORE_Static Token
|
||||
token_make(Lexer *lexer){
|
||||
token_make(Parse_Ctx *lexer){
|
||||
return token_make(lexer, lexcp(&lexer->stream), lexer->stream.file, lexer->stream.line, lexer->stream.line_begin);
|
||||
}
|
||||
|
||||
@@ -228,7 +228,7 @@ lex_unwind_indent_stack(Token *t, Lex_Stream *s, Array<Token> *array){
|
||||
}
|
||||
|
||||
CORE_Static void
|
||||
lex__stream(Lexer *lexer){
|
||||
lex__stream(Parse_Ctx *lexer){
|
||||
Intern_Table *table = &lexer->interns;
|
||||
Array<Token> *array = &lexer->tokens;
|
||||
Lex_Stream *s = &lexer->stream;
|
||||
@@ -585,15 +585,8 @@ lex__stream(Lexer *lexer){
|
||||
#undef CASE3
|
||||
}
|
||||
|
||||
CORE_Static Lexer
|
||||
lex_make(Arena *token_string_arena, Arena *map_allocator){
|
||||
Lexer result = {};
|
||||
lex_init(token_string_arena, map_allocator, &result);
|
||||
return result;
|
||||
}
|
||||
|
||||
CORE_Static void
|
||||
lex_restream(Lexer *lexer, String istream, String file){
|
||||
lex_restream(Parse_Ctx *lexer, String istream, String file){
|
||||
lexer->stream = {};
|
||||
lexer->stream.stream = istream;
|
||||
lexer->stream.line_begin = istream.str;
|
||||
@@ -605,13 +598,6 @@ lex_restream(Lexer *lexer, String istream, String file){
|
||||
lex__stream(lexer);
|
||||
}
|
||||
|
||||
CORE_Static Lexer
|
||||
lex_stream(Arena *token_string_arena, Arena *map_allocator, String istream, String file){
|
||||
Lexer result = lex_make(token_string_arena, map_allocator);
|
||||
lex_restream(&result, istream, file);
|
||||
return result;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Token metadata
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user