1<?php
2/*************************************************************************************
3 * octave.php
4 * -----------
5 * Author: Carnë Draug (carandraug+dev@gmail.com)
6 *         Juan Pablo Carbajal (carbajal@ifi.uzh.ch)
7 * Copyright: (c) 2012 Carnë Draug
8 *            (c) 2012 Juan Pablo Carbajal
9 * Release Version: 1.0.9.1
10 * Date Started: 2012/05/22
11 *
12 * GNU/Octave M-file language file for GeSHi.
13 *
14 * This file was heavily based on octave.lang from gtksourceview. If bugs are
15 * found and/or fixed on this file, please send them to the gtksourceview
16 * project or e-mail them to this file authors. Thanks in advance
17 *
18 * CHANGES
19 * -------
20 * 2012/05/22 (1.0.8.11)
21 *   -  First Release
22 *
23 *************************************************************************************
24 *
25 *     This file is part of GeSHi.
26 *
27 *   GeSHi is free software; you can redistribute it and/or modify
28 *   it under the terms of the GNU General Public License as published by
29 *   the Free Software Foundation; either version 2 of the License, or
30 *   (at your option) any later version.
31 *
32 *   GeSHi is distributed in the hope that it will be useful,
33 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
34 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
35 *   GNU General Public License for more details.
36 *
37 *   You should have received a copy of the GNU General Public License
38 *   along with GeSHi; if not, write to the Free Software
39 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
40 *
41 ************************************************************************************/
42
43$language_data = array (
44    'LANG_NAME' => 'GNU/Octave',
45    'COMMENT_SINGLE' => array(1 => '#', 2 => '%'),
46    // we can't use COMMENT_MULTI since start and end of block comments need to
47    // be alone on the line (optionally, with whitespace). See COMMENT_REGEXP
48    'COMMENT_MULTI' => array(),
49    // we can't use QUOTEMARKS, not even HARDQUOTE, see COMMENT_REGEXP
50    'QUOTEMARKS' => array(),
51    'ESCAPE_CHAR' => '',
52    'COMMENT_REGEXP' => array(
53        // Single quote strings: we can't use QUOTEMARKS here since new
54        // lines will break the string. Plus, single quote strings do not even
55        // allow for continuation markers, only double quote strings allow it.
56        // Also, to do not misdetect the transpose operator ' as the start of a
57        // string we assert to not follow a variable name (letters, digits and
58        // underscores) or a closing bracket (round, square or curly) or a dot
59        // (to form the array transpose operator ".'" ).
60        3 => "/(?<![0-9a-zA-Z_\)\]}\.])'.*?'/",
61        // Double quote strings: we also can't use QUOTEMARKS here (see single
62        // line quotes). However, with double quote strings both \ and ... can
63        // be used to make multiline strings. Continuation markers can be
64        // followed by whitespace
65        4 => '/"(.|(\.\.\.|\\\)(\s)*?\n)*?(?<!\\\)"/',
66        // Block comments: the ms modifiers treat strings as multiple lines (to
67        // be able to use ^ and $ instead of newline and thus support block
68        // comments on the first and last line of source) and make . also match
69        // a newline
70        5 => "/^\s*?[%#]{\s*?$.*?^\s*?[%#]}\s*?$/ms",
71        // Packaging system: comes here so that pkg can also be used in the
72        // function form. The list of pkg commands is optional to the match so
73        // that at least pkg is highlighted if new commands are implemented
74        6 => "/\bpkg(?!\s*\()\s+((un)?install|update|(un)?load|list|(global|local)_list|describe|prefix|(re)?build)?\b/",
75        // Function handles
76        7 => "/@([a-z_][a-z1-9_]*)?/i",
77        ),
78    'NUMBERS' =>
79        GESHI_NUMBER_INT_BASIC |
80        GESHI_NUMBER_OCT_PREFIX |
81        GESHI_NUMBER_HEX_PREFIX |
82        GESHI_NUMBER_FLT_SCI_ZERO,
83    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
84    'KEYWORDS' => array(
85        // Reserved words
86        1 => array(
87            'break', 'case', 'catch', 'continue', 'do', 'else', 'elseif', 'end',
88            'end_try_catch', 'end_unwind_protect', 'endfor', 'endfunction',
89            'endif', 'endparfor', 'endswitch', 'endwhile', 'for', 'function',
90            'if', 'otherwise', 'parfor', 'return',
91            'switch', 'try', 'until', 'unwind_protect',
92            'unwind_protect_cleanup', 'varargin', 'varargout', 'while'
93            ),
94        // Storage type
95        2 => array(
96            'global', 'persistent', 'static'
97            ),
98        // Internal variable
99        3 => array(
100            'ans'
101            ),
102        // Data types
103        4 => array(
104            'cell', 'char', 'double', 'uint8', 'uint16', 'uint32', 'uint64',
105            'int8','int16', 'int32', 'int64', 'logical', 'single', 'struct'
106            ),
107        // Built in
108        5 => array(
109            'P_tmpdir', 'abs', 'acos', 'acosh',
110            'add_input_event_hook', 'addlistener', 'addpath', 'addproperty',
111            'all', 'allow_noninteger_range_as_index', 'and', 'angle', 'any',
112            'arg', 'argnames', 'argv', 'asin', 'asinh', 'assignin', 'atan',
113            'atan2', 'atanh', 'atexit', 'autoload', 'available_graphics_toolkits',
114            'beep_on_error', 'bitand', 'bitmax', 'bitor', 'bitshift', 'bitxor',
115            'builtin', 'canonicalize_file_name', 'cat', 'cbrt', 'cd', 'ceil',
116            'cell2struct', 'cellstr', 'chdir', 'class', 'clc',
117            'clear', 'columns', 'command_line_path', 'completion_append_char',
118            'completion_matches', 'complex', 'confirm_recursive_rmdir', 'conj',
119            'cos', 'cosh', 'cputime', 'crash_dumps_octave_core', 'ctranspose',
120            'cumprod', 'cumsum', 'dbclear', 'dbcont', 'dbdown', 'dbnext',
121            'dbquit', 'dbstack', 'dbstatus', 'dbstep', 'dbstop', 'dbtype', 'dbup',
122            'dbwhere', 'debug_on_error', 'debug_on_interrupt', 'debug_on_warning',
123            'default_save_options', 'dellistener', 'diag', 'diary', 'diff',
124            'disp', 'do_braindead_shortcircuit_evaluation', 'do_string_escapes',
125            'doc_cache_file', 'drawnow', 'dup2', 'echo',
126            'echo_executing_commands', 'edit_history','eq', 'erf', 'erfc',
127            'erfcx', 'erfinv', 'errno', 'errno_list', 'error', 'eval', 'evalin',
128            'exec', 'exist', 'exit', 'exp', 'expm1', 'eye', 'fclear',
129            'fclose', 'fcntl', 'fdisp', 'feof', 'ferror', 'feval', 'fflush',
130            'fgetl', 'fgets', 'fieldnames', 'file_in_loadpath', 'file_in_path',
131            'filemarker', 'filesep', 'find_dir_in_path', 'finite', 'fix',
132            'fixed_point_format', 'floor', 'fmod', 'fnmatch', 'fopen', 'fork',
133            'format', 'formula', 'fprintf', 'fputs', 'fread', 'freport',
134            'frewind', 'fscanf', 'fseek', 'fskipl', 'ftell', 'full', 'func2str',
135            'functions', 'fwrite', 'gamma', 'gammaln', 'ge', 'genpath', 'get',
136            'get_help_text', 'get_help_text_from_file', 'getegid', 'getenv',
137            'geteuid', 'getgid', 'gethostname', 'getpgrp', 'getpid', 'getppid',
138            'getuid', 'glob', 'gt', 'history', 'history_control', 'history_file',
139            'history_size', 'history_timestamp_format_string', 'home', 'horzcat',
140            'hypot', 'ifelse', 'ignore_function_time_stamp', 'imag',
141            'inferiorto', 'info_file', 'info_program', 'inline', 'input',
142            'intmax', 'intmin', 'ipermute',
143            'is_absolute_filename', 'is_dq_string', 'is_function_handle',
144            'is_rooted_relative_filename', 'is_sq_string', 'isalnum', 'isalpha',
145            'isargout', 'isascii', 'isbool', 'iscell', 'iscellstr', 'ischar',
146            'iscntrl', 'iscomplex', 'isdebugmode', 'isdigit', 'isempty',
147            'isfield', 'isfinite', 'isfloat', 'isglobal', 'isgraph', 'ishandle',
148            'isieee', 'isindex', 'isinf', 'isinteger', 'iskeyword', 'islogical',
149            'islower', 'ismatrix', 'ismethod', 'isna', 'isnan', 'isnull',
150            'isnumeric', 'isobject', 'isprint', 'ispunct', 'isreal', 'issorted',
151            'isspace', 'issparse', 'isstruct', 'isupper', 'isvarname', 'isxdigit',
152            'kbhit', 'keyboard', 'kill', 'lasterr', 'lasterror', 'lastwarn',
153            'ldivide', 'le', 'length', 'lgamma', 'link', 'linspace',
154            'list_in_columns', 'load', 'loaded_graphics_toolkits', 'log', 'log10',
155            'log1p', 'log2', 'lower', 'lstat', 'lt',
156            'make_absolute_filename', 'makeinfo_program', 'max_recursion_depth',
157            'merge', 'methods', 'mfilename', 'minus', 'mislocked',
158            'missing_function_hook', 'mkdir', 'mkfifo', 'mkstemp', 'mldivide',
159            'mlock', 'mod', 'more', 'mpower', 'mrdivide', 'mtimes', 'munlock',
160            'nargin', 'nargout', 'native_float_format', 'ndims', 'ne',
161            'nfields', 'nnz', 'norm', 'not', 'nth_element', 'numel', 'nzmax',
162            'octave_config_info', 'octave_core_file_limit',
163            'octave_core_file_name', 'octave_core_file_options',
164            'octave_tmp_file_name', 'onCleanup', 'ones',
165            'optimize_subsasgn_calls', 'or', 'output_max_field_width',
166            'output_precision', 'page_output_immediately', 'page_screen_output',
167            'path', 'pathsep', 'pause', 'pclose', 'permute', 'pipe', 'plus',
168            'popen', 'popen2', 'power', 'print_empty_dimensions',
169            'print_struct_array_contents', 'printf', 'prod',
170            'program_invocation_name', 'program_name', 'putenv', 'puts', 'pwd',
171            'quit', 'rats', 'rdivide', 're_read_readline_init_file',
172            'read_readline_init_file', 'readdir', 'readlink', 'real', 'realmax',
173            'realmin', 'register_graphics_toolkit', 'rehash', 'rem',
174            'remove_input_event_hook', 'rename', 'repelems', 'reset', 'reshape',
175            'resize', 'restoredefaultpath', 'rethrow', 'rmdir', 'rmfield',
176            'rmpath', 'round', 'roundb', 'rows', 'run_history', 'save',
177            'save_header_format_string', 'save_precision', 'saving_history',
178            'scanf', 'set', 'setenv', 'sighup_dumps_octave_core', 'sign',
179            'sigterm_dumps_octave_core', 'silent_functions', 'sin',
180            'sinh', 'size', 'size_equal', 'sizemax', 'sizeof', 'sleep', 'sort',
181            'source', 'spalloc', 'sparse', 'sparse_auto_mutate',
182            'split_long_rows', 'sprintf', 'sqrt', 'squeeze', 'sscanf', 'stat',
183            'stderr', 'stdin', 'stdout', 'str2func', 'strcmp', 'strcmpi',
184            'string_fill_char', 'strncmp', 'strncmpi', 'struct2cell',
185            'struct_levels_to_print', 'strvcat', 'subsasgn', 'subsref', 'sum',
186            'sumsq', 'superiorto', 'suppress_verbose_help_message', 'symlink',
187            'system', 'tan', 'tanh', 'terminal_size', 'tic', 'tilde_expand',
188            'times', 'tmpfile', 'tmpnam', 'toascii', 'toc', 'tolower', 'toupper',
189            'transpose', 'typeinfo',
190            'umask', 'uminus', 'uname', 'undo_string_escapes', 'unlink',
191            'uplus', 'upper', 'usage', 'usleep', 'vec', 'vectorize', 'vertcat',
192            'waitfor', 'waitpid', 'warning', 'warranty', 'who', 'whos',
193            'whos_line_format', 'yes_or_no', 'zeros'
194            ),
195        // Octave functions
196        6 => array(
197            'accumarray', 'accumdim', 'acosd', 'acot', 'acotd', 'acoth', 'acsc',
198            'acscd', 'acsch', 'addpref', 'addtodate', 'allchild', 'amd',
199            'ancestor', 'anova', 'arch_fit', 'arch_rnd', 'arch_test',
200            'area', 'arma_rnd', 'asctime', 'asec', 'asecd', 'asech', 'asind',
201            'assert', 'atand', 'autoreg_matrix', 'autumn',
202            'axes', 'axis', 'balance', 'bar', 'barh', 'bartlett', 'bartlett_test',
203            'base2dec', 'beep', 'bessel', 'besselj', 'beta', 'betacdf',
204            'betainc', 'betainv', 'betaln', 'betapdf', 'betarnd', 'bicg',
205            'bicgstab', 'bicubic', 'bin2dec', 'bincoeff', 'binocdf', 'binoinv',
206            'binopdf', 'binornd', 'bitcmp', 'bitget', 'bitset', 'blackman',
207            'blanks', 'blkdiag', 'bone', 'box', 'brighten', 'bsxfun',
208            'bug_report', 'bunzip2', 'bzip2', 'calendar', 'cart2pol', 'cart2sph',
209            'cast', 'cauchy_cdf', 'cauchy_inv', 'cauchy_pdf', 'cauchy_rnd',
210            'caxis', 'ccolamd', 'cell2mat', 'celldisp', 'cellfun',
211            'center', 'cgs', 'chi2cdf', 'chi2inv', 'chi2pdf', 'chi2rnd',
212            'chisquare_test_homogeneity', 'chisquare_test_independence', 'chol',
213            'chop', 'circshift', 'cla', 'clabel', 'clf', 'clock',
214            'cloglog', 'close', 'closereq', 'colamd', 'colloc', 'colon',
215            'colorbar', 'colormap', 'colperm', 'colstyle', 'comet', 'comet3',
216            'comma', 'common_size', 'commutation_matrix', 'compan',
217            'compare_versions', 'compass', 'computer', 'cond', 'condest',
218            'contour', 'contour3', 'contourc', 'contourf', 'contrast', 'conv',
219            'conv2', 'convhull', 'convhulln', 'cool', 'copper', 'copyfile',
220            'cor_test', 'corr', 'cosd', 'cot', 'cotd', 'coth', 'cov',
221            'cplxpair', 'cross', 'csc', 'cscd', 'csch', 'cstrcat',
222            'csvread', 'csvwrite', 'ctime', 'cumtrapz', 'curl', 'cylinder',
223            'daspect', 'daspk', 'dasrt', 'dassl', 'date', 'datenum', 'datestr',
224            'datetick', 'datevec', 'dblquad', 'deal', 'deblank', 'debug',
225            'dec2base', 'dec2bin', 'dec2hex', 'deconv', 'del2', 'delaunay',
226            'delaunay3', 'delaunayn', 'delete', 'demo', 'det', 'detrend',
227            'diffpara', 'diffuse', 'dir', 'discrete_cdf', 'discrete_inv',
228            'discrete_pdf', 'discrete_rnd', 'display', 'divergence',
229            'dlmread', 'dlmwrite', 'dmperm', 'doc', 'dos', 'dot', 'dsearch',
230            'dsearchn', 'dump_prefs', 'duplication_matrix', 'durbinlevinson',
231            'edit', 'eig', 'eigs', 'ellipsoid', 'empirical_cdf', 'empirical_inv',
232            'empirical_pdf', 'empirical_rnd', 'eomday', 'errorbar',
233            'etime', 'etreeplot', 'example', 'expcdf', 'expinv', 'expm', 'exppdf',
234            'exprnd', 'ezcontour', 'ezcontourf', 'ezmesh', 'ezmeshc', 'ezplot',
235            'ezplot3', 'ezpolar', 'ezsurf', 'ezsurfc', 'f_test_regression',
236            'fact', 'factor', 'factorial', 'fail', 'fcdf', 'feather', 'fft',
237            'fft2', 'fftconv', 'fftfilt', 'fftn', 'fftshift', 'fftw', 'figure',
238            'fileattrib', 'fileparts', 'fileread', 'fill', 'filter', 'filter2',
239            'find', 'findall', 'findobj', 'findstr', 'finv', 'flag', 'flipdim',
240            'fliplr', 'flipud', 'fminbnd', 'fminunc', 'fpdf', 'fplot',
241            'fractdiff', 'freqz', 'freqz_plot', 'frnd', 'fsolve',
242            'fullfile', 'fzero', 'gamcdf', 'gaminv', 'gammainc',
243            'gampdf', 'gamrnd', 'gca', 'gcbf', 'gcbo', 'gcd', 'gcf',
244            'gen_doc_cache', 'genvarname', 'geocdf', 'geoinv', 'geopdf', 'geornd',
245            'get_first_help_sentence', 'getappdata', 'getfield', 'getgrent',
246            'getpref', 'getpwent', 'getrusage', 'ginput', 'givens', 'glpk',
247            'gls', 'gmap40', 'gmres', 'gnuplot_binary', 'gplot',
248            'gradient', 'graphics_toolkit', 'gray', 'gray2ind', 'grid',
249            'griddata', 'griddata3', 'griddatan', 'gtext', 'guidata',
250            'guihandles', 'gunzip', 'gzip', 'hadamard', 'hamming', 'hankel',
251            'hanning', 'help', 'hess', 'hex2dec', 'hex2num', 'hggroup', 'hidden',
252            'hilb', 'hist', 'histc', 'hold', 'hot', 'hotelling_test',
253            'hotelling_test_2', 'housh', 'hsv', 'hsv2rgb', 'hurst', 'hygecdf',
254            'hygeinv', 'hygepdf', 'hygernd', 'idivide', 'ifftshift', 'image',
255            'imagesc', 'imfinfo', 'imread', 'imshow', 'imwrite', 'ind2gray',
256            'ind2rgb', 'index', 'info', 'inpolygon', 'inputname', 'int2str',
257            'interp1', 'interp1q', 'interp2', 'interp3', 'interpft', 'interpn',
258            'intersect', 'inv', 'invhilb', 'iqr',
259            'is_leap_year', 'is_valid_file_id',
260            'isa', 'isappdata', 'iscolumn', 'isdefinite', 'isdeployed', 'isdir',
261            'isequal', 'isequalwithequalnans', 'isfigure', 'ishermitian',
262            'ishghandle', 'ishold', 'isletter', 'ismac', 'ismember', 'isocolors',
263            'isonormals', 'isosurface', 'ispc', 'ispref', 'isprime', 'isprop',
264            'isrow', 'isscalar', 'issquare', 'isstrprop', 'issymmetric',
265            'isunix', 'isvector', 'jet', 'kendall', 'kolmogorov_smirnov_cdf',
266            'kolmogorov_smirnov_test', 'kolmogorov_smirnov_test_2', 'kron',
267            'kruskal_wallis_test', 'krylov', 'kurtosis', 'laplace_cdf',
268            'laplace_inv', 'laplace_pdf', 'laplace_rnd', 'lcm', 'legend',
269            'legendre', 'license', 'lin2mu', 'line', 'linkprop', 'list_primes',
270            'loadaudio', 'loadobj', 'logistic_cdf', 'logistic_inv',
271            'logistic_pdf', 'logistic_regression', 'logistic_rnd', 'logit',
272            'loglog', 'loglogerr', 'logm', 'logncdf', 'logninv', 'lognpdf',
273            'lognrnd', 'logspace', 'lookfor', 'lookup', 'ls', 'ls_command',
274            'lsode', 'lsqnonneg', 'lu', 'luinc', 'magic', 'mahalanobis', 'manova',
275            'mat2str', 'matlabroot', 'matrix_type', 'max', 'mcnemar_test',
276            'md5sum', 'mean', 'meansq', 'median', 'menu', 'mesh', 'meshc',
277            'meshgrid', 'meshz', 'mex', 'mexext', 'mgorth', 'mkoctfile', 'mkpp',
278            'mode', 'moment', 'movefile', 'mpoles', 'mu2lin', 'namelengthmax',
279            'nargchk', 'narginchk', 'nargoutchk', 'nbincdf', 'nbininv', 'nbinpdf',
280            'nbinrnd', 'nchoosek', 'ndgrid', 'newplot', 'news', 'nextpow2',
281            'nonzeros', 'normcdf', 'normest', 'norminv', 'normpdf', 'normrnd',
282            'now', 'nproc', 'nthargout', 'nthroot', 'ntsc2rgb', 'null', 'num2str',
283            'ocean', 'ols', 'onenormest', 'optimget', 'optimset', 'orderfields',
284            'orient', 'orth', 'pack', 'paren', 'pareto', 'parseparams', 'pascal',
285            'patch', 'pathdef', 'pbaspect', 'pcg', 'pchip', 'pcolor', 'pcr',
286            'peaks', 'periodogram', 'perl', 'perms', 'pie', 'pie3',
287            'pink', 'pinv', 'pkg', 'planerot', 'playaudio', 'plot', 'plot3',
288            'plotmatrix', 'plotyy', 'poisscdf', 'poissinv', 'poisspdf',
289            'poissrnd', 'pol2cart', 'polar', 'poly', 'polyaffine', 'polyarea',
290            'polyder', 'polyfit', 'polygcd', 'polyint', 'polyout',
291            'polyreduce', 'polyval', 'polyvalm', 'postpad', 'pow2', 'powerset',
292            'ppder', 'ppint', 'ppjumps', 'ppplot', 'ppval', 'pqpnonneg',
293            'prctile', 'prepad', 'primes', 'print', 'printAllBuiltins',
294            'print_usage', 'prism', 'probit', 'profexplore', 'profile',
295            'profshow', 'prop_test_2', 'python', 'qp', 'qqplot', 'qr', 'quad',
296            'quadcc', 'quadgk', 'quadl', 'quadv', 'quantile', 'quiver', 'quiver3',
297            'qz', 'qzhess', 'rainbow', 'rand', 'randi', 'range', 'rank', 'ranks',
298            'rat', 'rcond', 'reallog', 'realpow', 'realsqrt', 'record',
299            'rectangle', 'rectint', 'recycle', 'refresh', 'refreshdata', 'regexp',
300            'regexptranslate', 'repmat', 'residue', 'rgb2hsv',
301            'rgb2ind', 'rgb2ntsc', 'ribbon', 'rindex', 'rmappdata', 'rmpref',
302            'roots', 'rose', 'rosser', 'rot90', 'rotdim', 'rref', 'run',
303            'run_count', 'run_test', 'rundemos', 'runlength', 'runtests',
304            'saveas', 'saveaudio', 'saveobj', 'savepath', 'scatter',
305            'scatter3', 'schur', 'sec', 'secd', 'sech', 'semicolon', 'semilogx',
306            'semilogxerr', 'semilogy', 'semilogyerr', 'setappdata', 'setaudio',
307            'setdiff', 'setfield', 'setpref', 'setxor', 'shading',
308            'shg', 'shift', 'shiftdim', 'sign_test', 'sinc', 'sind',
309            'sinetone', 'sinewave', 'skewness', 'slice', 'sombrero', 'sortrows',
310            'spaugment', 'spconvert', 'spdiags', 'spearman', 'spectral_adf',
311            'spectral_xdf', 'specular', 'speed', 'spencer', 'speye', 'spfun',
312            'sph2cart', 'sphere', 'spinmap', 'spline', 'spones', 'spparms',
313            'sprand', 'sprandn', 'sprandsym', 'spring', 'spstats', 'spy', 'sqp',
314            'sqrtm', 'stairs', 'statistics', 'std', 'stdnormal_cdf',
315            'stdnormal_inv', 'stdnormal_pdf', 'stdnormal_rnd', 'stem', 'stem3',
316            'stft', 'str2double', 'str2num', 'strcat', 'strchr',
317            'strfind', 'strjust', 'strmatch', 'strread', 'strsplit', 'strtok',
318            'strtrim', 'strtrunc', 'structfun', 'sub2ind',
319            'subplot', 'subsindex', 'subspace', 'substr', 'substruct', 'summer',
320            'surf', 'surface', 'surfc', 'surfl', 'surfnorm', 'svd', 'svds',
321            'swapbytes', 'syl', 'symbfact', 'symrcm',
322            'symvar', 'synthesis', 't_test', 't_test_2', 't_test_regression',
323            'table', 'tand', 'tar', 'tcdf', 'tempdir', 'tempname', 'test', 'text',
324            'textread', 'textscan', 'time', 'tinv', 'title', 'toeplitz', 'tpdf',
325            'trace', 'trapz', 'treelayout', 'treeplot', 'tril', 'trimesh',
326            'triplequad', 'triplot', 'trisurf', 'trnd', 'tsearch', 'tsearchn',
327            'type', 'typecast', 'u_test', 'uicontextmenu', 'uicontrol',
328            'uigetdir', 'uigetfile', 'uimenu', 'uipanel', 'uipushtool',
329            'uiputfile', 'uiresume', 'uitoggletool', 'uitoolbar', 'uiwait',
330            'unidcdf', 'unidinv', 'unidpdf', 'unidrnd', 'unifcdf', 'unifinv',
331            'unifpdf', 'unifrnd', 'unimplemented', 'union', 'unique', 'unix',
332            'unmkpp', 'unpack', 'untabify', 'untar', 'unwrap', 'unzip',
333            'urlwrite', 'usejava', 'validatestring', 'vander', 'var',
334            'var_test', 'vech', 'ver', 'version', 'view', 'voronoi', 'voronoin',
335            'waitbar', 'waitforbuttonpress', 'warning_ids', 'wavread', 'wavwrite',
336            'wblcdf', 'wblinv', 'wblpdf', 'wblrnd', 'weekday',
337            'welch_test', 'what', 'which',
338            'white', 'whitebg', 'wienrnd', 'wilcoxon_test', 'wilkinson', 'winter',
339            'xlabel', 'xlim', 'xor', 'ylabel', 'ylim', 'yulewalker', 'z_test',
340            'z_test_2', 'zip', 'zlabel', 'zlim', 'zscore', 'airy', 'arrayfun',
341            'besselh', 'besseli', 'besselk', 'bessely', 'bitpack', 'bitunpack',
342            'blkmm', 'cellindexmat', 'cellslices', 'chol2inv', 'choldelete',
343            'cholinsert', 'cholinv', 'cholshift', 'cholupdate', 'convn',
344            'csymamd', 'cummax', 'cummin', 'daspk_options', 'dasrt_options',
345            'dassl_options', 'endgrent', 'endpwent', 'etree', 'getgrgid',
346            'getgrnam', 'getpwnam', 'getpwuid', 'gmtime', 'gui_mode', 'ifft',
347            'ifft2', 'ifftn', 'ind2sub', 'inverse', 'localtime', 'lsode_options',
348            'luupdate', 'mat2cell', 'min', 'mktime', 'mouse_wheel_zoom',
349            'num2cell', 'num2hex', 'qrdelete', 'qrinsert', 'qrshift', 'qrupdate',
350            'quad_options', 'rande', 'randg', 'randn', 'randp', 'randperm',
351            'regexpi', 'regexprep', 'rsf2csf', 'setgrent', 'setpwent', 'sprank',
352            'strftime', 'strptime', 'strrep', 'svd_driver', 'symamd', 'triu',
353            'urlread'
354            ),
355        // Private builtin
356        7 => array(
357            '__accumarray_max__', '__accumarray_min__', '__accumarray_sum__',
358            '__accumdim_sum__', '__builtins__', '__calc_dimensions__',
359            '__current_scope__', '__display_tokens__', '__dump_symtab_info__',
360            '__end__', '__get__', '__go_axes__', '__go_axes_init__',
361            '__go_delete__', '__go_execute_callback__', '__go_figure__',
362            '__go_figure_handles__', '__go_handles__', '__go_hggroup__',
363            '__go_image__', '__go_line__', '__go_patch__', '__go_surface__',
364            '__go_text__', '__go_uicontextmenu__', '__go_uicontrol__',
365            '__go_uimenu__', '__go_uipanel__', '__go_uipushtool__',
366            '__go_uitoggletool__', '__go_uitoolbar__', '__gud_mode__',
367            '__image_pixel_size__', '__is_handle_visible__', '__isa_parent__',
368            '__keywords__', '__lexer_debug_flag__', '__list_functions__',
369            '__operators__', '__parent_classes__', '__parser_debug_flag__',
370            '__pathorig__', '__profiler_data__', '__profiler_enable__',
371            '__profiler_reset__', '__request_drawnow__', '__sort_rows_idx__',
372            '__token_count__', '__varval__', '__version_info__', '__which__'
373            ),
374        // Private Octave functions
375        8 => array(
376            '__all_opts__', '__contourc__', '__delaunayn__', '__dispatch__',
377            '__dsearchn__', '__finish__', '__fltk_uigetfile__',
378            '__glpk__', '__gnuplot_drawnow__', '__init_fltk__',
379            '__init_gnuplot__', '__lin_interpn__', '__magick_read__',
380            '__makeinfo__', '__pchip_deriv__', '__plt_get_axis_arg__', '__qp__',
381            '__voronoi__', '__fltk_maxtime__', '__fltk_redraw__', '__ftp__',
382            '__ftp_ascii__', '__ftp_binary__', '__ftp_close__', '__ftp_cwd__',
383            '__ftp_delete__', '__ftp_dir__', '__ftp_mget__', '__ftp_mkdir__',
384            '__ftp_mode__', '__ftp_mput__', '__ftp_pwd__', '__ftp_rename__',
385            '__ftp_rmdir__', '__magick_finfo__', '__magick_format_list__',
386            '__magick_write__'
387            ),
388        // Builtin Global Variables
389        9 => array(
390            'EDITOR', 'EXEC_PATH', 'F_DUPFD', 'F_GETFD', 'F_GETFL', 'F_SETFD',
391            'F_SETFL', 'IMAGE_PATH', 'OCTAVE_HOME',
392            'OCTAVE_VERSION', 'O_APPEND', 'O_ASYNC', 'O_CREAT', 'O_EXCL',
393            'O_NONBLOCK', 'O_RDONLY', 'O_RDWR', 'O_SYNC', 'O_TRUNC', 'O_WRONLY',
394            'PAGER', 'PAGER_FLAGS', 'PS1', 'PS2', 'PS4', 'SEEK_CUR', 'SEEK_END',
395            'SEEK_SET', 'SIG', 'S_ISBLK', 'S_ISCHR', 'S_ISDIR', 'S_ISFIFO',
396            'S_ISLNK', 'S_ISREG', 'S_ISSOCK', 'WCONTINUE', 'WCOREDUMP',
397            'WEXITSTATUS', 'WIFCONTINUED', 'WIFEXITED', 'WIFSIGNALED',
398            'WIFSTOPPED', 'WNOHANG', 'WSTOPSIG', 'WTERMSIG', 'WUNTRACED'
399            ),
400        // Constant functions
401        10 => array (
402            'e', 'eps', 'inf', 'Inf', 'nan', 'NaN', 'NA', 'pi', 'i', 'I', 'j',
403            'J', 'true', 'false'
404            ),
405        ),
406    'SYMBOLS' => array(
407        // Comparison & logical
408        0 => array(
409            '!', '!=', '&', '&&','|', '||', '~', '~=',
410            '<', '<=', '==', '>', '>='
411            ),
412        // Aritmethical
413        1 => array(
414            '*', '**', '+', '++', '-', '--', '/', "\\","'"
415            ),
416        // Elementwise arithmetical
417        2 => array(
418            '.*', '.**','./', '.^', '^',".\\",".'"
419            ),
420        // Arithmetical & assignation
421        3 => array(
422            '*=','+=','-=','/=','\=','**=','^=',
423            '.*=','.+=','.-=','./=','.\=','.**=','.^=','='
424            ),
425        // Indexer
426        4 => array(
427            ':'
428            ),
429        // Delimiters
430        5 => array(
431            ',', '...', ';'
432            ),
433        ),
434    'CASE_SENSITIVE' => array(
435        GESHI_COMMENTS => true,
436        1 => true,
437        2 => true,
438        3 => true,
439        4 => true,
440        5 => true,
441        6 => true,
442        7 => true,
443        8 => true,
444        9 => true,
445        10 => true,
446        ),
447    'URLS' => array(
448        1 => '',
449        2 => '',
450        3 => '',
451        4 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
452        5 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
453        6 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
454        7 => '',
455        8 => '',
456        9 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
457        10 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
458        ),
459    'OOLANG' => true,
460    'OBJECT_SPLITTERS' => array(
461        1 => '.',
462        ),
463    'REGEXPS' => array(),
464    'STRICT_MODE_APPLIES' => GESHI_NEVER,
465    'SCRIPT_DELIMITERS' => array(),
466    'HIGHLIGHT_STRICT_BLOCK' => array(),
467    'STYLES' => array(
468        'COMMENTS' => array(
469            1 => 'color: #0000FF; font-style: italic;', // comments with #
470            2 => 'color: #0000FF; font-style: italic;', // comments with %
471            3 => 'color: #FF00FF; font-style: italic;', // single quote strings
472            4 => 'color: #FF00FF; font-style: italic;', // double quote strings
473            5 => 'color: #0000FF; font-style: italic;', // block comments
474            6 => 'color: #996600; font-weight:bold;',   // packaging system
475            7 => 'color: #006600; font-weight:bold;',   // function handles
476            'MULTI' => 'color: #0000FF; font-style: italic;',
477            ),
478        'KEYWORDS' => array(
479            1 => 'color: #990000; font-weight:bold;',   // Reserved words
480            2 => 'color: #2E8B57;',                     // Storage type
481            3 => 'color: #0000FF; font-weight:bold;',   // Internal variable
482            4 => 'color: #2E8B57; font-weight:bold;',   // Data types
483            5 => 'color: #008A8C; font-weight:bold;',   // Built-in
484            6 => 'color: #008A8C;',                     // Octave functions
485            9 => 'color: #000000; font-weight:bold;',   // Builtin Global Variables
486            10 => 'color: #008A8C; font-weight:bold;',  // Constant functions
487            ),
488        'ESCAPE_CHAR' => array(),
489        'BRACKETS' => array(
490            0 => 'color: #080;',
491            ),
492        'STRINGS' => array(
493            // strings were specified on the COMMENT_REGEXP section
494            ),
495        'NUMBERS' => array(
496            0 => 'color: #cc66cc;',
497            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
498            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
499            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
500            ),
501        'METHODS' => array(),
502        'SYMBOLS' => array(
503            0 => 'color: #FF9696; font-weight:bold;',   // Comparison & logical
504            1 => 'color: #CC0000; font-weight:bold;',   // Aritmethical
505            2 => 'color: #993333; font-weight:bold;',   // Elementwise arithmetical
506            3 => 'color: #FF0000; font-weight:bold;',   // Arithmetical & assignation
507            4 => 'color: #33F;',                        // Indexer
508            5 => 'color: #33F;',                        // Delimiters
509            ),
510        'REGEXPS' => array(),
511        'SCRIPT' => array(),
512        )
513);
514