1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
|
/**
* Name: tcl
* Description: Tcl programming language.
* Author: Markku Rossi <mtr@iki.fi>
*/
state tcl_comment extends Highlight
{
/[^\\\\]\n/ {
language_print ($0);
return;
}
}
state tcl_proc_arglist extends Highlight
{
/* List of arguments. */
/{/ {
language_print ($0);
variable_name_face (true);
str = match_balanced_block (/{/, /}/);
variable_name_face (false);
language_print (str);
return;
}
/* Only one argument. */
/[A-Za-z0-9]+/ {
variable_name_face (true);
language_print ($0);
variable_name_face (false);
return;
}
/* No idea what this is??? */
/[.\n]/ {
language_print ($0);
return;
}
}
state tcl extends HighlightEntry
{
/* Comments. */
/#/ {
comment_face (true);
language_print ($0);
call (tcl_comment);
comment_face (false);
}
/#\n/ {
comment_face (true);
language_print ($0);
comment_face (false);
}
/* String constants. */
/\"/ {
string_face (true);
language_print ($0);
call (c_string);
string_face (false);
}
/* Procedure definitions. */
/\b(proc)([ \t]+)([A-Za-z_0-9]+)([ \t]+)/ {
/* Keyword `proc'. */
keyword_face (true);
language_print ($1);
keyword_face (false);
/* Middle garbage. */
language_print ($2);
/* Function name. */
function_name_face (true);
language_print ($3);
function_name_face (false);
/* Second middle garbage. */
language_print ($4);
/* Function argument list. */
call (tcl_proc_arglist);
}
/* Simple variable reference. */
/(\$)([A-Za-z_0-9]+)/ {
language_print ($1);
variable_name_face (true);
language_print ($2);
variable_name_face (false);
}
/* {}-enclosed variable reference. */
/\${/ {
language_print ($0);
variable_name_face (true);
str = match_balanced_block (/{/, /}/);
variable_name_face (false);
language_print (str);
}
/* Keywords.
(build-re '(
;; Tcl:
Http Tcl after append array bgerror break case catch cd clock
concat continue eof error eval exec exit expr fblocked fconfigure file
fileevent filename flush for foreach format gets glob global history
if incr info interp join lappend library lindex linsert list llength
load lose lrange lreplace lsearch lsort open package pid pkg_mkIndex
proc puts pwd read regexp regsub rename return scan seek set socket
source split string subst switch tclvars tell time trace unknown unset
update uplevel upvar vwait while
;; Tk:
bell bind bindtags bitmap button canvas checkbutton clipboard destroy
entry event focus font frame grab grid image label listbox lower menu
menubutton message option options pack photo place radiobutton raise
scale scrollbar selection send text tk tk_bindForTraversal tk_bisque
tk_chooseColor tk_dialog tk_focusFollowsMouse tk_focusNext
tk_focusPrev tk_getOpenFile tk_getSaveFile tk_menuBar tk_messageBox
tk_optionMenu tk_popup tk_setPalette tkerror tkvars tkwait toplevel
winfo wm
))
*/
/\b(Http|Tcl|a(fter|ppend|rray)\
|b(ell|gerror|i(nd(|tags)|tmap)|reak|utton)\
|c(a(nvas|se|tch)|d|heckbutton|l(ipboard|ock)|on(cat|tinue))|destroy\
|e(ntry|of|rror|v(al|ent)|x(ec|it|pr))\
|f(blocked|configure|ile(|event|name)|lush|o(cus|nt|r(|each|mat))|rame)\
|g(ets|lob(|al)|r(ab|id))|history|i(f|mage|n(cr|fo|terp))|join\
|l(a(bel|ppend|st)|i(brary|n(dex|sert)|st(|box))|length|o(ad|se|wer)\
|r(ange|eplace)|s(earch|ort))\
|me(nu(|button)|ssage)|op(en|tion(|s))\
|p(ack(|age)|hoto|id|kg_mkIndex|lace|roc|uts|wd)\
|r(a(diobutton|ise)|e(ad|g(exp|sub)|name|turn))\
|s(c(a(le|n)|rollbar)|e(ek|lection|nd|t)|o(cket|urce)|plit|tring|ubst\
|witch)\
|t(clvars|e(ll|xt)|ime\
|k(\
|_(bi(ndForTraversal|sque)|chooseColor|dialog\
|focus(FollowsMouse|Next|Prev)|get(OpenFile|SaveFile)\
|me(nuBar|ssageBox)|optionMenu|popup|setPalette)\
|error|vars|wait)\
|oplevel|race)\
|u(n(known|set)|p(date|level|var))|vwait|w(hile|info|m))\b/ {
keyword_face (true);
language_print ($0);
keyword_face (false);
}
}
/*
Local variables:
mode: c
End:
*/
|