     (set-marker marker nil))
   (blink-matching-open))
 
-
-
 (defun ioke-comment-region (beg end &optional arg)
   "Comment region for Io."
   (interactive "r\nP")
   (let ((comment-start ioke-region-comment-prefix))
     (comment-region beg end arg)))
 
+(defconst ioke-font-lock-syntactic-keywords
+      '(
+        ("#\\(\\[\\)\\([^]\\\\]\\|\\\\\\]\\|\\\\\\\\\\)*\\(\\]\\)" (1 "|" t) (3 "|" t))
+        ))
+
 (defun ioke-mode ()
-  "ioke (testing) mode"
+  "ioke mode"
   (interactive)
   (kill-all-local-variables)
   (set-syntax-table ioke-syntax-table)
   (use-local-map ioke-keymap)
+
   (make-local-variable 'font-lock-defaults)
-  (setq font-lock-defaults '(ioke-font-lock-keywords nil nil nil))
+  (setq font-lock-defaults '(ioke-font-lock-keywords nil nil))
+
+  (make-local-variable 'font-lock-syntax-table)
+  (setq font-lock-syntax-table ioke-syntax-table)
+
+  (make-local-variable 'font-lock-syntactic-keywords)
+  (setq font-lock-syntactic-keywords ioke-font-lock-syntactic-keywords)
+
   (set (make-local-variable 'indent-line-function) 'ioke-indent-line)
   (set (make-local-variable 'comment-start) "; ")
   (setq major-mode 'ioke-mode)

  :group 'ioke-font-lock-faces)

(defconst ioke-font-lock-regexp-face 'ioke-font-lock-regexp-face)

(defconst ioke-prototype-names '(
                                 "Base"


(defvar ioke-syntax-table
  (let ((st (make-syntax-table)))
    (modify-syntax-entry ?\( "()" st)
    (modify-syntax-entry ?\) ")(" st)
    (modify-syntax-entry ?\[ "(]" st)
    (modify-syntax-entry ?\] ")[" st)
    (modify-syntax-entry ?\{ "(}" st)
    (modify-syntax-entry ?\} "){" st)
    (modify-syntax-entry ?\; "<" st)
    (modify-syntax-entry ?? "w" st)
    (modify-syntax-entry ?! "w" st)
    (modify-syntax-entry ?: "w" st)
    (modify-syntax-entry ?, "." st)
    (modify-syntax-entry ?. "." st)
    (modify-syntax-entry ?\' "'" st)
    (modify-syntax-entry ?\` "'" st)
    (modify-syntax-entry ?\" "\"" st)
    (modify-syntax-entry ?\n ">" st)
    st)
  "ioke mode syntax table")
