;; look in ../share/emacs/20.3/etc/rgb.txt for more colors
(hilit-set-mode-patterns
 'python-mode
 '(
   ;; comments 
   ("^\\([#].*$\\)" nil lightgreen)
   ("[ \t][#][ \t].*$" nil orange)
   ;; top level definitions
   ("^\\(class\\|def\\|import\\) +.*$" nil green)

   ;; strings
   (hilit-string-find ?' moccasin)
   ("'[^']*'" nil moccasin)

   ;; errors
   ("yeild" nil red)

   ;; reserved classes of identifiers
   ("__[a-zA-Z_]+__" nil LightBlue)
   ("_[a-zA-Z_]+" nil LightBlue)
   ("__[a-zA-Z_]+" nil LightBlue)

   ;; key words 
   ("\\<\\(and\\|assert\\|break\\|class\\|continue\\|def\\|del\\|elif\\|else\\|except\\|exec\\|finally\\|for\\|from\\|global\\|if\\|import\\|in\\|is\\|lambda\\|not\\|or\\|pass\\|print\\|raise\\|return\\|try\\|while\\|yield\\)\\>"
    nil cyan)

   ;; built-in functions from
   ;; python -c 'print __builtins__.__dict__' | sed "s/built-in function/\n/g" | sed 's/>.*$//' |joinlines | perl -pe 's/ +/\\\\|/g'
   ("\\<\\(cmp\\|dir\\|round\\|str\\|range\\|reload\\|compile\\|list\\|raw_input\\|setattr\\|long\\|delattr\\|hasattr\\|ord\\|eval\\|__import__\\|callable\\|len\\|repr\\|max\\|buffer\\|tuple\\|hash\\|filter\\|map\\|type\\|input\\|abs\\|chr\\|complex\\|execfile\\|hex\\|min\\|xrange\\|slice\\|locals\\|id\\|open\\|isinstance\\|apply\\|divmod\\|issubclass\\|globals\\|intern\\|coerce\\|getattr\\|reduce\\|float\\|pow\\|int\\|vars\\|oct\\)\\>"
    nil cyan)

   ;; built-in Exceptions from
   ;; python -c 'print __builtins__.__dict__' | sed "s/class exceptions\./\n/g" | sed 's/ at.*$//' |joinlines | perl -pe 's/ +/\\\\|/g'
   ("\\<\\(AttributeError\\|NotImplementedError\\|SystemExit\\|OSError\\|SyntaxError\\|OverflowError\\|FloatingPointError\\|KeyboardInterrupt\\|IndexError\\|AssertionError\\|ZeroDivisionError\\|StandardError\\|IOError\\|SystemError\\|LookupError\\|NameError\\|ValueError\\|EOFError\\|TypeError\\|ArithmeticError\\|Exception\\|EnvironmentError\\|ImportError\\|KeyError\\|RuntimeError\\|MemoryError\\)\\>"
    nil cyan)

   ;; Other built-ins
   ("\\<None\\>" nil cyan)
   ("\\.\\.\\." nil cyan)
   
   ;; to avoid being changed to blue next
   ("[(]" nil white)

   ;; methods
   ("\\<\\([A-Za-z_0-9]+\\)[ \t]*[(]" nil SkyBlue)

   ;; members
   ("\\.[a-zA-Z0-9]+" nil gray80)
   ("\\<self\\>" nil gray80)

   ;; literals
   ("\\<[0-9]+l\\>" nil red)
   ("\\<[0-9]+L\\>" nil gray80)
   ("\\<0[0-7]+L?\\>" nil gray80)
   ("\\<0[xX][0-9a-fA-F]+l\\>" nil red)
   ("\\<0[xX][0-9a-fA-F]+L?\\>" nil gray80)

   )
 )
;; 
