diff --git a/undar-mode.el b/undar-mode.el
old mode 100644
new mode 100755
index 369a6b2..5bf599f
--- a/undar-mode.el
+++ b/undar-mode.el
@@ -1,95 +1,101 @@
-;;; undar-mode.el --- Major mode for editing Undar code -*- lexical-binding: t; -*-
-;; Copyright (C) 2025 zongor
-;;
-;; This program is free software: you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-;;
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-;;
-;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see .
-;;;
-
-(defvar undar-keywords
- '("function" "to" "in" "is" "as" "use" "if" "else" "default"
- "for" "try" "catch" "while" "do" "exit" "switch"
- "return" "const" "type" "this" "yield" "case"
- "assert" "break" "mod" "not" "and" "or" "print" "let"
- "band" "bor" "bxor" "srl" "sll")
- "Keywords in Undar.")
-
-(defvar undar-types
- '("byte" "str" "real" "bool"
- "int" "nat" "f32" "f64"
- "u8" "u16" "u32" "u64"
- "i8" "i16" "i32" "i64")
- "Types in Undar.")
-
-(defvar undar-constants
- '("true" "false" "nil")
- "Constants in Undar.")
-
-(defvar undar-font-lock-keywords
- `(
- ;; Keywords
- (,(regexp-opt undar-keywords 'words) . font-lock-keyword-face)
-
- ;; Types
- (,(regexp-opt undar-types 'words) . font-lock-type-face)
-
- ;; Constants
- (,(regexp-opt undar-constants 'words) . font-lock-constant-face)
-
- ;; Structs: CamelCase identifiers
- ("\\b[A-Z][a-zA-Z0-9_]*\\b" . font-lock-type-face)
-
- ;; Function definitions: "fn name(...)"
- ("\\_\\s-+\\(\\w+\\)(" (1 font-lock-function-name-face))
-
- ;; Function calls: "name(...)"
- ("\\_<\\([a-zA-Z_][a-zA-Z0-9_]*\\)\\s-*(" (1 font-lock-function-name-face))
-
- ;; Floating point numbers
- ("\\b-?[0-9]+\\.[0-9]+\\b" . font-lock-constant-face)
-
- ;; Integers
- ("\\b-?[0-9]+\\b" . font-lock-constant-face)
-
- ;; Strings with double quotes
- ("\"[^\"\n]*\"" . font-lock-string-face)
-
- ;; Strings with backticks
- ("`[^`]*`" . font-lock-string-face))
-
- "Font lock keywords for Undar mode.")
-
-(defvar undar-mode-syntax-table
- (let ((st (make-syntax-table)))
- ;; '/' starts a comment
- (modify-syntax-entry ?! "<" st)
- (modify-syntax-entry ?\n ">" st)
- ;; Strings
- (modify-syntax-entry ?\" "\"" st)
- (modify-syntax-entry ?` "\"" st)
- st)
- "Syntax table for Undar mode.")
-
-(define-derived-mode undar-mode prog-mode "Undâr"
- "Major mode for editing Undar code."
- :syntax-table undar-mode-syntax-table
- (setq-local font-lock-defaults '(undar-font-lock-keywords))
- (setq-local comment-start "! ")
- (setq-local comment-end "")
- (setq-local parse-sexp-ignore-comments t)
- (setq-local indent-line-function 'c-indent-line))
-
-;;;###autoload
-(add-to-list 'auto-mode-alist '("\\.ul\\'" . undar-mode))
-
-(provide 'undar-mode)
-;;; undar-mode.el ends here
+;;; undar-mode.el --- Major mode for editing Undar code -*- lexical-binding: t; -*-
+;; Copyright (C) 2025 zongor
+;;
+;; This program is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see .
+;;;
+
+(defvar undar-keywords
+ '("function" "to" "in" "is" "as" "use" "if" "else" "default"
+ "for" "try" "catch" "while" "do" "exit" "switch" "continue"
+ "return" "const" "type" "this" "yield" "case" "loop" "plex"
+ "assert" "break" "mod" "not" "and" "or" "print" "ref" "interface"
+ "implements" "impls" "band" "bor" "bxor" "srl" "sll")
+ "Keywords in Undar.")
+
+(defvar undar-types
+ '("byte" "str" "real" "bool"
+ "int" "nat" "f32" "void"
+ "u8" "u16" "u32"
+ "i8" "i16" "i32")
+ "Types in Undar.")
+
+(defvar undar-constants
+ '("true" "false" "nil")
+ "Constants in Undar.")
+
+(defvar undar-font-lock-keywords
+ `(
+ ;; Keywords
+ (,(regexp-opt undar-keywords 'words) . font-lock-keyword-face)
+
+ ;; Types
+ (,(regexp-opt undar-types 'words) . font-lock-type-face)
+
+ ;; Constants
+ (,(regexp-opt undar-constants 'words) . font-lock-constant-face)
+
+ ;; Structs: CamelCase identifiers
+ ("\\b[A-Z][a-zA-Z0-9_]*\\b" . font-lock-type-face)
+
+ ;; Function definitions: "function name(...)"
+ ("\\_\\s-+\\([\\w+\\)(" (1 font-lock-function-name-face))
+
+ ;; Numbers (Integers and Floats)
+ ("\\b-?[0-9]+\\(?:\\.[0-9]+\\)?\\(?:[eE][+-]?[0-9]+\\)?\\b" . font-lock-constant-face)
+
+ ;; Strings with double quotes
+ ("\"[^\"\n]*\"" . font-lock-string-face)
+
+ ;; Strings with backticks
+ ("`[^`\n]*`" . font-lock-string-face))
+ "Font lock keywords for Undar mode.")
+
+(defvar undar-mode-syntax-table
+ (let ((st (make-syntax-table)))
+ ;; C-style comments: // and /* */
+ ;; Clear potential existing syntax for / and * if needed (though default is usually fine initially)
+ ;; Clearing standard C++/C comment syntax if it was somehow set beforehand is generally not needed
+ ;; unless explicitly overridden elsewhere, so we rely on the default being clean.
+
+ ;; The crucial setup for both // and /* */ comments together:
+ ;; / is punctuation and starts both // (1, 2) and /* (4) comments
+ (modify-syntax-entry ?\/ ". 124" st)
+ ;; * is punctuation and part of /* */ (2, 3) and also part of // (b) comments (this is key for //)
+ (modify-syntax-entry ?* ". 23b" st)
+ ;; Newline ends comments (>) and is part of // comments (b) - essential for // to end correctly
+ (modify-syntax-entry ?\n ">" st)
+ ;; Strings
+ (modify-syntax-entry ?\" "\"" st)
+ (modify-syntax-entry ?` "\"" st)
+ st)
+ "Syntax table for Undar mode, using C-style comments (// and /* */).")
+
+(define-derived-mode undar-mode prog-mode "Undâr"
+ "Major mode for editing Undar code."
+ :syntax-table undar-mode-syntax-table
+ (setq-local font-lock-defaults '(undar-font-lock-keywords))
+ ;; Set comment syntax for commands like M-; (comment-dwim)
+ (setq-local comment-start "// ")
+ (setq-local comment-end "")
+ (setq-local comment-start-skip "\\(//+\\|/\\*+\\)\\s *")
+ ;; Ensure comments are ignored during parsing (e.g., for indentation)
+ (setq-local parse-sexp-ignore-comments t)
+ ;; Use C-style indentation function
+ (setq-local indent-line-function 'c-indent-line))
+
+;;;###autoload
+(add-to-list 'auto-mode-alist '("\\.ul\\'" . undar-mode))
+
+(provide 'undar-mode)
+;;; undar-mode.el ends here