/////////////////////////////
// maybe lisp[xyzzy] colors
/////////////////////////////

window.onload = function (){
  var C = document.getElementsByTagName ('pre');
  var pat =[// string
            [/(\".+?\")/gi ,
             '<span class="cl_string">$1<span>'],
            // comment
            [/(;;.+)/gi ,
             '<span class="cl_comment">$1</span>'],
            // car function
            // [/\((atom|cons|eq|eql|equal|car|cdr|nth|nthcdr|apply|funcall|lambda|list|defun|defmacro|defvar|setq|setf|let|if|when|unless|and|or|not|null|interactive|while|loop|cond|return|return-from|progn|prog|prog*|mapc|mapcar|mapcon|mapcan|mapl|maplist|do|do*|dolist|dotimes|push|pop)/gi,
            [/\(([^ ()#\"<>]+)/gi ,
             '\(<span class="cl_func">$1</span>'],
            // special variable
            [/(\*[^\* ]*?\*)/gi ,
             '<span class="cl_sp_var">$1</span>'],
            // keyword symbol
            [/([(\t ]:[^ ]+)/gi,
             '<span class="cl_key_sym">$1</span>'],
            // char
            [/(#\\[^ \)]+)/gi ,
             '<span class="cl_char">$1</span>'],
            // brackets
            [/(\(+|\)+)/gi ,
             '<span class="cl_paren">$1</span>']
           ];

    for (i=0;i<C.length;i++){
      if (C[i].parentNode.className == "lisp"){
        for (j=0;j<pat.length;j++){
          C[i].innerHTML=C[i].innerHTML.replace(pat[j][0],pat[j][1]);
        }}}
        focus();
};
