From: Brendan Hansen Date: Fri, 11 Jun 2021 18:51:19 +0000 (-0500) Subject: small lexer speedup and module updates X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=b0f24e0bbc901ce4379043577a40bc9a6f5c8af3;p=onyx.git small lexer speedup and module updates --- diff --git a/bin/onyx b/bin/onyx index baf357f2..e2a16a3c 100755 Binary files a/bin/onyx and b/bin/onyx differ diff --git a/modules/js_events/js_events.js b/modules/js_events/js_events.js index df3bb834..ddc9a95f 100644 --- a/modules/js_events/js_events.js +++ b/modules/js_events/js_events.js @@ -29,12 +29,16 @@ window.ONYX_MODULES.push({ document.addEventListener("keydown", function (ev) { if (ev.isComposing || ev.keyCode === 229) return; + ev.preventDefault(); push_event_to_buffer(esp, event_size, 0x04, [ ev.keyCode ]); + return false; }); document.addEventListener("keyup", function (ev) { if (ev.isComposing || ev.keyCode === 229) return; + ev.preventDefault(); push_event_to_buffer(esp, event_size, 0x05, [ ev.keyCode ]); + return false; }); document.addEventListener("mousedown", function (ev) { diff --git a/modules/ui/components/slider.onyx b/modules/ui/components/slider.onyx index 17789154..3a8bebfe 100644 --- a/modules/ui/components/slider.onyx +++ b/modules/ui/components/slider.onyx @@ -55,7 +55,8 @@ slider :: (use r: Rectangle, value: ^$T, min_value: T, max_value: T, text: str, .{ width - box_border_width * 2, height - box_border_width * 2 }, theme.box_border_color); - box_width := (width - box_border_width * 2) * ~~(*value - min_value) / cast(f32) (max_value - min_value); + box_width := cast(f32) (*value - min_value) / ~~(max_value - min_value); + box_width *= width - box_border_width * 2; box_width = math.clamp(box_width, 0, width - box_border_width * 2); gfx.rect( .{ x0 + box_border_width, y0 + box_border_width }, @@ -88,4 +89,4 @@ adjust_slider_value :: proc { *value = math.lerp(percent, min_value, max_value); *value = math.clamp(*value, min_value, max_value); }, -} \ No newline at end of file +} diff --git a/src/onyxlex.c b/src/onyxlex.c index 0437cb9d..99addd54 100644 --- a/src/onyxlex.c +++ b/src/onyxlex.c @@ -283,13 +283,7 @@ whitespace_skipped: if (*tokenizer->curr == '.') hit_decimal = 1; } - if (!hit_decimal && *(tokenizer->curr + 1) == 'l') { - tk.type = Token_Type_Literal_Integer; - - len++; - INCREMENT_CURR_TOKEN(tokenizer); - } - else if (*(tokenizer->curr + 1) == 'f') { + if (*(tokenizer->curr + 1) == 'f') { tk.type = Token_Type_Literal_Float; len++; @@ -392,15 +386,39 @@ whitespace_skipped: LITERAL_TOKEN("|=", 0, Token_Type_Or_Equal); break; - default: + case '=': LITERAL_TOKEN("==", 0, Token_Type_Equal_Equal); + break; + + case '!': LITERAL_TOKEN("!=", 0, Token_Type_Not_Equal); + break; + + case '+': LITERAL_TOKEN("+=", 0, Token_Type_Plus_Equal); + break; + + case '*': LITERAL_TOKEN("*=", 0, Token_Type_Star_Equal); + break; + + case '^': LITERAL_TOKEN("^=", 0, Token_Type_Xor_Equal); + break; + + case '/': LITERAL_TOKEN("/=", 0, Token_Type_Fslash_Equal); + break; + + case '%': LITERAL_TOKEN("%=", 0, Token_Type_Percent_Equal); + break; + + case '.': LITERAL_TOKEN("..", 0, Token_Type_Dot_Dot); + break; + + case '~': LITERAL_TOKEN("~~", 0, Token_Type_Tilde_Tilde); break; } @@ -442,7 +460,7 @@ OnyxTokenizer onyx_tokenizer_create(bh_allocator allocator, bh_file_contents *fc .tokens = NULL, }; - bh_arr_new(allocator, tknizer.tokens, 1 << 16); + bh_arr_new(allocator, tknizer.tokens, 1 << 12); return tknizer; }