Move compile result stuff out of specific stages.
This commit is contained in:
27
Lexing.jai
27
Lexing.jai
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user