From cf37b85db8c10cb4718bb92162a7aec09522f627 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Wed, 26 May 2021 22:48:30 -0500 Subject: [PATCH] updated docs and added notes to the lexer --- CHANGELOG | 4 ++++ bin/onyx | Bin 366072 -> 366072 bytes docs/module_thoughts | 2 ++ include/onyxlex.h | 2 ++ misc/onyx.sublime-syntax | 3 +++ src/onyxlex.c | 16 ++++++++++++++++ src/onyxparser.c | 4 +++- 7 files changed, 30 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 1b7b79e8..2cdf3e7c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -22,6 +22,10 @@ Additions: * logging allocator. Wraps any allocator and prints what kind of allocations are happening. * many math functions. * basics of reading environment variables +* Relative file inclusion using "./" at the start of the path +* Basics of "notes" in the code. Basically special comments that allow you to easily search in the code. + Currently this is not something very useful in the language, but I wanted a way to write searchable + notes without having to parse comments. The syntax is "@Note". Removals: diff --git a/bin/onyx b/bin/onyx index b0d63f12be1bc99483631ffa016291787b97e4a8..103360201a8ba16651c2920ade432d57f725fd12 100755 GIT binary patch delta 72607 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 delta 71871 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 L7A!K~_+0uwFY4sg diff --git a/docs/module_thoughts b/docs/module_thoughts index 592da54c..e56ab6b7 100644 --- a/docs/module_thoughts +++ b/docs/module_thoughts @@ -25,3 +25,5 @@ Things that need to be done in the compiler: If the string starts with './', it should be considered relative. This will make it easier for modules to include their files, regardless of how the project is set up. + + ✔ This has been done diff --git a/include/onyxlex.h b/include/onyxlex.h index 4d7bb280..bbb2d9a6 100644 --- a/include/onyxlex.h +++ b/include/onyxlex.h @@ -74,6 +74,8 @@ typedef enum TokenType { Token_Type_Literal_True, Token_Type_Literal_False, + Token_Type_Note, + Token_Type_Count, } TokenType; diff --git a/misc/onyx.sublime-syntax b/misc/onyx.sublime-syntax index 3a430881..950dddea 100644 --- a/misc/onyx.sublime-syntax +++ b/misc/onyx.sublime-syntax @@ -48,6 +48,9 @@ contexts: - match: '#[a-zA-Z_]+' scope: keyword.other.onyx + - match: '@[a-zA-Z0-9_]+' + scope: meta.toc-list.task-tag.note.onyx + - match: '\$[a-zA-Z0-9_]+' scope: constant.other.onyx diff --git a/src/onyxlex.c b/src/onyxlex.c index b244065c..da72ce08 100644 --- a/src/onyxlex.c +++ b/src/onyxlex.c @@ -71,6 +71,8 @@ static const char* token_type_names[] = { "true", "false", + "NOTE" + "TOKEN_TYPE_COUNT" }; @@ -250,6 +252,20 @@ whitespace_skipped: goto token_parsed; } + if (*tokenizer->curr == '@') { + INCREMENT_CURR_TOKEN(tokenizer); + u32 len = 2; + while (char_is_alphanum(*(tokenizer->curr + 1)) || *(tokenizer->curr + 1) == '_') { + len++; + INCREMENT_CURR_TOKEN(tokenizer); + } + + tk.type = Token_Type_Note; + tk.length = len; + INCREMENT_CURR_TOKEN(tokenizer); + goto token_parsed; + } + // Number literal if (char_is_num(*tokenizer->curr) || (*(tokenizer->curr) == '.' && char_is_num(*(tokenizer->curr + 1)))) { diff --git a/src/onyxparser.c b/src/onyxparser.c index 0b7195c6..3b94e85c 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -75,7 +75,8 @@ static void consume_token(OnyxParser* parser) { parser->prev = parser->curr; // :LinearTokenDependent parser->curr++; - while (parser->curr->type == Token_Type_Comment) parser->curr++; + while (parser->curr->type == Token_Type_Comment || parser->curr->type == Token_Type_Note) + parser->curr++; } static OnyxToken* find_matching_paren(OnyxToken* paren) { @@ -144,6 +145,7 @@ static b32 next_tokens_are(OnyxParser* parser, i32 n, ...) { i32 matched = 1; + // BUG: This does not take into consideration comments and notes that can occur between any tokens. fori (i, 0, n) { TokenType expected_type = va_arg(va, TokenType); if (peek_token(i)->type != expected_type) { -- 2.25.1