Move compile result stuff out of specific stages.

This commit is contained in:
2025-08-27 21:55:01 +02:00
parent ab711b5610
commit da87209690
8 changed files with 288 additions and 317 deletions

View File

@@ -367,6 +367,7 @@ make_token :: (lexer : *Lexer, token_kind : Token_Kind) -> *Token {
skip_whitespace :: (lexer : *Lexer) {
while true {
if is_at_end(lexer) return;
c := peek_char(lexer);
if c == {
@@ -506,21 +507,19 @@ lex :: (result : *Compile_Result) {
return;
}
for *file : result.files {
lexer : Lexer;
init_lexer_from_string(*lexer, file.file.source);
lexer.path = file.file.path;
token : *Token = scan_next_token(*lexer);
while token && token.kind != .TOKEN_EOF {
token = scan_next_token(*lexer);
}
array_copy(*file.tokens.tokens, lexer.result.tokens);
result.had_error |= lexer.result.had_error;
// @Incomplete(nb): Temporary until we figure out a good way of passing this stuff around
copy_messages(lexer.result.messages, *result.messages);
lexer : Lexer;
init_lexer_from_string(*lexer, result.file.source);
lexer.path = result.file.path;
token : *Token = scan_next_token(*lexer);
while token && token.kind != .TOKEN_EOF {
token = scan_next_token(*lexer);
}
array_copy(*result.tokens.tokens, lexer.result.tokens);
result.had_error |= lexer.result.had_error;
// @Incomplete(nb): Temporary until we figure out a good way of passing this stuff around
copy_messages(lexer.result.messages, *result.messages);
}
lex :: (lexer : *Lexer, allocator : Allocator = context.allocator) -> Lexing_Result {