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 158 159
|
/**
* Name: matlab
* Description: Matlab programming language.
* Author: Jack Dunn <h.j.dunn@larc.nasa.gov>
*/
m_keyword_re =
/\b(break|cl(ear|ose)|e(nd|lse|lseif|rror)|f(or|unction)|if|keyboard|otherwise\
|quit|return|switch|while)\b/;
/* Taken fron the Matlab Function Reference, version 5.2 */
m_type_re =
/\b(abs|acopy|acos|acosh|acot|acoth|acsc|acsch|addpath|airy|all|and|angle|ans|any\
|arc(cosecant|cosine|cotangent|secant|sine|tangent)|area\
|arename|asech|asin|asinh|atan(|2)|atanh|axes|axis|balance|bar(|3|3h|h)\
|base2dec|bessel(h|i|j|k|y)|beta(|inc|ln)\
|bicgstab|bin2dec|bit(and|cmp|get|max|or|set|shift|xor)|blanks\
|box|brighten|builtin|calendar|cam(dolly|light|lookat|orbit|pan|pos|proj\
|roll|target|up|va|zoom)|capture|case|cat(|ch)|caxis|cd|cdf2rdf\
|cell(|2struct|plot)|cgs|char|chol(|inc|update)|cla(|bel|ss)\
|clc|clf|clock|col(mmd|or(bar|map)|perm)|com(bs|et|et3|pa(n|ss))|computer\
|cond(|eig|est)|conj|con(tour(|3|c|f))|contrast|conv(|2)|convhull|conv\
|copy(file|obj)|corrcoef|cos|cosh|cot|coth|cov|cplxpair|cputime|cross\
|csc|csch|cum(prod|trapz)|cylinder|daspect|date|date(num|str|vec)\
|db(clear|cont|down|mex|quit|stack|status|step|stop|type|up)\
|dd(eadv|eexec|einit|epoke|ereq|eterm|eunadv)|de(al|blank|(c2(base|bin|hex))\
|conv)|default4|del2|delaunay|de(lete|t)|diag|diary|diff|dir|disp\
|dlm(read|writ)|dmperm|double|dragrect|drawnow|dsearch|echo|eig|eigs|ellipj\
|ellipke|eomday|eps|erf(|c|cx)|etime|eval|evalin|exist|exp|expint|expm|eye\
|ezplot|factor|fclose|feather|feof|ferror|feval|fft(|2|n|shift)\
|fget(l|s)|fid|figflag|figure|fileparts|fill|fill3|filter(|2)|find(|obj|str)\
|fix|flip(dim|lr|ud)|floor|flops|fmin(|s)|fopen|format|fplot|fprintf\
|frame(2im|edit)|fread|freqspace|frewind|fscanf|fseek|ftell|full|funm|fwrite\
|fzero|gallery|gamma(|inc|ln)|g(ca|cd|cf|co)|gestalt|get(|field|frame)\
|ginput|global|gmres|gplot|gradient|graymon|grid(|data)|gsvd|gtext|hadamard\
|hankel|hdf|help|hess|hex2(dec|num)|hidden|hilb|hist|hold|home|horzcat\
|hsv2rgb|i|ifft(|2|n|shift)|im2frame|imag|image|imagesc|im(finfo|read|write)\
|ind2sub|Inf|inferiorto|inline|inpolygon|input|int2str|interp(1|2|3|ft|n)\
|intersect|inv|invhilb|ipermute|is(a|cell(|str)|char|empty|equal|field\
|finite|global|handle|hold|ieee|inf|letter|logical|member|nan|numeric\
|object|ppc|prime|real|space|sparse|str|struct|student|unix|vms)\
|j|kron|last(err|warn)|lcm|ldivide|legend(|re)|length|light(|angle|ing)\
|lin2mu|line|linspace|load|log(|10|2|ical)|loglog(|m|space)|lookfor\
|lower|lscov|lu|luinc|magic|mat2str|material|max|mean|median|menu\
|mesh(|c|grid|z)|min|minus|mislocked|mkdir|ml(divide|ock)|mod|more|movie(|in)\
|mpower|mrdivide|mtimes|mu2lin|munlock|NaN|narg(chk|in|out)|nd(grid|ims)\
|newplot|nextpow2|nnls|nnz|nonzeros|norm|normest|not|now|null|num2(cell|str)\
|nzmax|ode(45|file|get|set)|ones|or|orient|orth|pack|pagedlg|pareto|pascal\
|patch|path|pause|pbaspect|pcg|pcode|pcolor|perms|permute|persistent\
|pi|pie(|,3)|pinv|plot(|3|matrix|yy)|plus|pol2cart|polar|poly(|area|der\
|eig|fit|val|valm)|pow2|power|primes|print(|dlg|frame|opt)|prod\
|profile|qmr|qr(|delete|insert)|qtwrite|quad|quad8|quiver(|3)|qz\
|rand(|n|perm)|rank|rat(|s)|rbbox|rcond|rdivide|readsnd|real(|max|min)\
|recordsound|refresh|rem|repmat|reset|reshape|residue|rgb(2hsv|plot)\
|ribbon|rmfield|rmpath|roots|rose|rot90|rotate(|3d)|round|rref(|movie)\
|rsf2csf|save|scatter(|3)|schur|script|sech|semilog(x|y)|set(|diff|feild|xor)\
|shading|shiftdim|sign|sin|sinh|size|slice|sliders|sort|sortrows|sound(|cap)\
|sp(alloc|arse|convert|diags|eak|eye|fun|h2cart|here|inmap|line\
|ones|parms|rand|randn|randsym|rintf|y)|sqrt(|m)|squeeze|sscanf|stairs\
|startup|std|stem(|3)|str(2(cell|num)|cat|cmp|cmpi|ings|just|match|ncmp\
|ncmpi|rep|tok|uct2cell,vcat)|sub(2ind|plot|s(asgn|pace|ref))|sum|superiorto\
|surf(|ace|c|l|norm)|svd(|s)|sym(mmd|rcm)|tan|tanh|tempdir|tempname\
|terminal|text|tic|times|title|toc|toeplitz|trace|transpose|trapz\
|tri(l|mesh|surf|u)|try|tsearch|type|ui(control|getfile|menu|nt8|putfile\
|resume|setcolor|setfont)|uminus|union|unique|unwrap|uplus|upper|varargout\
|vectorize|ver(|sion|tcat)|view|viewmtx|voronoi|wait(bar|for(|buttonpress))\
|warndlg|warning|waterfall|wav(read|write)|weekday|what(|snew)|which|who(|s)\
|wilkinson|wk1(read|write)|writesnd|xlabel|xlgetrange|xlim|xlsetrange|xor\
|ylabel|ylim|zeros|zlabel|zlim|zoom\
)\b/;
state m_string extends Highlight
{
/\\\\./ {
language_print ($0);
}
/[\']/ {
language_print ($0);
return;
}
}
state matlab extends HighlightEntry
{
/* Comments. */
/%/ {
comment_face (true);
language_print ($0);
call (eat_one_line);
comment_face (false);
}
/* Continuation. */
/\.\.\./ {
keyword_face (true);
language_print ($0);
keyword_face (false);
}
/* Matrix start. */
/\[/ {
type_face (true);
language_print ($0);
type_face (false);
}
/* Matrix end. */
/\]/ {
type_face (true);
language_print ($0);
type_face (false);
}
m_type_re {
type_face (true);
language_print ($0);
type_face (false);
}
m_keyword_re {
keyword_face (true);
language_print($0);
keyword_face (false);
}
/* Transpose. */
/* variable' or )' */
/([a-zA-Z][a-zA-Z_0-9]*|\))([\'])/ {
language_print ($1);
keyword_face (true);
language_print ($2);
keyword_face (false);
}
/* ]' */
/([a-zA-Z][a-zA-Z_0-9]*|])([\'])/ {
type_face (true);
language_print ($1);
type_face (false);
keyword_face (true);
language_print ($2);
keyword_face (false);
}
/* Strings. */
/* 'any number of characters' */
/[\']/ {
string_face (true);
language_print ($0);
call (m_string);
string_face (false);
}
}
/*
Local variables:
mode: c
End:
*/
|