               (forward-line -1)
             (setq stop 'true))))
       ;; +1 for each open parenthesis
-      ;; -1 for each closed parenthesis and ;
+      ;; -1 for each closed parenthesis
+      ;; TODO: this considers also parentheses in comments, but it shouldn't
       (setq cur-indent
             (- (count-matches "[[{(]"  (point) cur-point)
                (count-matches "[]})]" (point) cur-point))))

;;
;; Define token classes and regular expressions
;;
(defconst buzz-identifier-regexp "[[:alnum:]_]+"
  "Regexp matching a Buzz identifier")
;; Keywords
(setq buzz-keywords '("var" "nil" "if" "else" "function" "return" "for" "while" "and" "or" "not"))
(setq buzz-keywords-regexp (regexp-opt buzz-keywords 'words))

  (beginning-of-line)
  ;; Save current position
  (setq cur-point (point))
  ;; Setup variables and execute stuff
  ;; cur-indent: is the current line indentation level
  ;; stop: when true, stop moving back one line
  (let ((cur-indent 0) (stop nil))
    ;; Save current point in buffer and execute commands
    (save-excursion
