small lexer speedup and module updates
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Fri, 11 Jun 2021 18:51:19 +0000 (13:51 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Fri, 11 Jun 2021 18:51:19 +0000 (13:51 -0500)
bin/onyx
modules/js_events/js_events.js
modules/ui/components/slider.onyx
src/onyxlex.c

index baf357f2e776af2aff32b29c1a1c80f8ee49654f..e2a16a3c5f2ae7b95c1315812291b60944cca81d 100755 (executable)
Binary files a/bin/onyx and b/bin/onyx differ
index df3bb834626dfb6f15139b5befb3649b696210dc..ddc9a95f1f536a657646426e79fe506478b576c8 100644 (file)
@@ -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) {
index 177891545ee526da942f2ded7d30d3c3d61046bf..3a8bebfe09ac909098c2f1906f66e3019e8a6488 100644 (file)
@@ -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
+}
index 0437cb9d20dc495b8f9342a85e21777b839cc756..99addd5498b1e085e04e65852d459ca7ae264408 100644 (file)
@@ -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;
 }