     table)
   "Slate character types")
 
-(defconst slate-array-face 'bold
-  "The face for Slate array braces.")
-(defconst slate-keyword-face 'bold
-  "The face for keywords in Slate message-sends.")
-
 (defconst bold 'bold
   "Emacs requires this; ugly.")
 


(defconst slate-globals-regexp
  (regexp-opt '("lobby" "True" "False" "Nil" "NoRole" "thisContext"
        "resend" "clone" "here" "it") 'words))

(defconst slate-binop-chars "-+*/\\~;<>=&?"
  "The collection of characters that can compose a Slate binary selector.")

(defconst slate-binop-regexp
  (concat "\\([" slate-binop-chars "]\\{1,3\\}\\|||\\)" slate-name-regexp "\\([" slate-binop-chars "]\\{1,3\\}\\|||\\)")
  "A regular expression that matches a Slate binary selector")

(defconst slate-keyword-regexp
  (concat "\\([-" slate-name-chars "_][-" slate-name-chars "_:]*:\\| :[^A-Za-z]\\)")
  "A regular expression that matches a Slate keyword")

(defconst slate-opt-keyword-regexp (concat "&" slate-keyword-regexp)

    (,(concat "[$]\\([^\\\\]\\|\\\\[^x]\\|\\\\x" hexdigit-regexp hexdigit-regexp "[^\\]\\)")
     . font-lock-string-face)        ; character
    ("[^#$\\]'\\(.\\|\'\\)*'" . font-lock-string-face) ; string
    (,(concat "`\\(" slate-binop-regexp "\\|" slate-name-regexp "[:]?\\)")
     . ,(if (boundp 'font-lock-preprocessor-face)
        'font-lock-preprocessor-face
      'font-lock-builtin-face)) ; macro call
    ("\\(=?:=\\|\\<^\\)\\>"
     . ,(if (boundp 'font-lock-preprocessor-face)
        'font-lock-preprocessor-face
      'font-lock-keyword-face)) ; assignment/match/unify/return specials
    ("`+"
     . ,(if (boundp 'font-lock-preprocessor-face)
        'font-lock-preprocessor-face
      'font-lock-builtin-face)) ; quotation syntax
    (,slate-opt-keyword-regexp
     . font-lock-variable-name-face)    ; optional keywords
    ("\\(?:_\\|[A-Za-z]+[_A-Za-z0-9]*\\)@+?"
     . font-lock-variable-name-face)    ; declaration dispatchings
    (,slate-keyword-regexp
     . font-lock-keyword-face) ; keyword sends
    ("|[A-Za-z0-9:&_*!() \n]*|"
     . font-lock-variable-name-face)    ; block local slots
    ("\\<\\(:\\|&\\|*\\)[A-Za-z0-9_]+"
