From 12a571b0ceb604ac77e75b31ec4bc072f2092f5e Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Tue, 27 Apr 2021 12:06:57 -0500 Subject: [PATCH] preparing for removing linear token dependence --- bin/onyx | Bin 353400 -> 353400 bytes src/onyxparser.c | 28 ++++++++++++---------------- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/bin/onyx b/bin/onyx index 0204302cc4d2657a896d51687f6484cea02eef60..e3ce621b06b47a32363c062fa84399bb31ea68ec 100755 GIT binary patch delta 47744 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

Qq8bQh4*Y>VKDEX!p#yJ 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 bkVLIRV77IuWQ!Sz+IIWl!XYEHX3GBqQRAhO delta 47741 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 zCq-yA0%)(allocator, sizeof(nclass), kind) +// :LinearTokenDependent #define peek_token(ahead) (parser->curr + ahead) static AstNode error_node = { Ast_Kind_Error, 0, NULL, NULL }; @@ -31,7 +32,6 @@ void submit_entity_in_scope(OnyxParser* parser, AstNode* node, Scope* scope, Pac // Parsing Utilities static void consume_token(OnyxParser* parser); -static void unconsume_token(OnyxParser* parser); static OnyxToken* expect_token(OnyxParser* parser, TokenType token_type); static b32 consume_token_if_next(OnyxParser* parser, TokenType token_type); static b32 next_tokens_are(OnyxParser* parser, i32 n, ...); @@ -73,18 +73,11 @@ static void consume_token(OnyxParser* parser) { if (parser->hit_unexpected_token) return; parser->prev = parser->curr; + // :LinearTokenDependent parser->curr++; while (parser->curr->type == Token_Type_Comment) parser->curr++; } -static void unconsume_token(OnyxParser* parser) { - if (parser->hit_unexpected_token) return; - - while (parser->prev->type == Token_Type_Comment) parser->prev--; - parser->curr = parser->prev; - parser->prev--; -} - static OnyxToken* find_matching_paren(OnyxToken* paren) { TokenType match = 0; switch ((u16) paren->type) { @@ -98,6 +91,7 @@ static OnyxToken* find_matching_paren(OnyxToken* paren) { i32 paren_count = 1; i32 i = 1; while (paren_count > 0) { + // :LinearTokenDependent TokenType type = (paren + i)->type; if (type == Token_Type_End_Stream) return NULL; @@ -107,6 +101,7 @@ static OnyxToken* find_matching_paren(OnyxToken* paren) { i++; } + // :LinearTokenDependent return paren + (i - 1); } @@ -120,6 +115,7 @@ static OnyxToken* expect_token(OnyxParser* parser, TokenType token_type) { if (token->type != token_type) { onyx_report_error(token->pos, "expected token '%s', got '%s'.", token_name(token_type), token_name(token->type)); parser->hit_unexpected_token = 1; + // :LinearTokenDependent parser->curr = &parser->tokenizer->tokens[bh_arr_length(parser->tokenizer->tokens) - 1]; return NULL; } @@ -212,16 +208,13 @@ static AstNumLit* parse_float_literal(OnyxParser* parser) { } static b32 parse_possible_directive(OnyxParser* parser, const char* dir) { - if (peek_token(0)->type != '#' || peek_token(1)->type != Token_Type_Symbol) return 0; + if (!next_tokens_are(parser, 2, '#', Token_Type_Symbol)) return 0; - expect_token(parser, '#'); - OnyxToken* sym = expect_token(parser, Token_Type_Symbol); + OnyxToken* sym = peek_token(1); b32 match = (strlen(dir) == (u64) sym->length) && (strncmp(dir, sym->text, sym->length) == 0); - if (!match) { - unconsume_token(parser); - unconsume_token(parser); - } + if (match) consume_tokens(parser, 2); + return match; } @@ -1592,6 +1585,7 @@ static AstType* parse_type(OnyxParser* parser) { case '(': { OnyxToken* matching = find_matching_paren(parser->curr); + // :LinearTokenDependent if ((matching + 1)->type == Token_Type_Right_Arrow) { *next_insertion = parse_function_type(parser, parser->curr); @@ -1961,6 +1955,7 @@ static b32 parse_possible_function_definition(OnyxParser* parser, AstTyped** ret OnyxToken* matching_paren = find_matching_paren(parser->curr); if (matching_paren == NULL) return 0; + // :LinearTokenDependent OnyxToken* token_after_paren = matching_paren + 1; if (token_after_paren->type != Token_Type_Right_Arrow && token_after_paren->type != '{' @@ -1968,6 +1963,7 @@ static b32 parse_possible_function_definition(OnyxParser* parser, AstTyped** ret && token_after_paren->type != Token_Type_Empty_Block) return 0; + // :LinearTokenDependent b32 is_params = (parser->curr + 1) == matching_paren; OnyxToken* tmp_token = parser->curr; while (!is_params && tmp_token < matching_paren) { -- 2.25.1