1"""
2    pygments.lexers.matlab
3    ~~~~~~~~~~~~~~~~~~~~~~
4
5    Lexers for Matlab and related languages.
6
7    :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
8    :license: BSD, see LICENSE for details.
9"""
10
11import re
12
13from pygments.lexer import Lexer, RegexLexer, bygroups, default, words, \
14    do_insertions, include
15from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
16    Number, Punctuation, Generic, Whitespace
17
18from pygments.lexers import _scilab_builtins
19
20__all__ = ['MatlabLexer', 'MatlabSessionLexer', 'OctaveLexer', 'ScilabLexer']
21
22
23
24class MatlabLexer(RegexLexer):
25    """
26    For Matlab source code.
27
28    .. versionadded:: 0.10
29    """
30    name = 'Matlab'
31    aliases = ['matlab']
32    filenames = ['*.m']
33    mimetypes = ['text/matlab']
34
35    _operators = r'-|==|~=|<=|>=|<|>|&&|&|~|\|\|?|\.\*|\*|\+|\.\^|\.\\|\./|/|\\'
36
37    tokens = {
38        'expressions': [
39            # operators:
40            (_operators, Operator),
41
42            # numbers (must come before punctuation to handle `.5`; cannot use
43            # `\b` due to e.g. `5. + .5`).  The negative lookahead on operators
44            # avoids including the dot in `1./x` (the dot is part of `./`).
45            (r'(?<!\w)((\d+\.\d+)|(\d*\.\d+)|(\d+\.(?!%s)))'
46             r'([eEf][+-]?\d+)?(?!\w)' % _operators, Number.Float),
47            (r'\b\d+[eEf][+-]?[0-9]+\b', Number.Float),
48            (r'\b\d+\b', Number.Integer),
49
50            # punctuation:
51            (r'\[|\]|\(|\)|\{|\}|:|@|\.|,', Punctuation),
52            (r'=|:|;', Punctuation),
53
54            # quote can be transpose, instead of string:
55            # (not great, but handles common cases...)
56            (r'(?<=[\w)\].])\'+', Operator),
57
58            (r'"(""|[^"])*"', String),
59
60            (r'(?<![\w)\].])\'', String, 'string'),
61            (r'[a-zA-Z_]\w*', Name),
62            (r'\s+', Whitespace),
63            (r'.', Text),
64        ],
65        'root': [
66            # line starting with '!' is sent as a system command.  not sure what
67            # label to use...
68            (r'^!.*', String.Other),
69            (r'%\{\s*\n', Comment.Multiline, 'blockcomment'),
70            (r'%.*$', Comment),
71            (r'(\s*^\s*)(function)\b', bygroups(Whitespace, Keyword), 'deffunc'),
72            (r'(\s*^\s*)(properties)(\s+)(\()',
73             bygroups(Whitespace, Keyword, Whitespace, Punctuation),
74             ('defprops', 'propattrs')),
75            (r'(\s*^\s*)(properties)\b',
76             bygroups(Whitespace, Keyword), 'defprops'),
77
78            # from 'iskeyword' on version 9.4 (R2018a):
79            # Check that there is no preceding dot, as keywords are valid field
80            # names.
81            (words(('break', 'case', 'catch', 'classdef', 'continue',
82                    'dynamicprops', 'else', 'elseif', 'end', 'for', 'function',
83                    'global', 'if', 'methods', 'otherwise', 'parfor',
84                    'persistent', 'return', 'spmd', 'switch',
85                    'try', 'while'),
86                   prefix=r'(?<!\.)(\s*)(', suffix=r')\b'),
87             bygroups(Whitespace, Keyword)),
88
89            (
90                words(
91                    [
92                        # See https://mathworks.com/help/matlab/referencelist.html
93                        # Below data from 2021-02-10T18:24:08Z
94                        # for Matlab release R2020b
95                        "BeginInvoke",
96                        "COM",
97                        "Combine",
98                        "CombinedDatastore",
99                        "EndInvoke",
100                        "Execute",
101                        "FactoryGroup",
102                        "FactorySetting",
103                        "Feval",
104                        "FunctionTestCase",
105                        "GetCharArray",
106                        "GetFullMatrix",
107                        "GetVariable",
108                        "GetWorkspaceData",
109                        "GraphPlot",
110                        "H5.close",
111                        "H5.garbage_collect",
112                        "H5.get_libversion",
113                        "H5.open",
114                        "H5.set_free_list_limits",
115                        "H5A.close",
116                        "H5A.create",
117                        "H5A.delete",
118                        "H5A.get_info",
119                        "H5A.get_name",
120                        "H5A.get_space",
121                        "H5A.get_type",
122                        "H5A.iterate",
123                        "H5A.open",
124                        "H5A.open_by_idx",
125                        "H5A.open_by_name",
126                        "H5A.read",
127                        "H5A.write",
128                        "H5D.close",
129                        "H5D.create",
130                        "H5D.get_access_plist",
131                        "H5D.get_create_plist",
132                        "H5D.get_offset",
133                        "H5D.get_space",
134                        "H5D.get_space_status",
135                        "H5D.get_storage_size",
136                        "H5D.get_type",
137                        "H5D.open",
138                        "H5D.read",
139                        "H5D.set_extent",
140                        "H5D.vlen_get_buf_size",
141                        "H5D.write",
142                        "H5DS.attach_scale",
143                        "H5DS.detach_scale",
144                        "H5DS.get_label",
145                        "H5DS.get_num_scales",
146                        "H5DS.get_scale_name",
147                        "H5DS.is_scale",
148                        "H5DS.iterate_scales",
149                        "H5DS.set_label",
150                        "H5DS.set_scale",
151                        "H5E.clear",
152                        "H5E.get_major",
153                        "H5E.get_minor",
154                        "H5E.walk",
155                        "H5F.close",
156                        "H5F.create",
157                        "H5F.flush",
158                        "H5F.get_access_plist",
159                        "H5F.get_create_plist",
160                        "H5F.get_filesize",
161                        "H5F.get_freespace",
162                        "H5F.get_info",
163                        "H5F.get_mdc_config",
164                        "H5F.get_mdc_hit_rate",
165                        "H5F.get_mdc_size",
166                        "H5F.get_name",
167                        "H5F.get_obj_count",
168                        "H5F.get_obj_ids",
169                        "H5F.is_hdf5",
170                        "H5F.mount",
171                        "H5F.open",
172                        "H5F.reopen",
173                        "H5F.set_mdc_config",
174                        "H5F.unmount",
175                        "H5G.close",
176                        "H5G.create",
177                        "H5G.get_info",
178                        "H5G.open",
179                        "H5I.dec_ref",
180                        "H5I.get_file_id",
181                        "H5I.get_name",
182                        "H5I.get_ref",
183                        "H5I.get_type",
184                        "H5I.inc_ref",
185                        "H5I.is_valid",
186                        "H5L.copy",
187                        "H5L.create_external",
188                        "H5L.create_hard",
189                        "H5L.create_soft",
190                        "H5L.delete",
191                        "H5L.exists",
192                        "H5L.get_info",
193                        "H5L.get_name_by_idx",
194                        "H5L.get_val",
195                        "H5L.iterate",
196                        "H5L.iterate_by_name",
197                        "H5L.move",
198                        "H5L.visit",
199                        "H5L.visit_by_name",
200                        "H5ML.compare_values",
201                        "H5ML.get_constant_names",
202                        "H5ML.get_constant_value",
203                        "H5ML.get_function_names",
204                        "H5ML.get_mem_datatype",
205                        "H5O.close",
206                        "H5O.copy",
207                        "H5O.get_comment",
208                        "H5O.get_comment_by_name",
209                        "H5O.get_info",
210                        "H5O.link",
211                        "H5O.open",
212                        "H5O.open_by_idx",
213                        "H5O.set_comment",
214                        "H5O.set_comment_by_name",
215                        "H5O.visit",
216                        "H5O.visit_by_name",
217                        "H5P.all_filters_avail",
218                        "H5P.close",
219                        "H5P.close_class",
220                        "H5P.copy",
221                        "H5P.create",
222                        "H5P.equal",
223                        "H5P.exist",
224                        "H5P.fill_value_defined",
225                        "H5P.get",
226                        "H5P.get_alignment",
227                        "H5P.get_alloc_time",
228                        "H5P.get_attr_creation_order",
229                        "H5P.get_attr_phase_change",
230                        "H5P.get_btree_ratios",
231                        "H5P.get_char_encoding",
232                        "H5P.get_chunk",
233                        "H5P.get_chunk_cache",
234                        "H5P.get_class",
235                        "H5P.get_class_name",
236                        "H5P.get_class_parent",
237                        "H5P.get_copy_object",
238                        "H5P.get_create_intermediate_group",
239                        "H5P.get_driver",
240                        "H5P.get_edc_check",
241                        "H5P.get_external",
242                        "H5P.get_external_count",
243                        "H5P.get_family_offset",
244                        "H5P.get_fapl_core",
245                        "H5P.get_fapl_family",
246                        "H5P.get_fapl_multi",
247                        "H5P.get_fclose_degree",
248                        "H5P.get_fill_time",
249                        "H5P.get_fill_value",
250                        "H5P.get_filter",
251                        "H5P.get_filter_by_id",
252                        "H5P.get_gc_references",
253                        "H5P.get_hyper_vector_size",
254                        "H5P.get_istore_k",
255                        "H5P.get_layout",
256                        "H5P.get_libver_bounds",
257                        "H5P.get_link_creation_order",
258                        "H5P.get_link_phase_change",
259                        "H5P.get_mdc_config",
260                        "H5P.get_meta_block_size",
261                        "H5P.get_multi_type",
262                        "H5P.get_nfilters",
263                        "H5P.get_nprops",
264                        "H5P.get_sieve_buf_size",
265                        "H5P.get_size",
266                        "H5P.get_sizes",
267                        "H5P.get_small_data_block_size",
268                        "H5P.get_sym_k",
269                        "H5P.get_userblock",
270                        "H5P.get_version",
271                        "H5P.isa_class",
272                        "H5P.iterate",
273                        "H5P.modify_filter",
274                        "H5P.remove_filter",
275                        "H5P.set",
276                        "H5P.set_alignment",
277                        "H5P.set_alloc_time",
278                        "H5P.set_attr_creation_order",
279                        "H5P.set_attr_phase_change",
280                        "H5P.set_btree_ratios",
281                        "H5P.set_char_encoding",
282                        "H5P.set_chunk",
283                        "H5P.set_chunk_cache",
284                        "H5P.set_copy_object",
285                        "H5P.set_create_intermediate_group",
286                        "H5P.set_deflate",
287                        "H5P.set_edc_check",
288                        "H5P.set_external",
289                        "H5P.set_family_offset",
290                        "H5P.set_fapl_core",
291                        "H5P.set_fapl_family",
292                        "H5P.set_fapl_log",
293                        "H5P.set_fapl_multi",
294                        "H5P.set_fapl_sec2",
295                        "H5P.set_fapl_split",
296                        "H5P.set_fapl_stdio",
297                        "H5P.set_fclose_degree",
298                        "H5P.set_fill_time",
299                        "H5P.set_fill_value",
300                        "H5P.set_filter",
301                        "H5P.set_fletcher32",
302                        "H5P.set_gc_references",
303                        "H5P.set_hyper_vector_size",
304                        "H5P.set_istore_k",
305                        "H5P.set_layout",
306                        "H5P.set_libver_bounds",
307                        "H5P.set_link_creation_order",
308                        "H5P.set_link_phase_change",
309                        "H5P.set_mdc_config",
310                        "H5P.set_meta_block_size",
311                        "H5P.set_multi_type",
312                        "H5P.set_nbit",
313                        "H5P.set_scaleoffset",
314                        "H5P.set_shuffle",
315                        "H5P.set_sieve_buf_size",
316                        "H5P.set_sizes",
317                        "H5P.set_small_data_block_size",
318                        "H5P.set_sym_k",
319                        "H5P.set_userblock",
320                        "H5R.create",
321                        "H5R.dereference",
322                        "H5R.get_name",
323                        "H5R.get_obj_type",
324                        "H5R.get_region",
325                        "H5S.close",
326                        "H5S.copy",
327                        "H5S.create",
328                        "H5S.create_simple",
329                        "H5S.extent_copy",
330                        "H5S.get_select_bounds",
331                        "H5S.get_select_elem_npoints",
332                        "H5S.get_select_elem_pointlist",
333                        "H5S.get_select_hyper_blocklist",
334                        "H5S.get_select_hyper_nblocks",
335                        "H5S.get_select_npoints",
336                        "H5S.get_select_type",
337                        "H5S.get_simple_extent_dims",
338                        "H5S.get_simple_extent_ndims",
339                        "H5S.get_simple_extent_npoints",
340                        "H5S.get_simple_extent_type",
341                        "H5S.is_simple",
342                        "H5S.offset_simple",
343                        "H5S.select_all",
344                        "H5S.select_elements",
345                        "H5S.select_hyperslab",
346                        "H5S.select_none",
347                        "H5S.select_valid",
348                        "H5S.set_extent_none",
349                        "H5S.set_extent_simple",
350                        "H5T.array_create",
351                        "H5T.close",
352                        "H5T.commit",
353                        "H5T.committed",
354                        "H5T.copy",
355                        "H5T.create",
356                        "H5T.detect_class",
357                        "H5T.enum_create",
358                        "H5T.enum_insert",
359                        "H5T.enum_nameof",
360                        "H5T.enum_valueof",
361                        "H5T.equal",
362                        "H5T.get_array_dims",
363                        "H5T.get_array_ndims",
364                        "H5T.get_class",
365                        "H5T.get_create_plist",
366                        "H5T.get_cset",
367                        "H5T.get_ebias",
368                        "H5T.get_fields",
369                        "H5T.get_inpad",
370                        "H5T.get_member_class",
371                        "H5T.get_member_index",
372                        "H5T.get_member_name",
373                        "H5T.get_member_offset",
374                        "H5T.get_member_type",
375                        "H5T.get_member_value",
376                        "H5T.get_native_type",
377                        "H5T.get_nmembers",
378                        "H5T.get_norm",
379                        "H5T.get_offset",
380                        "H5T.get_order",
381                        "H5T.get_pad",
382                        "H5T.get_precision",
383                        "H5T.get_sign",
384                        "H5T.get_size",
385                        "H5T.get_strpad",
386                        "H5T.get_super",
387                        "H5T.get_tag",
388                        "H5T.insert",
389                        "H5T.is_variable_str",
390                        "H5T.lock",
391                        "H5T.open",
392                        "H5T.pack",
393                        "H5T.set_cset",
394                        "H5T.set_ebias",
395                        "H5T.set_fields",
396                        "H5T.set_inpad",
397                        "H5T.set_norm",
398                        "H5T.set_offset",
399                        "H5T.set_order",
400                        "H5T.set_pad",
401                        "H5T.set_precision",
402                        "H5T.set_sign",
403                        "H5T.set_size",
404                        "H5T.set_strpad",
405                        "H5T.set_tag",
406                        "H5T.vlen_create",
407                        "H5Z.filter_avail",
408                        "H5Z.get_filter_info",
409                        "Inf",
410                        "KeyValueDatastore",
411                        "KeyValueStore",
412                        "MException",
413                        "MException.last",
414                        "MaximizeCommandWindow",
415                        "MemoizedFunction",
416                        "MinimizeCommandWindow",
417                        "NET",
418                        "NET.Assembly",
419                        "NET.GenericClass",
420                        "NET.NetException",
421                        "NET.addAssembly",
422                        "NET.convertArray",
423                        "NET.createArray",
424                        "NET.createGeneric",
425                        "NET.disableAutoRelease",
426                        "NET.enableAutoRelease",
427                        "NET.invokeGenericMethod",
428                        "NET.isNETSupported",
429                        "NET.setStaticProperty",
430                        "NaN",
431                        "NaT",
432                        "OperationResult",
433                        "PutCharArray",
434                        "PutFullMatrix",
435                        "PutWorkspaceData",
436                        "PythonEnvironment",
437                        "Quit",
438                        "RandStream",
439                        "ReleaseCompatibilityException",
440                        "ReleaseCompatibilityResults",
441                        "Remove",
442                        "RemoveAll",
443                        "Setting",
444                        "SettingsGroup",
445                        "TallDatastore",
446                        "Test",
447                        "TestResult",
448                        "Tiff",
449                        "TransformedDatastore",
450                        "ValueIterator",
451                        "VersionResults",
452                        "VideoReader",
453                        "VideoWriter",
454                        "abs",
455                        "accumarray",
456                        "acos",
457                        "acosd",
458                        "acosh",
459                        "acot",
460                        "acotd",
461                        "acoth",
462                        "acsc",
463                        "acscd",
464                        "acsch",
465                        "actxGetRunningServer",
466                        "actxserver",
467                        "add",
468                        "addCause",
469                        "addCorrection",
470                        "addFile",
471                        "addFolderIncludingChildFiles",
472                        "addGroup",
473                        "addLabel",
474                        "addPath",
475                        "addReference",
476                        "addSetting",
477                        "addShortcut",
478                        "addShutdownFile",
479                        "addStartupFile",
480                        "addStyle",
481                        "addToolbarExplorationButtons",
482                        "addboundary",
483                        "addcats",
484                        "addedge",
485                        "addevent",
486                        "addlistener",
487                        "addmulti",
488                        "addnode",
489                        "addpath",
490                        "addpoints",
491                        "addpref",
492                        "addprop",
493                        "addsample",
494                        "addsampletocollection",
495                        "addtodate",
496                        "addts",
497                        "addvars",
498                        "adjacency",
499                        "airy",
500                        "align",
501                        "alim",
502                        "all",
503                        "allchild",
504                        "alpha",
505                        "alphaShape",
506                        "alphaSpectrum",
507                        "alphaTriangulation",
508                        "alphamap",
509                        "alphanumericBoundary",
510                        "alphanumericsPattern",
511                        "amd",
512                        "analyzeCodeCompatibility",
513                        "ancestor",
514                        "angle",
515                        "animatedline",
516                        "annotation",
517                        "ans",
518                        "any",
519                        "appdesigner",
520                        "append",
521                        "area",
522                        "arguments",
523                        "array2table",
524                        "array2timetable",
525                        "arrayDatastore",
526                        "arrayfun",
527                        "asFewOfPattern",
528                        "asManyOfPattern",
529                        "ascii",
530                        "asec",
531                        "asecd",
532                        "asech",
533                        "asin",
534                        "asind",
535                        "asinh",
536                        "assert",
537                        "assignin",
538                        "atan",
539                        "atan2",
540                        "atan2d",
541                        "atand",
542                        "atanh",
543                        "audiodevinfo",
544                        "audiodevreset",
545                        "audioinfo",
546                        "audioplayer",
547                        "audioread",
548                        "audiorecorder",
549                        "audiowrite",
550                        "autumn",
551                        "axes",
552                        "axis",
553                        "axtoolbar",
554                        "axtoolbarbtn",
555                        "balance",
556                        "bandwidth",
557                        "bar",
558                        "bar3",
559                        "bar3h",
560                        "barh",
561                        "barycentricToCartesian",
562                        "base2dec",
563                        "batchStartupOptionUsed",
564                        "bctree",
565                        "beep",
566                        "bench",
567                        "besselh",
568                        "besseli",
569                        "besselj",
570                        "besselk",
571                        "bessely",
572                        "beta",
573                        "betainc",
574                        "betaincinv",
575                        "betaln",
576                        "between",
577                        "bfsearch",
578                        "bicg",
579                        "bicgstab",
580                        "bicgstabl",
581                        "biconncomp",
582                        "bin2dec",
583                        "binary",
584                        "binscatter",
585                        "bitand",
586                        "bitcmp",
587                        "bitget",
588                        "bitnot",
589                        "bitor",
590                        "bitset",
591                        "bitshift",
592                        "bitxor",
593                        "blanks",
594                        "ble",
595                        "blelist",
596                        "blkdiag",
597                        "bluetooth",
598                        "bluetoothlist",
599                        "bone",
600                        "boundary",
601                        "boundaryFacets",
602                        "boundaryshape",
603                        "boundingbox",
604                        "bounds",
605                        "box",
606                        "boxchart",
607                        "brighten",
608                        "brush",
609                        "bsxfun",
610                        "bubblechart",
611                        "bubblechart3",
612                        "bubblelegend",
613                        "bubblelim",
614                        "bubblesize",
615                        "builddocsearchdb",
616                        "builtin",
617                        "bvp4c",
618                        "bvp5c",
619                        "bvpget",
620                        "bvpinit",
621                        "bvpset",
622                        "bvpxtend",
623                        "caldays",
624                        "caldiff",
625                        "calendar",
626                        "calendarDuration",
627                        "calllib",
628                        "calmonths",
629                        "calquarters",
630                        "calweeks",
631                        "calyears",
632                        "camdolly",
633                        "cameratoolbar",
634                        "camlight",
635                        "camlookat",
636                        "camorbit",
637                        "campan",
638                        "campos",
639                        "camproj",
640                        "camroll",
641                        "camtarget",
642                        "camup",
643                        "camva",
644                        "camzoom",
645                        "canUseGPU",
646                        "canUseParallelPool",
647                        "cart2pol",
648                        "cart2sph",
649                        "cartesianToBarycentric",
650                        "caseInsensitivePattern",
651                        "caseSensitivePattern",
652                        "cast",
653                        "cat",
654                        "categorical",
655                        "categories",
656                        "caxis",
657                        "cd",
658                        "cdf2rdf",
659                        "cdfepoch",
660                        "cdfinfo",
661                        "cdflib",
662                        "cdfread",
663                        "ceil",
664                        "cell",
665                        "cell2mat",
666                        "cell2struct",
667                        "cell2table",
668                        "celldisp",
669                        "cellfun",
670                        "cellplot",
671                        "cellstr",
672                        "centrality",
673                        "centroid",
674                        "cgs",
675                        "char",
676                        "characterListPattern",
677                        "characteristic",
678                        "checkcode",
679                        "chol",
680                        "cholupdate",
681                        "choose",
682                        "chooseContextMenu",
683                        "circshift",
684                        "circumcenter",
685                        "cla",
686                        "clabel",
687                        "class",
688                        "classUnderlying",
689                        "clc",
690                        "clear",
691                        "clearAllMemoizedCaches",
692                        "clearPersonalValue",
693                        "clearTemporaryValue",
694                        "clearpoints",
695                        "clearvars",
696                        "clf",
697                        "clibArray",
698                        "clibConvertArray",
699                        "clibIsNull",
700                        "clibIsReadOnly",
701                        "clibRelease",
702                        "clibgen.buildInterface",
703                        "clibgen.generateLibraryDefinition",
704                        "clipboard",
705                        "clock",
706                        "clone",
707                        "close",
708                        "closeFile",
709                        "closereq",
710                        "cmap2gray",
711                        "cmpermute",
712                        "cmunique",
713                        "codeCompatibilityReport",
714                        "colamd",
715                        "collapse",
716                        "colon",
717                        "colorbar",
718                        "colorcube",
719                        "colormap",
720                        "colororder",
721                        "colperm",
722                        "com.mathworks.engine.MatlabEngine",
723                        "com.mathworks.matlab.types.CellStr",
724                        "com.mathworks.matlab.types.Complex",
725                        "com.mathworks.matlab.types.HandleObject",
726                        "com.mathworks.matlab.types.Struct",
727                        "combine",
728                        "comet",
729                        "comet3",
730                        "compan",
731                        "compass",
732                        "complex",
733                        "compose",
734                        "computer",
735                        "comserver",
736                        "cond",
737                        "condeig",
738                        "condensation",
739                        "condest",
740                        "coneplot",
741                        "configureCallback",
742                        "configureTerminator",
743                        "conj",
744                        "conncomp",
745                        "containers.Map",
746                        "contains",
747                        "containsrange",
748                        "contour",
749                        "contour3",
750                        "contourc",
751                        "contourf",
752                        "contourslice",
753                        "contrast",
754                        "conv",
755                        "conv2",
756                        "convertCharsToStrings",
757                        "convertContainedStringsToChars",
758                        "convertStringsToChars",
759                        "convertTo",
760                        "convertvars",
761                        "convexHull",
762                        "convhull",
763                        "convhulln",
764                        "convn",
765                        "cool",
766                        "copper",
767                        "copyHDU",
768                        "copyfile",
769                        "copygraphics",
770                        "copyobj",
771                        "corrcoef",
772                        "cos",
773                        "cosd",
774                        "cosh",
775                        "cospi",
776                        "cot",
777                        "cotd",
778                        "coth",
779                        "count",
780                        "countcats",
781                        "cov",
782                        "cplxpair",
783                        "cputime",
784                        "createCategory",
785                        "createFile",
786                        "createImg",
787                        "createLabel",
788                        "createTbl",
789                        "criticalAlpha",
790                        "cross",
791                        "csc",
792                        "cscd",
793                        "csch",
794                        "ctranspose",
795                        "cummax",
796                        "cummin",
797                        "cumprod",
798                        "cumsum",
799                        "cumtrapz",
800                        "curl",
801                        "currentProject",
802                        "cylinder",
803                        "daspect",
804                        "dataTipInteraction",
805                        "dataTipTextRow",
806                        "datacursormode",
807                        "datastore",
808                        "datatip",
809                        "date",
810                        "datenum",
811                        "dateshift",
812                        "datestr",
813                        "datetick",
814                        "datetime",
815                        "datevec",
816                        "day",
817                        "days",
818                        "dbclear",
819                        "dbcont",
820                        "dbdown",
821                        "dbmex",
822                        "dbquit",
823                        "dbstack",
824                        "dbstatus",
825                        "dbstep",
826                        "dbstop",
827                        "dbtype",
828                        "dbup",
829                        "dde23",
830                        "ddeget",
831                        "ddensd",
832                        "ddesd",
833                        "ddeset",
834                        "deblank",
835                        "dec2base",
836                        "dec2bin",
837                        "dec2hex",
838                        "decic",
839                        "decomposition",
840                        "deconv",
841                        "deg2rad",
842                        "degree",
843                        "del2",
844                        "delaunay",
845                        "delaunayTriangulation",
846                        "delaunayn",
847                        "delete",
848                        "deleteCol",
849                        "deleteFile",
850                        "deleteHDU",
851                        "deleteKey",
852                        "deleteRecord",
853                        "deleteRows",
854                        "delevent",
855                        "delimitedTextImportOptions",
856                        "delsample",
857                        "delsamplefromcollection",
858                        "demo",
859                        "descriptor",
860                        "det",
861                        "details",
862                        "detectImportOptions",
863                        "detrend",
864                        "deval",
865                        "dfsearch",
866                        "diag",
867                        "dialog",
868                        "diary",
869                        "diff",
870                        "diffuse",
871                        "digitBoundary",
872                        "digitsPattern",
873                        "digraph",
874                        "dir",
875                        "disableDefaultInteractivity",
876                        "discretize",
877                        "disp",
878                        "display",
879                        "dissect",
880                        "distances",
881                        "dither",
882                        "divergence",
883                        "dmperm",
884                        "doc",
885                        "docsearch",
886                        "dos",
887                        "dot",
888                        "double",
889                        "drag",
890                        "dragrect",
891                        "drawnow",
892                        "dsearchn",
893                        "duration",
894                        "dynamicprops",
895                        "echo",
896                        "echodemo",
897                        "echotcpip",
898                        "edgeAttachments",
899                        "edgecount",
900                        "edges",
901                        "edit",
902                        "eig",
903                        "eigs",
904                        "ellipj",
905                        "ellipke",
906                        "ellipsoid",
907                        "empty",
908                        "enableDefaultInteractivity",
909                        "enableLegacyExplorationModes",
910                        "enableNETfromNetworkDrive",
911                        "enableservice",
912                        "endsWith",
913                        "enumeration",
914                        "eomday",
915                        "eps",
916                        "eq",
917                        "equilibrate",
918                        "erase",
919                        "eraseBetween",
920                        "erf",
921                        "erfc",
922                        "erfcinv",
923                        "erfcx",
924                        "erfinv",
925                        "error",
926                        "errorbar",
927                        "errordlg",
928                        "etime",
929                        "etree",
930                        "etreeplot",
931                        "eval",
932                        "evalc",
933                        "evalin",
934                        "event.ClassInstanceEvent",
935                        "event.DynamicPropertyEvent",
936                        "event.EventData",
937                        "event.PropertyEvent",
938                        "event.hasListener",
939                        "event.listener",
940                        "event.proplistener",
941                        "eventlisteners",
942                        "events",
943                        "exceltime",
944                        "exist",
945                        "exit",
946                        "exp",
947                        "expand",
948                        "expint",
949                        "expm",
950                        "expm1",
951                        "export",
952                        "export2wsdlg",
953                        "exportapp",
954                        "exportgraphics",
955                        "exportsetupdlg",
956                        "extract",
957                        "extractAfter",
958                        "extractBefore",
959                        "extractBetween",
960                        "eye",
961                        "ezpolar",
962                        "faceNormal",
963                        "factor",
964                        "factorial",
965                        "false",
966                        "fclose",
967                        "fcontour",
968                        "feather",
969                        "featureEdges",
970                        "feof",
971                        "ferror",
972                        "feval",
973                        "fewerbins",
974                        "fft",
975                        "fft2",
976                        "fftn",
977                        "fftshift",
978                        "fftw",
979                        "fgetl",
980                        "fgets",
981                        "fieldnames",
982                        "figure",
983                        "figurepalette",
984                        "fileDatastore",
985                        "fileMode",
986                        "fileName",
987                        "fileattrib",
988                        "filemarker",
989                        "fileparts",
990                        "fileread",
991                        "filesep",
992                        "fill",
993                        "fill3",
994                        "fillmissing",
995                        "filloutliers",
996                        "filter",
997                        "filter2",
998                        "fimplicit",
999                        "fimplicit3",
1000                        "find",
1001                        "findCategory",
1002                        "findEvent",
1003                        "findFile",
1004                        "findLabel",
1005                        "findall",
1006                        "findedge",
1007                        "findfigs",
1008                        "findgroups",
1009                        "findnode",
1010                        "findobj",
1011                        "findprop",
1012                        "finish",
1013                        "fitsdisp",
1014                        "fitsinfo",
1015                        "fitsread",
1016                        "fitswrite",
1017                        "fix",
1018                        "fixedWidthImportOptions",
1019                        "flag",
1020                        "flintmax",
1021                        "flip",
1022                        "flipedge",
1023                        "fliplr",
1024                        "flipud",
1025                        "floor",
1026                        "flow",
1027                        "flush",
1028                        "fmesh",
1029                        "fminbnd",
1030                        "fminsearch",
1031                        "fopen",
1032                        "format",
1033                        "fplot",
1034                        "fplot3",
1035                        "fprintf",
1036                        "frame2im",
1037                        "fread",
1038                        "freeBoundary",
1039                        "freqspace",
1040                        "frewind",
1041                        "fscanf",
1042                        "fseek",
1043                        "fsurf",
1044                        "ftell",
1045                        "ftp",
1046                        "full",
1047                        "fullfile",
1048                        "func2str",
1049                        "function_handle",
1050                        "functions",
1051                        "functiontests",
1052                        "funm",
1053                        "fwrite",
1054                        "fzero",
1055                        "gallery",
1056                        "gamma",
1057                        "gammainc",
1058                        "gammaincinv",
1059                        "gammaln",
1060                        "gather",
1061                        "gca",
1062                        "gcbf",
1063                        "gcbo",
1064                        "gcd",
1065                        "gcf",
1066                        "gcmr",
1067                        "gco",
1068                        "genpath",
1069                        "geoaxes",
1070                        "geobasemap",
1071                        "geobubble",
1072                        "geodensityplot",
1073                        "geolimits",
1074                        "geoplot",
1075                        "geoscatter",
1076                        "geotickformat",
1077                        "get",
1078                        "getAColParms",
1079                        "getAxes",
1080                        "getBColParms",
1081                        "getColName",
1082                        "getColType",
1083                        "getColorbar",
1084                        "getConstantValue",
1085                        "getEqColType",
1086                        "getFileFormats",
1087                        "getHDUnum",
1088                        "getHDUtype",
1089                        "getHdrSpace",
1090                        "getImgSize",
1091                        "getImgType",
1092                        "getLayout",
1093                        "getLegend",
1094                        "getMockHistory",
1095                        "getNumCols",
1096                        "getNumHDUs",
1097                        "getNumInputs",
1098                        "getNumInputsImpl",
1099                        "getNumOutputs",
1100                        "getNumOutputsImpl",
1101                        "getNumRows",
1102                        "getOpenFiles",
1103                        "getProfiles",
1104                        "getPropertyGroupsImpl",
1105                        "getReport",
1106                        "getTimeStr",
1107                        "getVersion",
1108                        "getabstime",
1109                        "getappdata",
1110                        "getaudiodata",
1111                        "getdatasamples",
1112                        "getdatasamplesize",
1113                        "getenv",
1114                        "getfield",
1115                        "getframe",
1116                        "getinterpmethod",
1117                        "getnext",
1118                        "getpinstatus",
1119                        "getpixelposition",
1120                        "getplayer",
1121                        "getpoints",
1122                        "getpref",
1123                        "getqualitydesc",
1124                        "getrangefromclass",
1125                        "getsamples",
1126                        "getsampleusingtime",
1127                        "gettimeseriesnames",
1128                        "gettsafteratevent",
1129                        "gettsafterevent",
1130                        "gettsatevent",
1131                        "gettsbeforeatevent",
1132                        "gettsbeforeevent",
1133                        "gettsbetweenevents",
1134                        "getvaropts",
1135                        "ginput",
1136                        "gmres",
1137                        "gobjects",
1138                        "gplot",
1139                        "grabcode",
1140                        "gradient",
1141                        "graph",
1142                        "gray",
1143                        "grid",
1144                        "griddata",
1145                        "griddatan",
1146                        "griddedInterpolant",
1147                        "groot",
1148                        "groupcounts",
1149                        "groupfilter",
1150                        "groupsummary",
1151                        "grouptransform",
1152                        "gsvd",
1153                        "gtext",
1154                        "guidata",
1155                        "guide",
1156                        "guihandles",
1157                        "gunzip",
1158                        "gzip",
1159                        "h5create",
1160                        "h5disp",
1161                        "h5info",
1162                        "h5read",
1163                        "h5readatt",
1164                        "h5write",
1165                        "h5writeatt",
1166                        "hadamard",
1167                        "handle",
1168                        "hankel",
1169                        "hasFactoryValue",
1170                        "hasFrame",
1171                        "hasGroup",
1172                        "hasPersonalValue",
1173                        "hasSetting",
1174                        "hasTemporaryValue",
1175                        "hasdata",
1176                        "hasnext",
1177                        "hdfan",
1178                        "hdfdf24",
1179                        "hdfdfr8",
1180                        "hdfh",
1181                        "hdfhd",
1182                        "hdfhe",
1183                        "hdfhx",
1184                        "hdfinfo",
1185                        "hdfml",
1186                        "hdfpt",
1187                        "hdfread",
1188                        "hdfv",
1189                        "hdfvf",
1190                        "hdfvh",
1191                        "hdfvs",
1192                        "head",
1193                        "heatmap",
1194                        "height",
1195                        "help",
1196                        "helpdlg",
1197                        "hess",
1198                        "hex2dec",
1199                        "hex2num",
1200                        "hgexport",
1201                        "hggroup",
1202                        "hgtransform",
1203                        "hidden",
1204                        "highlight",
1205                        "hilb",
1206                        "histcounts",
1207                        "histcounts2",
1208                        "histogram",
1209                        "histogram2",
1210                        "hms",
1211                        "hold",
1212                        "holes",
1213                        "home",
1214                        "horzcat",
1215                        "hot",
1216                        "hour",
1217                        "hours",
1218                        "hover",
1219                        "hsv",
1220                        "hsv2rgb",
1221                        "hypot",
1222                        "i",
1223                        "ichol",
1224                        "idealfilter",
1225                        "idivide",
1226                        "ifft",
1227                        "ifft2",
1228                        "ifftn",
1229                        "ifftshift",
1230                        "ilu",
1231                        "im2double",
1232                        "im2frame",
1233                        "im2gray",
1234                        "im2java",
1235                        "imag",
1236                        "image",
1237                        "imageDatastore",
1238                        "imagesc",
1239                        "imapprox",
1240                        "imfinfo",
1241                        "imformats",
1242                        "imgCompress",
1243                        "import",
1244                        "importdata",
1245                        "imread",
1246                        "imresize",
1247                        "imshow",
1248                        "imtile",
1249                        "imwrite",
1250                        "inShape",
1251                        "incenter",
1252                        "incidence",
1253                        "ind2rgb",
1254                        "ind2sub",
1255                        "indegree",
1256                        "inedges",
1257                        "infoImpl",
1258                        "inmem",
1259                        "inner2outer",
1260                        "innerjoin",
1261                        "inpolygon",
1262                        "input",
1263                        "inputParser",
1264                        "inputdlg",
1265                        "inputname",
1266                        "insertATbl",
1267                        "insertAfter",
1268                        "insertBTbl",
1269                        "insertBefore",
1270                        "insertCol",
1271                        "insertImg",
1272                        "insertRows",
1273                        "int16",
1274                        "int2str",
1275                        "int32",
1276                        "int64",
1277                        "int8",
1278                        "integral",
1279                        "integral2",
1280                        "integral3",
1281                        "interp1",
1282                        "interp2",
1283                        "interp3",
1284                        "interpft",
1285                        "interpn",
1286                        "interpstreamspeed",
1287                        "intersect",
1288                        "intmax",
1289                        "intmin",
1290                        "inv",
1291                        "invhilb",
1292                        "ipermute",
1293                        "iqr",
1294                        "isCompressedImg",
1295                        "isConnected",
1296                        "isDiscreteStateSpecificationMutableImpl",
1297                        "isDone",
1298                        "isDoneImpl",
1299                        "isInactivePropertyImpl",
1300                        "isInputComplexityMutableImpl",
1301                        "isInputDataTypeMutableImpl",
1302                        "isInputSizeMutableImpl",
1303                        "isInterior",
1304                        "isKey",
1305                        "isLoaded",
1306                        "isLocked",
1307                        "isMATLABReleaseOlderThan",
1308                        "isPartitionable",
1309                        "isShuffleable",
1310                        "isStringScalar",
1311                        "isTunablePropertyDataTypeMutableImpl",
1312                        "isUnderlyingType",
1313                        "isa",
1314                        "isaUnderlying",
1315                        "isappdata",
1316                        "isbanded",
1317                        "isbetween",
1318                        "iscalendarduration",
1319                        "iscategorical",
1320                        "iscategory",
1321                        "iscell",
1322                        "iscellstr",
1323                        "ischange",
1324                        "ischar",
1325                        "iscolumn",
1326                        "iscom",
1327                        "isdag",
1328                        "isdatetime",
1329                        "isdiag",
1330                        "isdst",
1331                        "isduration",
1332                        "isempty",
1333                        "isenum",
1334                        "isequal",
1335                        "isequaln",
1336                        "isevent",
1337                        "isfield",
1338                        "isfile",
1339                        "isfinite",
1340                        "isfloat",
1341                        "isfolder",
1342                        "isgraphics",
1343                        "ishandle",
1344                        "ishermitian",
1345                        "ishold",
1346                        "ishole",
1347                        "isinf",
1348                        "isinteger",
1349                        "isinterface",
1350                        "isinterior",
1351                        "isisomorphic",
1352                        "isjava",
1353                        "iskeyword",
1354                        "isletter",
1355                        "islocalmax",
1356                        "islocalmin",
1357                        "islogical",
1358                        "ismac",
1359                        "ismatrix",
1360                        "ismember",
1361                        "ismembertol",
1362                        "ismethod",
1363                        "ismissing",
1364                        "ismultigraph",
1365                        "isnan",
1366                        "isnat",
1367                        "isnumeric",
1368                        "isobject",
1369                        "isocaps",
1370                        "isocolors",
1371                        "isomorphism",
1372                        "isonormals",
1373                        "isordinal",
1374                        "isosurface",
1375                        "isoutlier",
1376                        "ispc",
1377                        "isplaying",
1378                        "ispref",
1379                        "isprime",
1380                        "isprop",
1381                        "isprotected",
1382                        "isreal",
1383                        "isrecording",
1384                        "isregular",
1385                        "isrow",
1386                        "isscalar",
1387                        "issimplified",
1388                        "issorted",
1389                        "issortedrows",
1390                        "isspace",
1391                        "issparse",
1392                        "isstring",
1393                        "isstrprop",
1394                        "isstruct",
1395                        "isstudent",
1396                        "issymmetric",
1397                        "istable",
1398                        "istall",
1399                        "istimetable",
1400                        "istril",
1401                        "istriu",
1402                        "isundefined",
1403                        "isunix",
1404                        "isvalid",
1405                        "isvarname",
1406                        "isvector",
1407                        "isweekend",
1408                        "j",
1409                        "javaArray",
1410                        "javaMethod",
1411                        "javaMethodEDT",
1412                        "javaObject",
1413                        "javaObjectEDT",
1414                        "javaaddpath",
1415                        "javachk",
1416                        "javaclasspath",
1417                        "javarmpath",
1418                        "jet",
1419                        "join",
1420                        "jsondecode",
1421                        "jsonencode",
1422                        "juliandate",
1423                        "keyboard",
1424                        "keys",
1425                        "kron",
1426                        "labeledge",
1427                        "labelnode",
1428                        "lag",
1429                        "laplacian",
1430                        "lastwarn",
1431                        "layout",
1432                        "lcm",
1433                        "ldl",
1434                        "leapseconds",
1435                        "legend",
1436                        "legendre",
1437                        "length",
1438                        "letterBoundary",
1439                        "lettersPattern",
1440                        "lib.pointer",
1441                        "libfunctions",
1442                        "libfunctionsview",
1443                        "libisloaded",
1444                        "libpointer",
1445                        "libstruct",
1446                        "license",
1447                        "light",
1448                        "lightangle",
1449                        "lighting",
1450                        "lin2mu",
1451                        "line",
1452                        "lineBoundary",
1453                        "lines",
1454                        "linkaxes",
1455                        "linkdata",
1456                        "linkprop",
1457                        "linsolve",
1458                        "linspace",
1459                        "listModifiedFiles",
1460                        "listRequiredFiles",
1461                        "listdlg",
1462                        "listener",
1463                        "listfonts",
1464                        "load",
1465                        "loadObjectImpl",
1466                        "loadlibrary",
1467                        "loadobj",
1468                        "localfunctions",
1469                        "log",
1470                        "log10",
1471                        "log1p",
1472                        "log2",
1473                        "logical",
1474                        "loglog",
1475                        "logm",
1476                        "logspace",
1477                        "lookAheadBoundary",
1478                        "lookBehindBoundary",
1479                        "lookfor",
1480                        "lower",
1481                        "ls",
1482                        "lscov",
1483                        "lsqminnorm",
1484                        "lsqnonneg",
1485                        "lsqr",
1486                        "lu",
1487                        "magic",
1488                        "makehgtform",
1489                        "makima",
1490                        "mapreduce",
1491                        "mapreducer",
1492                        "maskedPattern",
1493                        "mat2cell",
1494                        "mat2str",
1495                        "matches",
1496                        "matchpairs",
1497                        "material",
1498                        "matfile",
1499                        "matlab.System",
1500                        "matlab.addons.disableAddon",
1501                        "matlab.addons.enableAddon",
1502                        "matlab.addons.install",
1503                        "matlab.addons.installedAddons",
1504                        "matlab.addons.isAddonEnabled",
1505                        "matlab.addons.toolbox.installToolbox",
1506                        "matlab.addons.toolbox.installedToolboxes",
1507                        "matlab.addons.toolbox.packageToolbox",
1508                        "matlab.addons.toolbox.toolboxVersion",
1509                        "matlab.addons.toolbox.uninstallToolbox",
1510                        "matlab.addons.uninstall",
1511                        "matlab.apputil.create",
1512                        "matlab.apputil.getInstalledAppInfo",
1513                        "matlab.apputil.install",
1514                        "matlab.apputil.package",
1515                        "matlab.apputil.run",
1516                        "matlab.apputil.uninstall",
1517                        "matlab.codetools.requiredFilesAndProducts",
1518                        "matlab.engine.FutureResult",
1519                        "matlab.engine.MatlabEngine",
1520                        "matlab.engine.connect_matlab",
1521                        "matlab.engine.engineName",
1522                        "matlab.engine.find_matlab",
1523                        "matlab.engine.isEngineShared",
1524                        "matlab.engine.shareEngine",
1525                        "matlab.engine.start_matlab",
1526                        "matlab.exception.JavaException",
1527                        "matlab.exception.PyException",
1528                        "matlab.graphics.chartcontainer.ChartContainer",
1529                        "matlab.graphics.chartcontainer.mixin.Colorbar",
1530                        "matlab.graphics.chartcontainer.mixin.Legend",
1531                        "matlab.io.Datastore",
1532                        "matlab.io.datastore.BlockedFileSet",
1533                        "matlab.io.datastore.DsFileReader",
1534                        "matlab.io.datastore.DsFileSet",
1535                        "matlab.io.datastore.FileSet",
1536                        "matlab.io.datastore.FileWritable",
1537                        "matlab.io.datastore.FoldersPropertyProvider",
1538                        "matlab.io.datastore.HadoopLocationBased",
1539                        "matlab.io.datastore.Partitionable",
1540                        "matlab.io.datastore.Shuffleable",
1541                        "matlab.io.hdf4.sd",
1542                        "matlab.io.hdfeos.gd",
1543                        "matlab.io.hdfeos.sw",
1544                        "matlab.io.saveVariablesToScript",
1545                        "matlab.lang.OnOffSwitchState",
1546                        "matlab.lang.correction.AppendArgumentsCorrection",
1547                        "matlab.lang.correction.ConvertToFunctionNotationCorrection",
1548                        "matlab.lang.correction.ReplaceIdentifierCorrection",
1549                        "matlab.lang.makeUniqueStrings",
1550                        "matlab.lang.makeValidName",
1551                        "matlab.mex.MexHost",
1552                        "matlab.mixin.Copyable",
1553                        "matlab.mixin.CustomDisplay",
1554                        "matlab.mixin.Heterogeneous",
1555                        "matlab.mixin.SetGet",
1556                        "matlab.mixin.SetGetExactNames",
1557                        "matlab.mixin.util.PropertyGroup",
1558                        "matlab.mock.AnyArguments",
1559                        "matlab.mock.InteractionHistory",
1560                        "matlab.mock.InteractionHistory.forMock",
1561                        "matlab.mock.MethodCallBehavior",
1562                        "matlab.mock.PropertyBehavior",
1563                        "matlab.mock.PropertyGetBehavior",
1564                        "matlab.mock.PropertySetBehavior",
1565                        "matlab.mock.TestCase",
1566                        "matlab.mock.actions.AssignOutputs",
1567                        "matlab.mock.actions.DoNothing",
1568                        "matlab.mock.actions.Invoke",
1569                        "matlab.mock.actions.ReturnStoredValue",
1570                        "matlab.mock.actions.StoreValue",
1571                        "matlab.mock.actions.ThrowException",
1572                        "matlab.mock.constraints.Occurred",
1573                        "matlab.mock.constraints.WasAccessed",
1574                        "matlab.mock.constraints.WasCalled",
1575                        "matlab.mock.constraints.WasSet",
1576                        "matlab.net.ArrayFormat",
1577                        "matlab.net.QueryParameter",
1578                        "matlab.net.URI",
1579                        "matlab.net.base64decode",
1580                        "matlab.net.base64encode",
1581                        "matlab.net.http.AuthInfo",
1582                        "matlab.net.http.AuthenticationScheme",
1583                        "matlab.net.http.Cookie",
1584                        "matlab.net.http.CookieInfo",
1585                        "matlab.net.http.Credentials",
1586                        "matlab.net.http.Disposition",
1587                        "matlab.net.http.HTTPException",
1588                        "matlab.net.http.HTTPOptions",
1589                        "matlab.net.http.HeaderField",
1590                        "matlab.net.http.LogRecord",
1591                        "matlab.net.http.MediaType",
1592                        "matlab.net.http.Message",
1593                        "matlab.net.http.MessageBody",
1594                        "matlab.net.http.MessageType",
1595                        "matlab.net.http.ProgressMonitor",
1596                        "matlab.net.http.ProtocolVersion",
1597                        "matlab.net.http.RequestLine",
1598                        "matlab.net.http.RequestMessage",
1599                        "matlab.net.http.RequestMethod",
1600                        "matlab.net.http.ResponseMessage",
1601                        "matlab.net.http.StartLine",
1602                        "matlab.net.http.StatusClass",
1603                        "matlab.net.http.StatusCode",
1604                        "matlab.net.http.StatusLine",
1605                        "matlab.net.http.field.AcceptField",
1606                        "matlab.net.http.field.AuthenticateField",
1607                        "matlab.net.http.field.AuthenticationInfoField",
1608                        "matlab.net.http.field.AuthorizationField",
1609                        "matlab.net.http.field.ContentDispositionField",
1610                        "matlab.net.http.field.ContentLengthField",
1611                        "matlab.net.http.field.ContentLocationField",
1612                        "matlab.net.http.field.ContentTypeField",
1613                        "matlab.net.http.field.CookieField",
1614                        "matlab.net.http.field.DateField",
1615                        "matlab.net.http.field.GenericField",
1616                        "matlab.net.http.field.GenericParameterizedField",
1617                        "matlab.net.http.field.HTTPDateField",
1618                        "matlab.net.http.field.IntegerField",
1619                        "matlab.net.http.field.LocationField",
1620                        "matlab.net.http.field.MediaRangeField",
1621                        "matlab.net.http.field.SetCookieField",
1622                        "matlab.net.http.field.URIReferenceField",
1623                        "matlab.net.http.io.BinaryConsumer",
1624                        "matlab.net.http.io.ContentConsumer",
1625                        "matlab.net.http.io.ContentProvider",
1626                        "matlab.net.http.io.FileConsumer",
1627                        "matlab.net.http.io.FileProvider",
1628                        "matlab.net.http.io.FormProvider",
1629                        "matlab.net.http.io.GenericConsumer",
1630                        "matlab.net.http.io.GenericProvider",
1631                        "matlab.net.http.io.ImageConsumer",
1632                        "matlab.net.http.io.ImageProvider",
1633                        "matlab.net.http.io.JSONConsumer",
1634                        "matlab.net.http.io.JSONProvider",
1635                        "matlab.net.http.io.MultipartConsumer",
1636                        "matlab.net.http.io.MultipartFormProvider",
1637                        "matlab.net.http.io.MultipartProvider",
1638                        "matlab.net.http.io.StringConsumer",
1639                        "matlab.net.http.io.StringProvider",
1640                        "matlab.perftest.FixedTimeExperiment",
1641                        "matlab.perftest.FrequentistTimeExperiment",
1642                        "matlab.perftest.TestCase",
1643                        "matlab.perftest.TimeExperiment",
1644                        "matlab.perftest.TimeResult",
1645                        "matlab.project.Project",
1646                        "matlab.project.convertDefinitionFiles",
1647                        "matlab.project.createProject",
1648                        "matlab.project.deleteProject",
1649                        "matlab.project.loadProject",
1650                        "matlab.project.rootProject",
1651                        "matlab.settings.FactoryGroup.createToolboxGroup",
1652                        "matlab.settings.SettingsFileUpgrader",
1653                        "matlab.settings.loadSettingsCompatibilityResults",
1654                        "matlab.settings.mustBeIntegerScalar",
1655                        "matlab.settings.mustBeLogicalScalar",
1656                        "matlab.settings.mustBeNumericScalar",
1657                        "matlab.settings.mustBeStringScalar",
1658                        "matlab.settings.reloadFactoryFile",
1659                        "matlab.system.mixin.FiniteSource",
1660                        "matlab.tall.blockMovingWindow",
1661                        "matlab.tall.movingWindow",
1662                        "matlab.tall.reduce",
1663                        "matlab.tall.transform",
1664                        "matlab.test.behavior.Missing",
1665                        "matlab.ui.componentcontainer.ComponentContainer",
1666                        "matlab.uitest.TestCase",
1667                        "matlab.uitest.TestCase.forInteractiveUse",
1668                        "matlab.uitest.unlock",
1669                        "matlab.unittest.Test",
1670                        "matlab.unittest.TestCase",
1671                        "matlab.unittest.TestResult",
1672                        "matlab.unittest.TestRunner",
1673                        "matlab.unittest.TestSuite",
1674                        "matlab.unittest.constraints.BooleanConstraint",
1675                        "matlab.unittest.constraints.Constraint",
1676                        "matlab.unittest.constraints.Tolerance",
1677                        "matlab.unittest.diagnostics.ConstraintDiagnostic",
1678                        "matlab.unittest.diagnostics.Diagnostic",
1679                        "matlab.unittest.fixtures.Fixture",
1680                        "matlab.unittest.measurement.DefaultMeasurementResult",
1681                        "matlab.unittest.measurement.MeasurementResult",
1682                        "matlab.unittest.measurement.chart.ComparisonPlot",
1683                        "matlab.unittest.plugins.OutputStream",
1684                        "matlab.unittest.plugins.Parallelizable",
1685                        "matlab.unittest.plugins.QualifyingPlugin",
1686                        "matlab.unittest.plugins.TestRunnerPlugin",
1687                        "matlab.wsdl.createWSDLClient",
1688                        "matlab.wsdl.setWSDLToolPath",
1689                        "matlabRelease",
1690                        "matlabrc",
1691                        "matlabroot",
1692                        "max",
1693                        "maxflow",
1694                        "maxk",
1695                        "mean",
1696                        "median",
1697                        "memmapfile",
1698                        "memoize",
1699                        "memory",
1700                        "mergecats",
1701                        "mergevars",
1702                        "mesh",
1703                        "meshc",
1704                        "meshgrid",
1705                        "meshz",
1706                        "meta.ArrayDimension",
1707                        "meta.DynamicProperty",
1708                        "meta.EnumeratedValue",
1709                        "meta.FixedDimension",
1710                        "meta.MetaData",
1711                        "meta.UnrestrictedDimension",
1712                        "meta.Validation",
1713                        "meta.abstractDetails",
1714                        "meta.class",
1715                        "meta.class.fromName",
1716                        "meta.event",
1717                        "meta.method",
1718                        "meta.package",
1719                        "meta.package.fromName",
1720                        "meta.package.getAllPackages",
1721                        "meta.property",
1722                        "metaclass",
1723                        "methods",
1724                        "methodsview",
1725                        "mex",
1726                        "mexext",
1727                        "mexhost",
1728                        "mfilename",
1729                        "mget",
1730                        "milliseconds",
1731                        "min",
1732                        "mink",
1733                        "minres",
1734                        "minspantree",
1735                        "minute",
1736                        "minutes",
1737                        "mislocked",
1738                        "missing",
1739                        "mkdir",
1740                        "mkpp",
1741                        "mldivide",
1742                        "mlintrpt",
1743                        "mlock",
1744                        "mmfileinfo",
1745                        "mod",
1746                        "mode",
1747                        "month",
1748                        "more",
1749                        "morebins",
1750                        "movAbsHDU",
1751                        "movNamHDU",
1752                        "movRelHDU",
1753                        "move",
1754                        "movefile",
1755                        "movegui",
1756                        "movevars",
1757                        "movie",
1758                        "movmad",
1759                        "movmax",
1760                        "movmean",
1761                        "movmedian",
1762                        "movmin",
1763                        "movprod",
1764                        "movstd",
1765                        "movsum",
1766                        "movvar",
1767                        "mpower",
1768                        "mput",
1769                        "mrdivide",
1770                        "msgbox",
1771                        "mtimes",
1772                        "mu2lin",
1773                        "multibandread",
1774                        "multibandwrite",
1775                        "munlock",
1776                        "mustBeA",
1777                        "mustBeFile",
1778                        "mustBeFinite",
1779                        "mustBeFloat",
1780                        "mustBeFolder",
1781                        "mustBeGreaterThan",
1782                        "mustBeGreaterThanOrEqual",
1783                        "mustBeInRange",
1784                        "mustBeInteger",
1785                        "mustBeLessThan",
1786                        "mustBeLessThanOrEqual",
1787                        "mustBeMember",
1788                        "mustBeNegative",
1789                        "mustBeNonNan",
1790                        "mustBeNonempty",
1791                        "mustBeNonmissing",
1792                        "mustBeNonnegative",
1793                        "mustBeNonpositive",
1794                        "mustBeNonsparse",
1795                        "mustBeNonzero",
1796                        "mustBeNonzeroLengthText",
1797                        "mustBeNumeric",
1798                        "mustBeNumericOrLogical",
1799                        "mustBePositive",
1800                        "mustBeReal",
1801                        "mustBeScalarOrEmpty",
1802                        "mustBeText",
1803                        "mustBeTextScalar",
1804                        "mustBeUnderlyingType",
1805                        "mustBeValidVariableName",
1806                        "mustBeVector",
1807                        "namedPattern",
1808                        "namedargs2cell",
1809                        "namelengthmax",
1810                        "nargin",
1811                        "narginchk",
1812                        "nargout",
1813                        "nargoutchk",
1814                        "native2unicode",
1815                        "nccreate",
1816                        "ncdisp",
1817                        "nchoosek",
1818                        "ncinfo",
1819                        "ncread",
1820                        "ncreadatt",
1821                        "ncwrite",
1822                        "ncwriteatt",
1823                        "ncwriteschema",
1824                        "ndgrid",
1825                        "ndims",
1826                        "nearest",
1827                        "nearestNeighbor",
1828                        "nearestvertex",
1829                        "neighbors",
1830                        "netcdf.abort",
1831                        "netcdf.close",
1832                        "netcdf.copyAtt",
1833                        "netcdf.create",
1834                        "netcdf.defDim",
1835                        "netcdf.defGrp",
1836                        "netcdf.defVar",
1837                        "netcdf.defVarChunking",
1838                        "netcdf.defVarDeflate",
1839                        "netcdf.defVarFill",
1840                        "netcdf.defVarFletcher32",
1841                        "netcdf.delAtt",
1842                        "netcdf.endDef",
1843                        "netcdf.getAtt",
1844                        "netcdf.getChunkCache",
1845                        "netcdf.getConstant",
1846                        "netcdf.getConstantNames",
1847                        "netcdf.getVar",
1848                        "netcdf.inq",
1849                        "netcdf.inqAtt",
1850                        "netcdf.inqAttID",
1851                        "netcdf.inqAttName",
1852                        "netcdf.inqDim",
1853                        "netcdf.inqDimID",
1854                        "netcdf.inqDimIDs",
1855                        "netcdf.inqFormat",
1856                        "netcdf.inqGrpName",
1857                        "netcdf.inqGrpNameFull",
1858                        "netcdf.inqGrpParent",
1859                        "netcdf.inqGrps",
1860                        "netcdf.inqLibVers",
1861                        "netcdf.inqNcid",
1862                        "netcdf.inqUnlimDims",
1863                        "netcdf.inqVar",
1864                        "netcdf.inqVarChunking",
1865                        "netcdf.inqVarDeflate",
1866                        "netcdf.inqVarFill",
1867                        "netcdf.inqVarFletcher32",
1868                        "netcdf.inqVarID",
1869                        "netcdf.inqVarIDs",
1870                        "netcdf.open",
1871                        "netcdf.putAtt",
1872                        "netcdf.putVar",
1873                        "netcdf.reDef",
1874                        "netcdf.renameAtt",
1875                        "netcdf.renameDim",
1876                        "netcdf.renameVar",
1877                        "netcdf.setChunkCache",
1878                        "netcdf.setDefaultFormat",
1879                        "netcdf.setFill",
1880                        "netcdf.sync",
1881                        "newline",
1882                        "newplot",
1883                        "nextpow2",
1884                        "nexttile",
1885                        "nnz",
1886                        "nonzeros",
1887                        "norm",
1888                        "normalize",
1889                        "normest",
1890                        "notify",
1891                        "now",
1892                        "nsidedpoly",
1893                        "nthroot",
1894                        "nufft",
1895                        "nufftn",
1896                        "null",
1897                        "num2cell",
1898                        "num2hex",
1899                        "num2ruler",
1900                        "num2str",
1901                        "numArgumentsFromSubscript",
1902                        "numRegions",
1903                        "numboundaries",
1904                        "numedges",
1905                        "numel",
1906                        "numnodes",
1907                        "numpartitions",
1908                        "numsides",
1909                        "nzmax",
1910                        "ode113",
1911                        "ode15i",
1912                        "ode15s",
1913                        "ode23",
1914                        "ode23s",
1915                        "ode23t",
1916                        "ode23tb",
1917                        "ode45",
1918                        "odeget",
1919                        "odeset",
1920                        "odextend",
1921                        "onCleanup",
1922                        "ones",
1923                        "open",
1924                        "openDiskFile",
1925                        "openFile",
1926                        "openProject",
1927                        "openfig",
1928                        "opengl",
1929                        "openvar",
1930                        "optimget",
1931                        "optimset",
1932                        "optionalPattern",
1933                        "ordeig",
1934                        "orderfields",
1935                        "ordqz",
1936                        "ordschur",
1937                        "orient",
1938                        "orth",
1939                        "outdegree",
1940                        "outedges",
1941                        "outerjoin",
1942                        "overlaps",
1943                        "overlapsrange",
1944                        "pack",
1945                        "pad",
1946                        "padecoef",
1947                        "pagectranspose",
1948                        "pagemtimes",
1949                        "pagetranspose",
1950                        "pan",
1951                        "panInteraction",
1952                        "parallelplot",
1953                        "pareto",
1954                        "parquetDatastore",
1955                        "parquetinfo",
1956                        "parquetread",
1957                        "parquetwrite",
1958                        "partition",
1959                        "parula",
1960                        "pascal",
1961                        "patch",
1962                        "path",
1963                        "pathsep",
1964                        "pathtool",
1965                        "pattern",
1966                        "pause",
1967                        "pbaspect",
1968                        "pcg",
1969                        "pchip",
1970                        "pcode",
1971                        "pcolor",
1972                        "pdepe",
1973                        "pdeval",
1974                        "peaks",
1975                        "perimeter",
1976                        "perl",
1977                        "perms",
1978                        "permute",
1979                        "pi",
1980                        "pie",
1981                        "pie3",
1982                        "pink",
1983                        "pinv",
1984                        "planerot",
1985                        "play",
1986                        "playblocking",
1987                        "plot",
1988                        "plot3",
1989                        "plotbrowser",
1990                        "plotedit",
1991                        "plotmatrix",
1992                        "plottools",
1993                        "plus",
1994                        "pointLocation",
1995                        "pol2cart",
1996                        "polaraxes",
1997                        "polarbubblechart",
1998                        "polarhistogram",
1999                        "polarplot",
2000                        "polarscatter",
2001                        "poly",
2002                        "polyarea",
2003                        "polybuffer",
2004                        "polyder",
2005                        "polyeig",
2006                        "polyfit",
2007                        "polyint",
2008                        "polyshape",
2009                        "polyval",
2010                        "polyvalm",
2011                        "posixtime",
2012                        "possessivePattern",
2013                        "pow2",
2014                        "ppval",
2015                        "predecessors",
2016                        "prefdir",
2017                        "preferences",
2018                        "press",
2019                        "preview",
2020                        "primes",
2021                        "print",
2022                        "printdlg",
2023                        "printopt",
2024                        "printpreview",
2025                        "prism",
2026                        "processInputSpecificationChangeImpl",
2027                        "processTunedPropertiesImpl",
2028                        "prod",
2029                        "profile",
2030                        "propedit",
2031                        "properties",
2032                        "propertyeditor",
2033                        "psi",
2034                        "publish",
2035                        "pwd",
2036                        "pyargs",
2037                        "pyenv",
2038                        "qmr",
2039                        "qr",
2040                        "qrdelete",
2041                        "qrinsert",
2042                        "qrupdate",
2043                        "quad2d",
2044                        "quadgk",
2045                        "quarter",
2046                        "questdlg",
2047                        "quit",
2048                        "quiver",
2049                        "quiver3",
2050                        "qz",
2051                        "rad2deg",
2052                        "rand",
2053                        "randi",
2054                        "randn",
2055                        "randperm",
2056                        "rank",
2057                        "rat",
2058                        "rats",
2059                        "rbbox",
2060                        "rcond",
2061                        "read",
2062                        "readATblHdr",
2063                        "readBTblHdr",
2064                        "readCard",
2065                        "readCol",
2066                        "readFrame",
2067                        "readImg",
2068                        "readKey",
2069                        "readKeyCmplx",
2070                        "readKeyDbl",
2071                        "readKeyLongLong",
2072                        "readKeyLongStr",
2073                        "readKeyUnit",
2074                        "readRecord",
2075                        "readall",
2076                        "readcell",
2077                        "readline",
2078                        "readlines",
2079                        "readmatrix",
2080                        "readstruct",
2081                        "readtable",
2082                        "readtimetable",
2083                        "readvars",
2084                        "real",
2085                        "reallog",
2086                        "realmax",
2087                        "realmin",
2088                        "realpow",
2089                        "realsqrt",
2090                        "record",
2091                        "recordblocking",
2092                        "rectangle",
2093                        "rectint",
2094                        "recycle",
2095                        "reducepatch",
2096                        "reducevolume",
2097                        "refresh",
2098                        "refreshSourceControl",
2099                        "refreshdata",
2100                        "regexp",
2101                        "regexpPattern",
2102                        "regexpi",
2103                        "regexprep",
2104                        "regexptranslate",
2105                        "regionZoomInteraction",
2106                        "regions",
2107                        "registerevent",
2108                        "regmatlabserver",
2109                        "rehash",
2110                        "relationaloperators",
2111                        "release",
2112                        "releaseImpl",
2113                        "reload",
2114                        "rem",
2115                        "remove",
2116                        "removeCategory",
2117                        "removeFile",
2118                        "removeGroup",
2119                        "removeLabel",
2120                        "removePath",
2121                        "removeReference",
2122                        "removeSetting",
2123                        "removeShortcut",
2124                        "removeShutdownFile",
2125                        "removeStartupFile",
2126                        "removeStyle",
2127                        "removeToolbarExplorationButtons",
2128                        "removecats",
2129                        "removets",
2130                        "removevars",
2131                        "rename",
2132                        "renamecats",
2133                        "renamevars",
2134                        "rendererinfo",
2135                        "reordercats",
2136                        "reordernodes",
2137                        "repelem",
2138                        "replace",
2139                        "replaceBetween",
2140                        "repmat",
2141                        "resample",
2142                        "rescale",
2143                        "reset",
2144                        "resetImpl",
2145                        "reshape",
2146                        "residue",
2147                        "restoredefaultpath",
2148                        "resume",
2149                        "rethrow",
2150                        "retime",
2151                        "reverse",
2152                        "rgb2gray",
2153                        "rgb2hsv",
2154                        "rgb2ind",
2155                        "rgbplot",
2156                        "ribbon",
2157                        "rlim",
2158                        "rmappdata",
2159                        "rmboundary",
2160                        "rmdir",
2161                        "rmedge",
2162                        "rmfield",
2163                        "rmholes",
2164                        "rmmissing",
2165                        "rmnode",
2166                        "rmoutliers",
2167                        "rmpath",
2168                        "rmpref",
2169                        "rmprop",
2170                        "rmslivers",
2171                        "rng",
2172                        "roots",
2173                        "rosser",
2174                        "rot90",
2175                        "rotate",
2176                        "rotate3d",
2177                        "rotateInteraction",
2178                        "round",
2179                        "rowfun",
2180                        "rows2vars",
2181                        "rref",
2182                        "rsf2csf",
2183                        "rtickangle",
2184                        "rtickformat",
2185                        "rticklabels",
2186                        "rticks",
2187                        "ruler2num",
2188                        "rulerPanInteraction",
2189                        "run",
2190                        "runChecks",
2191                        "runperf",
2192                        "runtests",
2193                        "save",
2194                        "saveObjectImpl",
2195                        "saveas",
2196                        "savefig",
2197                        "saveobj",
2198                        "savepath",
2199                        "scale",
2200                        "scatter",
2201                        "scatter3",
2202                        "scatteredInterpolant",
2203                        "scatterhistogram",
2204                        "schur",
2205                        "scroll",
2206                        "sec",
2207                        "secd",
2208                        "sech",
2209                        "second",
2210                        "seconds",
2211                        "semilogx",
2212                        "semilogy",
2213                        "sendmail",
2214                        "serialport",
2215                        "serialportlist",
2216                        "set",
2217                        "setBscale",
2218                        "setCompressionType",
2219                        "setDTR",
2220                        "setHCompScale",
2221                        "setHCompSmooth",
2222                        "setProperties",
2223                        "setRTS",
2224                        "setTileDim",
2225                        "setTscale",
2226                        "setabstime",
2227                        "setappdata",
2228                        "setcats",
2229                        "setdiff",
2230                        "setenv",
2231                        "setfield",
2232                        "setinterpmethod",
2233                        "setpixelposition",
2234                        "setpref",
2235                        "settimeseriesnames",
2236                        "settings",
2237                        "setuniformtime",
2238                        "setup",
2239                        "setupImpl",
2240                        "setvaropts",
2241                        "setvartype",
2242                        "setxor",
2243                        "sgtitle",
2244                        "shading",
2245                        "sheetnames",
2246                        "shg",
2247                        "shiftdim",
2248                        "shortestpath",
2249                        "shortestpathtree",
2250                        "showplottool",
2251                        "shrinkfaces",
2252                        "shuffle",
2253                        "sign",
2254                        "simplify",
2255                        "sin",
2256                        "sind",
2257                        "single",
2258                        "sinh",
2259                        "sinpi",
2260                        "size",
2261                        "slice",
2262                        "smooth3",
2263                        "smoothdata",
2264                        "snapnow",
2265                        "sort",
2266                        "sortboundaries",
2267                        "sortregions",
2268                        "sortrows",
2269                        "sortx",
2270                        "sorty",
2271                        "sound",
2272                        "soundsc",
2273                        "spalloc",
2274                        "sparse",
2275                        "spaugment",
2276                        "spconvert",
2277                        "spdiags",
2278                        "specular",
2279                        "speye",
2280                        "spfun",
2281                        "sph2cart",
2282                        "sphere",
2283                        "spinmap",
2284                        "spline",
2285                        "split",
2286                        "splitapply",
2287                        "splitlines",
2288                        "splitvars",
2289                        "spones",
2290                        "spparms",
2291                        "sprand",
2292                        "sprandn",
2293                        "sprandsym",
2294                        "sprank",
2295                        "spreadsheetDatastore",
2296                        "spreadsheetImportOptions",
2297                        "spring",
2298                        "sprintf",
2299                        "spy",
2300                        "sqrt",
2301                        "sqrtm",
2302                        "squeeze",
2303                        "ss2tf",
2304                        "sscanf",
2305                        "stack",
2306                        "stackedplot",
2307                        "stairs",
2308                        "standardizeMissing",
2309                        "start",
2310                        "startat",
2311                        "startsWith",
2312                        "startup",
2313                        "std",
2314                        "stem",
2315                        "stem3",
2316                        "step",
2317                        "stepImpl",
2318                        "stlread",
2319                        "stlwrite",
2320                        "stop",
2321                        "str2double",
2322                        "str2func",
2323                        "str2num",
2324                        "strcat",
2325                        "strcmp",
2326                        "strcmpi",
2327                        "stream2",
2328                        "stream3",
2329                        "streamline",
2330                        "streamparticles",
2331                        "streamribbon",
2332                        "streamslice",
2333                        "streamtube",
2334                        "strfind",
2335                        "string",
2336                        "strings",
2337                        "strip",
2338                        "strjoin",
2339                        "strjust",
2340                        "strlength",
2341                        "strncmp",
2342                        "strncmpi",
2343                        "strrep",
2344                        "strsplit",
2345                        "strtok",
2346                        "strtrim",
2347                        "struct",
2348                        "struct2cell",
2349                        "struct2table",
2350                        "structfun",
2351                        "sub2ind",
2352                        "subgraph",
2353                        "subplot",
2354                        "subsasgn",
2355                        "subscribe",
2356                        "subsindex",
2357                        "subspace",
2358                        "subsref",
2359                        "substruct",
2360                        "subtitle",
2361                        "subtract",
2362                        "subvolume",
2363                        "successors",
2364                        "sum",
2365                        "summary",
2366                        "summer",
2367                        "superclasses",
2368                        "surf",
2369                        "surf2patch",
2370                        "surface",
2371                        "surfaceArea",
2372                        "surfc",
2373                        "surfl",
2374                        "surfnorm",
2375                        "svd",
2376                        "svds",
2377                        "svdsketch",
2378                        "swapbytes",
2379                        "swarmchart",
2380                        "swarmchart3",
2381                        "sylvester",
2382                        "symamd",
2383                        "symbfact",
2384                        "symmlq",
2385                        "symrcm",
2386                        "synchronize",
2387                        "sysobjupdate",
2388                        "system",
2389                        "table",
2390                        "table2array",
2391                        "table2cell",
2392                        "table2struct",
2393                        "table2timetable",
2394                        "tabularTextDatastore",
2395                        "tail",
2396                        "tall",
2397                        "tallrng",
2398                        "tan",
2399                        "tand",
2400                        "tanh",
2401                        "tar",
2402                        "tcpclient",
2403                        "tempdir",
2404                        "tempname",
2405                        "testsuite",
2406                        "tetramesh",
2407                        "texlabel",
2408                        "text",
2409                        "textBoundary",
2410                        "textscan",
2411                        "textwrap",
2412                        "tfqmr",
2413                        "thetalim",
2414                        "thetatickformat",
2415                        "thetaticklabels",
2416                        "thetaticks",
2417                        "thingSpeakRead",
2418                        "thingSpeakWrite",
2419                        "throw",
2420                        "throwAsCaller",
2421                        "tic",
2422                        "tiledlayout",
2423                        "time",
2424                        "timeit",
2425                        "timeofday",
2426                        "timer",
2427                        "timerange",
2428                        "timerfind",
2429                        "timerfindall",
2430                        "timeseries",
2431                        "timetable",
2432                        "timetable2table",
2433                        "timezones",
2434                        "title",
2435                        "toc",
2436                        "todatenum",
2437                        "toeplitz",
2438                        "toolboxdir",
2439                        "topkrows",
2440                        "toposort",
2441                        "trace",
2442                        "transclosure",
2443                        "transform",
2444                        "translate",
2445                        "transpose",
2446                        "transreduction",
2447                        "trapz",
2448                        "treelayout",
2449                        "treeplot",
2450                        "triangulation",
2451                        "tril",
2452                        "trimesh",
2453                        "triplot",
2454                        "trisurf",
2455                        "triu",
2456                        "true",
2457                        "tscollection",
2458                        "tsdata.event",
2459                        "tsearchn",
2460                        "turbo",
2461                        "turningdist",
2462                        "type",
2463                        "typecast",
2464                        "tzoffset",
2465                        "uialert",
2466                        "uiaxes",
2467                        "uibutton",
2468                        "uibuttongroup",
2469                        "uicheckbox",
2470                        "uiconfirm",
2471                        "uicontextmenu",
2472                        "uicontrol",
2473                        "uidatepicker",
2474                        "uidropdown",
2475                        "uieditfield",
2476                        "uifigure",
2477                        "uigauge",
2478                        "uigetdir",
2479                        "uigetfile",
2480                        "uigetpref",
2481                        "uigridlayout",
2482                        "uihtml",
2483                        "uiimage",
2484                        "uiknob",
2485                        "uilabel",
2486                        "uilamp",
2487                        "uilistbox",
2488                        "uimenu",
2489                        "uint16",
2490                        "uint32",
2491                        "uint64",
2492                        "uint8",
2493                        "uiopen",
2494                        "uipanel",
2495                        "uiprogressdlg",
2496                        "uipushtool",
2497                        "uiputfile",
2498                        "uiradiobutton",
2499                        "uiresume",
2500                        "uisave",
2501                        "uisetcolor",
2502                        "uisetfont",
2503                        "uisetpref",
2504                        "uislider",
2505                        "uispinner",
2506                        "uistack",
2507                        "uistyle",
2508                        "uiswitch",
2509                        "uitab",
2510                        "uitabgroup",
2511                        "uitable",
2512                        "uitextarea",
2513                        "uitogglebutton",
2514                        "uitoggletool",
2515                        "uitoolbar",
2516                        "uitree",
2517                        "uitreenode",
2518                        "uiwait",
2519                        "uminus",
2520                        "underlyingType",
2521                        "underlyingValue",
2522                        "unicode2native",
2523                        "union",
2524                        "unique",
2525                        "uniquetol",
2526                        "unix",
2527                        "unloadlibrary",
2528                        "unmesh",
2529                        "unmkpp",
2530                        "unregisterallevents",
2531                        "unregisterevent",
2532                        "unstack",
2533                        "unsubscribe",
2534                        "untar",
2535                        "unwrap",
2536                        "unzip",
2537                        "update",
2538                        "updateDependencies",
2539                        "uplus",
2540                        "upper",
2541                        "usejava",
2542                        "userpath",
2543                        "validateFunctionSignaturesJSON",
2544                        "validateInputsImpl",
2545                        "validatePropertiesImpl",
2546                        "validateattributes",
2547                        "validatecolor",
2548                        "validatestring",
2549                        "values",
2550                        "vander",
2551                        "var",
2552                        "varargin",
2553                        "varargout",
2554                        "varfun",
2555                        "vartype",
2556                        "vecnorm",
2557                        "ver",
2558                        "verLessThan",
2559                        "version",
2560                        "vertcat",
2561                        "vertexAttachments",
2562                        "vertexNormal",
2563                        "view",
2564                        "viewmtx",
2565                        "visdiff",
2566                        "volume",
2567                        "volumebounds",
2568                        "voronoi",
2569                        "voronoiDiagram",
2570                        "voronoin",
2571                        "wait",
2572                        "waitbar",
2573                        "waitfor",
2574                        "waitforbuttonpress",
2575                        "warndlg",
2576                        "warning",
2577                        "waterfall",
2578                        "web",
2579                        "weboptions",
2580                        "webread",
2581                        "websave",
2582                        "webwrite",
2583                        "week",
2584                        "weekday",
2585                        "what",
2586                        "which",
2587                        "whitespaceBoundary",
2588                        "whitespacePattern",
2589                        "who",
2590                        "whos",
2591                        "width",
2592                        "wildcardPattern",
2593                        "wilkinson",
2594                        "winopen",
2595                        "winqueryreg",
2596                        "winter",
2597                        "withinrange",
2598                        "withtol",
2599                        "wordcloud",
2600                        "write",
2601                        "writeChecksum",
2602                        "writeCol",
2603                        "writeComment",
2604                        "writeDate",
2605                        "writeHistory",
2606                        "writeImg",
2607                        "writeKey",
2608                        "writeKeyUnit",
2609                        "writeVideo",
2610                        "writeall",
2611                        "writecell",
2612                        "writeline",
2613                        "writematrix",
2614                        "writestruct",
2615                        "writetable",
2616                        "writetimetable",
2617                        "xcorr",
2618                        "xcov",
2619                        "xlabel",
2620                        "xlim",
2621                        "xline",
2622                        "xmlread",
2623                        "xmlwrite",
2624                        "xor",
2625                        "xslt",
2626                        "xtickangle",
2627                        "xtickformat",
2628                        "xticklabels",
2629                        "xticks",
2630                        "year",
2631                        "years",
2632                        "ylabel",
2633                        "ylim",
2634                        "yline",
2635                        "ymd",
2636                        "ytickangle",
2637                        "ytickformat",
2638                        "yticklabels",
2639                        "yticks",
2640                        "yyaxis",
2641                        "yyyymmdd",
2642                        "zeros",
2643                        "zip",
2644                        "zlabel",
2645                        "zlim",
2646                        "zoom",
2647                        "zoomInteraction",
2648                        "ztickangle",
2649                        "ztickformat",
2650                        "zticklabels",
2651                        "zticks",
2652                    ],
2653                    prefix=r"(?<!\.)(",  # Exclude field names
2654                    suffix=r")\b"
2655                ),
2656                Name.Builtin
2657            ),
2658
2659            # line continuation with following comment:
2660            (r'(\.\.\.)(.*)$', bygroups(Keyword, Comment)),
2661
2662            # command form:
2663            # "How MATLAB Recognizes Command Syntax" specifies that an operator
2664            # is recognized if it is either surrounded by spaces or by no
2665            # spaces on both sides (this allows distinguishing `cd ./foo` from
2666            # `cd ./ foo`.).  Here, the regex checks that the first word in the
2667            # line is not followed by <spaces> and then
2668            # (equal | open-parenthesis | <operator><space> | <space>).
2669            (r'(?:^|(?<=;))(\s*)(\w+)(\s+)(?!=|\(|%s\s|\s)' % _operators,
2670             bygroups(Whitespace, Name, Whitespace), 'commandargs'),
2671
2672            include('expressions')
2673        ],
2674        'blockcomment': [
2675            (r'^\s*%\}', Comment.Multiline, '#pop'),
2676            (r'^.*\n', Comment.Multiline),
2677            (r'.', Comment.Multiline),
2678        ],
2679        'deffunc': [
2680            (r'(\s*)(?:(\S+)(\s*)(=)(\s*))?(.+)(\()(.*)(\))(\s*)',
2681             bygroups(Whitespace, Text, Whitespace, Punctuation,
2682                      Whitespace, Name.Function, Punctuation, Text,
2683                      Punctuation, Whitespace), '#pop'),
2684            # function with no args
2685            (r'(\s*)([a-zA-Z_]\w*)',
2686             bygroups(Whitespace, Name.Function), '#pop'),
2687        ],
2688        'propattrs': [
2689            (r'(\w+)(\s*)(=)(\s*)(\d+)',
2690             bygroups(Name.Builtin, Whitespace, Punctuation, Whitespace,
2691                      Number)),
2692            (r'(\w+)(\s*)(=)(\s*)([a-zA-Z]\w*)',
2693             bygroups(Name.Builtin, Whitespace, Punctuation, Whitespace,
2694                      Keyword)),
2695            (r',', Punctuation),
2696            (r'\)', Punctuation, '#pop'),
2697            (r'\s+', Whitespace),
2698            (r'.', Text),
2699        ],
2700        'defprops': [
2701            (r'%\{\s*\n', Comment.Multiline, 'blockcomment'),
2702            (r'%.*$', Comment),
2703            (r'(?<!\.)end\b', Keyword, '#pop'),
2704            include('expressions'),
2705        ],
2706        'string': [
2707            (r"[^']*'", String, '#pop'),
2708        ],
2709        'commandargs': [
2710            # If an equal sign or other operator is encountered, this
2711            # isn't a command. It might be a variable assignment or
2712            # comparison operation with multiple spaces before the
2713            # equal sign or operator
2714            (r"=", Punctuation, '#pop'),
2715            (_operators, Operator, '#pop'),
2716            (r"[ \t]+", Whitespace),
2717            ("'[^']*'", String),
2718            (r"[^';\s]+", String),
2719            (";", Punctuation, '#pop'),
2720            default('#pop'),
2721        ]
2722    }
2723
2724    def analyse_text(text):
2725        # function declaration.
2726        first_non_comment = next((line for line in text.splitlines()
2727                                  if not re.match(r'^\s*%', text)), '').strip()
2728        if (first_non_comment.startswith('function')
2729                and '{' not in first_non_comment):
2730            return 1.
2731        # comment
2732        elif re.search(r'^\s*%', text, re.M):
2733            return 0.2
2734        # system cmd
2735        elif re.search(r'^!\w+', text, re.M):
2736            return 0.2
2737
2738
2739line_re  = re.compile('.*?\n')
2740
2741
2742class MatlabSessionLexer(Lexer):
2743    """
2744    For Matlab sessions.  Modeled after PythonConsoleLexer.
2745    Contributed by Ken Schutte <kschutte@csail.mit.edu>.
2746
2747    .. versionadded:: 0.10
2748    """
2749    name = 'Matlab session'
2750    aliases = ['matlabsession']
2751
2752    def get_tokens_unprocessed(self, text):
2753        mlexer = MatlabLexer(**self.options)
2754
2755        curcode = ''
2756        insertions = []
2757        continuation = False
2758
2759        for match in line_re.finditer(text):
2760            line = match.group()
2761
2762            if line.startswith('>> '):
2763                insertions.append((len(curcode),
2764                                   [(0, Generic.Prompt, line[:3])]))
2765                curcode += line[3:]
2766
2767            elif line.startswith('>>'):
2768                insertions.append((len(curcode),
2769                                   [(0, Generic.Prompt, line[:2])]))
2770                curcode += line[2:]
2771
2772            elif line.startswith('???'):
2773
2774                idx = len(curcode)
2775
2776                # without is showing error on same line as before...?
2777                # line = "\n" + line
2778                token = (0, Generic.Traceback, line)
2779                insertions.append((idx, [token]))
2780            elif continuation:
2781                # line_start is the length of the most recent prompt symbol
2782                line_start = len(insertions[-1][-1][-1])
2783                # Set leading spaces with the length of the prompt to be a generic prompt
2784                # This keeps code aligned when prompts are removed, say with some Javascript
2785                if line.startswith(' '*line_start):
2786                    insertions.append((len(curcode),
2787                                    [(0, Generic.Prompt, line[:line_start])]))
2788                    curcode += line[line_start:]
2789                else:
2790                    curcode += line
2791            else:
2792                if curcode:
2793                    yield from do_insertions(
2794                        insertions, mlexer.get_tokens_unprocessed(curcode))
2795                    curcode = ''
2796                    insertions = []
2797
2798                yield match.start(), Generic.Output, line
2799
2800            # Does not allow continuation if a comment is included after the ellipses.
2801            # Continues any line that ends with ..., even comments (lines that start with %)
2802            if line.strip().endswith('...'):
2803                continuation = True
2804            else:
2805                continuation = False
2806
2807        if curcode:  # or item:
2808            yield from do_insertions(
2809                insertions, mlexer.get_tokens_unprocessed(curcode))
2810
2811
2812class OctaveLexer(RegexLexer):
2813    """
2814    For GNU Octave source code.
2815
2816    .. versionadded:: 1.5
2817    """
2818    name = 'Octave'
2819    aliases = ['octave']
2820    filenames = ['*.m']
2821    mimetypes = ['text/octave']
2822
2823    # These lists are generated automatically.
2824    # Run the following in bash shell:
2825    #
2826    # First dump all of the Octave manual into a plain text file:
2827    #
2828    #   $ info octave --subnodes -o octave-manual
2829    #
2830    # Now grep through it:
2831
2832    # for i in \
2833    #     "Built-in Function" "Command" "Function File" \
2834    #     "Loadable Function" "Mapping Function";
2835    # do
2836    #     perl -e '@name = qw('"$i"');
2837    #              print lc($name[0]),"_kw = [\n"';
2838    #
2839    #     perl -n -e 'print "\"$1\",\n" if /-- '"$i"': .* (\w*) \(/;' \
2840    #         octave-manual | sort | uniq ;
2841    #     echo "]" ;
2842    #     echo;
2843    # done
2844
2845    # taken from Octave Mercurial changeset 8cc154f45e37 (30-jan-2011)
2846
2847    builtin_kw = (
2848        "addlistener", "addpath", "addproperty", "all",
2849        "and", "any", "argnames", "argv", "assignin",
2850        "atexit", "autoload",
2851        "available_graphics_toolkits", "beep_on_error",
2852        "bitand", "bitmax", "bitor", "bitshift", "bitxor",
2853        "cat", "cell", "cellstr", "char", "class", "clc",
2854        "columns", "command_line_path",
2855        "completion_append_char", "completion_matches",
2856        "complex", "confirm_recursive_rmdir", "cputime",
2857        "crash_dumps_octave_core", "ctranspose", "cumprod",
2858        "cumsum", "debug_on_error", "debug_on_interrupt",
2859        "debug_on_warning", "default_save_options",
2860        "dellistener", "diag", "diff", "disp",
2861        "doc_cache_file", "do_string_escapes", "double",
2862        "drawnow", "e", "echo_executing_commands", "eps",
2863        "eq", "errno", "errno_list", "error", "eval",
2864        "evalin", "exec", "exist", "exit", "eye", "false",
2865        "fclear", "fclose", "fcntl", "fdisp", "feof",
2866        "ferror", "feval", "fflush", "fgetl", "fgets",
2867        "fieldnames", "file_in_loadpath", "file_in_path",
2868        "filemarker", "filesep", "find_dir_in_path",
2869        "fixed_point_format", "fnmatch", "fopen", "fork",
2870        "formula", "fprintf", "fputs", "fread", "freport",
2871        "frewind", "fscanf", "fseek", "fskipl", "ftell",
2872        "functions", "fwrite", "ge", "genpath", "get",
2873        "getegid", "getenv", "geteuid", "getgid",
2874        "getpgrp", "getpid", "getppid", "getuid", "glob",
2875        "gt", "gui_mode", "history_control",
2876        "history_file", "history_size",
2877        "history_timestamp_format_string", "home",
2878        "horzcat", "hypot", "ifelse",
2879        "ignore_function_time_stamp", "inferiorto",
2880        "info_file", "info_program", "inline", "input",
2881        "intmax", "intmin", "ipermute",
2882        "is_absolute_filename", "isargout", "isbool",
2883        "iscell", "iscellstr", "ischar", "iscomplex",
2884        "isempty", "isfield", "isfloat", "isglobal",
2885        "ishandle", "isieee", "isindex", "isinteger",
2886        "islogical", "ismatrix", "ismethod", "isnull",
2887        "isnumeric", "isobject", "isreal",
2888        "is_rooted_relative_filename", "issorted",
2889        "isstruct", "isvarname", "kbhit", "keyboard",
2890        "kill", "lasterr", "lasterror", "lastwarn",
2891        "ldivide", "le", "length", "link", "linspace",
2892        "logical", "lstat", "lt", "make_absolute_filename",
2893        "makeinfo_program", "max_recursion_depth", "merge",
2894        "methods", "mfilename", "minus", "mislocked",
2895        "mkdir", "mkfifo", "mkstemp", "mldivide", "mlock",
2896        "mouse_wheel_zoom", "mpower", "mrdivide", "mtimes",
2897        "munlock", "nargin", "nargout",
2898        "native_float_format", "ndims", "ne", "nfields",
2899        "nnz", "norm", "not", "numel", "nzmax",
2900        "octave_config_info", "octave_core_file_limit",
2901        "octave_core_file_name",
2902        "octave_core_file_options", "ones", "or",
2903        "output_max_field_width", "output_precision",
2904        "page_output_immediately", "page_screen_output",
2905        "path", "pathsep", "pause", "pclose", "permute",
2906        "pi", "pipe", "plus", "popen", "power",
2907        "print_empty_dimensions", "printf",
2908        "print_struct_array_contents", "prod",
2909        "program_invocation_name", "program_name",
2910        "putenv", "puts", "pwd", "quit", "rats", "rdivide",
2911        "readdir", "readlink", "read_readline_init_file",
2912        "realmax", "realmin", "rehash", "rename",
2913        "repelems", "re_read_readline_init_file", "reset",
2914        "reshape", "resize", "restoredefaultpath",
2915        "rethrow", "rmdir", "rmfield", "rmpath", "rows",
2916        "save_header_format_string", "save_precision",
2917        "saving_history", "scanf", "set", "setenv",
2918        "shell_cmd", "sighup_dumps_octave_core",
2919        "sigterm_dumps_octave_core", "silent_functions",
2920        "single", "size", "size_equal", "sizemax",
2921        "sizeof", "sleep", "source", "sparse_auto_mutate",
2922        "split_long_rows", "sprintf", "squeeze", "sscanf",
2923        "stat", "stderr", "stdin", "stdout", "strcmp",
2924        "strcmpi", "string_fill_char", "strncmp",
2925        "strncmpi", "struct", "struct_levels_to_print",
2926        "strvcat", "subsasgn", "subsref", "sum", "sumsq",
2927        "superiorto", "suppress_verbose_help_message",
2928        "symlink", "system", "tic", "tilde_expand",
2929        "times", "tmpfile", "tmpnam", "toc", "toupper",
2930        "transpose", "true", "typeinfo", "umask", "uminus",
2931        "uname", "undo_string_escapes", "unlink", "uplus",
2932        "upper", "usage", "usleep", "vec", "vectorize",
2933        "vertcat", "waitpid", "warning", "warranty",
2934        "whos_line_format", "yes_or_no", "zeros",
2935        "inf", "Inf", "nan", "NaN")
2936
2937    command_kw = ("close", "load", "who", "whos")
2938
2939    function_kw = (
2940        "accumarray", "accumdim", "acosd", "acotd",
2941        "acscd", "addtodate", "allchild", "ancestor",
2942        "anova", "arch_fit", "arch_rnd", "arch_test",
2943        "area", "arma_rnd", "arrayfun", "ascii", "asctime",
2944        "asecd", "asind", "assert", "atand",
2945        "autoreg_matrix", "autumn", "axes", "axis", "bar",
2946        "barh", "bartlett", "bartlett_test", "beep",
2947        "betacdf", "betainv", "betapdf", "betarnd",
2948        "bicgstab", "bicubic", "binary", "binocdf",
2949        "binoinv", "binopdf", "binornd", "bitcmp",
2950        "bitget", "bitset", "blackman", "blanks",
2951        "blkdiag", "bone", "box", "brighten", "calendar",
2952        "cast", "cauchy_cdf", "cauchy_inv", "cauchy_pdf",
2953        "cauchy_rnd", "caxis", "celldisp", "center", "cgs",
2954        "chisquare_test_homogeneity",
2955        "chisquare_test_independence", "circshift", "cla",
2956        "clabel", "clf", "clock", "cloglog", "closereq",
2957        "colon", "colorbar", "colormap", "colperm",
2958        "comet", "common_size", "commutation_matrix",
2959        "compan", "compare_versions", "compass",
2960        "computer", "cond", "condest", "contour",
2961        "contourc", "contourf", "contrast", "conv",
2962        "convhull", "cool", "copper", "copyfile", "cor",
2963        "corrcoef", "cor_test", "cosd", "cotd", "cov",
2964        "cplxpair", "cross", "cscd", "cstrcat", "csvread",
2965        "csvwrite", "ctime", "cumtrapz", "curl", "cut",
2966        "cylinder", "date", "datenum", "datestr",
2967        "datetick", "datevec", "dblquad", "deal",
2968        "deblank", "deconv", "delaunay", "delaunayn",
2969        "delete", "demo", "detrend", "diffpara", "diffuse",
2970        "dir", "discrete_cdf", "discrete_inv",
2971        "discrete_pdf", "discrete_rnd", "display",
2972        "divergence", "dlmwrite", "dos", "dsearch",
2973        "dsearchn", "duplication_matrix", "durbinlevinson",
2974        "ellipsoid", "empirical_cdf", "empirical_inv",
2975        "empirical_pdf", "empirical_rnd", "eomday",
2976        "errorbar", "etime", "etreeplot", "example",
2977        "expcdf", "expinv", "expm", "exppdf", "exprnd",
2978        "ezcontour", "ezcontourf", "ezmesh", "ezmeshc",
2979        "ezplot", "ezpolar", "ezsurf", "ezsurfc", "factor",
2980        "factorial", "fail", "fcdf", "feather", "fftconv",
2981        "fftfilt", "fftshift", "figure", "fileattrib",
2982        "fileparts", "fill", "findall", "findobj",
2983        "findstr", "finv", "flag", "flipdim", "fliplr",
2984        "flipud", "fpdf", "fplot", "fractdiff", "freqz",
2985        "freqz_plot", "frnd", "fsolve",
2986        "f_test_regression", "ftp", "fullfile", "fzero",
2987        "gamcdf", "gaminv", "gampdf", "gamrnd", "gca",
2988        "gcbf", "gcbo", "gcf", "genvarname", "geocdf",
2989        "geoinv", "geopdf", "geornd", "getfield", "ginput",
2990        "glpk", "gls", "gplot", "gradient",
2991        "graphics_toolkit", "gray", "grid", "griddata",
2992        "griddatan", "gtext", "gunzip", "gzip", "hadamard",
2993        "hamming", "hankel", "hanning", "hggroup",
2994        "hidden", "hilb", "hist", "histc", "hold", "hot",
2995        "hotelling_test", "housh", "hsv", "hurst",
2996        "hygecdf", "hygeinv", "hygepdf", "hygernd",
2997        "idivide", "ifftshift", "image", "imagesc",
2998        "imfinfo", "imread", "imshow", "imwrite", "index",
2999        "info", "inpolygon", "inputname", "interpft",
3000        "interpn", "intersect", "invhilb", "iqr", "isa",
3001        "isdefinite", "isdir", "is_duplicate_entry",
3002        "isequal", "isequalwithequalnans", "isfigure",
3003        "ishermitian", "ishghandle", "is_leap_year",
3004        "isletter", "ismac", "ismember", "ispc", "isprime",
3005        "isprop", "isscalar", "issquare", "isstrprop",
3006        "issymmetric", "isunix", "is_valid_file_id",
3007        "isvector", "jet", "kendall",
3008        "kolmogorov_smirnov_cdf",
3009        "kolmogorov_smirnov_test", "kruskal_wallis_test",
3010        "krylov", "kurtosis", "laplace_cdf", "laplace_inv",
3011        "laplace_pdf", "laplace_rnd", "legend", "legendre",
3012        "license", "line", "linkprop", "list_primes",
3013        "loadaudio", "loadobj", "logistic_cdf",
3014        "logistic_inv", "logistic_pdf", "logistic_rnd",
3015        "logit", "loglog", "loglogerr", "logm", "logncdf",
3016        "logninv", "lognpdf", "lognrnd", "logspace",
3017        "lookfor", "ls_command", "lsqnonneg", "magic",
3018        "mahalanobis", "manova", "matlabroot",
3019        "mcnemar_test", "mean", "meansq", "median", "menu",
3020        "mesh", "meshc", "meshgrid", "meshz", "mexext",
3021        "mget", "mkpp", "mode", "moment", "movefile",
3022        "mpoles", "mput", "namelengthmax", "nargchk",
3023        "nargoutchk", "nbincdf", "nbininv", "nbinpdf",
3024        "nbinrnd", "nchoosek", "ndgrid", "newplot", "news",
3025        "nonzeros", "normcdf", "normest", "norminv",
3026        "normpdf", "normrnd", "now", "nthroot", "null",
3027        "ocean", "ols", "onenormest", "optimget",
3028        "optimset", "orderfields", "orient", "orth",
3029        "pack", "pareto", "parseparams", "pascal", "patch",
3030        "pathdef", "pcg", "pchip", "pcolor", "pcr",
3031        "peaks", "periodogram", "perl", "perms", "pie",
3032        "pink", "planerot", "playaudio", "plot",
3033        "plotmatrix", "plotyy", "poisscdf", "poissinv",
3034        "poisspdf", "poissrnd", "polar", "poly",
3035        "polyaffine", "polyarea", "polyderiv", "polyfit",
3036        "polygcd", "polyint", "polyout", "polyreduce",
3037        "polyval", "polyvalm", "postpad", "powerset",
3038        "ppder", "ppint", "ppjumps", "ppplot", "ppval",
3039        "pqpnonneg", "prepad", "primes", "print",
3040        "print_usage", "prism", "probit", "qp", "qqplot",
3041        "quadcc", "quadgk", "quadl", "quadv", "quiver",
3042        "qzhess", "rainbow", "randi", "range", "rank",
3043        "ranks", "rat", "reallog", "realpow", "realsqrt",
3044        "record", "rectangle_lw", "rectangle_sw",
3045        "rectint", "refresh", "refreshdata",
3046        "regexptranslate", "repmat", "residue", "ribbon",
3047        "rindex", "roots", "rose", "rosser", "rotdim",
3048        "rref", "run", "run_count", "rundemos", "run_test",
3049        "runtests", "saveas", "saveaudio", "saveobj",
3050        "savepath", "scatter", "secd", "semilogx",
3051        "semilogxerr", "semilogy", "semilogyerr",
3052        "setaudio", "setdiff", "setfield", "setxor",
3053        "shading", "shift", "shiftdim", "sign_test",
3054        "sinc", "sind", "sinetone", "sinewave", "skewness",
3055        "slice", "sombrero", "sortrows", "spaugment",
3056        "spconvert", "spdiags", "spearman", "spectral_adf",
3057        "spectral_xdf", "specular", "speed", "spencer",
3058        "speye", "spfun", "sphere", "spinmap", "spline",
3059        "spones", "sprand", "sprandn", "sprandsym",
3060        "spring", "spstats", "spy", "sqp", "stairs",
3061        "statistics", "std", "stdnormal_cdf",
3062        "stdnormal_inv", "stdnormal_pdf", "stdnormal_rnd",
3063        "stem", "stft", "strcat", "strchr", "strjust",
3064        "strmatch", "strread", "strsplit", "strtok",
3065        "strtrim", "strtrunc", "structfun", "studentize",
3066        "subplot", "subsindex", "subspace", "substr",
3067        "substruct", "summer", "surf", "surface", "surfc",
3068        "surfl", "surfnorm", "svds", "swapbytes",
3069        "sylvester_matrix", "symvar", "synthesis", "table",
3070        "tand", "tar", "tcdf", "tempdir", "tempname",
3071        "test", "text", "textread", "textscan", "tinv",
3072        "title", "toeplitz", "tpdf", "trace", "trapz",
3073        "treelayout", "treeplot", "triangle_lw",
3074        "triangle_sw", "tril", "trimesh", "triplequad",
3075        "triplot", "trisurf", "triu", "trnd", "tsearchn",
3076        "t_test", "t_test_regression", "type", "unidcdf",
3077        "unidinv", "unidpdf", "unidrnd", "unifcdf",
3078        "unifinv", "unifpdf", "unifrnd", "union", "unique",
3079        "unix", "unmkpp", "unpack", "untabify", "untar",
3080        "unwrap", "unzip", "u_test", "validatestring",
3081        "vander", "var", "var_test", "vech", "ver",
3082        "version", "view", "voronoi", "voronoin",
3083        "waitforbuttonpress", "wavread", "wavwrite",
3084        "wblcdf", "wblinv", "wblpdf", "wblrnd", "weekday",
3085        "welch_test", "what", "white", "whitebg",
3086        "wienrnd", "wilcoxon_test", "wilkinson", "winter",
3087        "xlabel", "xlim", "ylabel", "yulewalker", "zip",
3088        "zlabel", "z_test")
3089
3090    loadable_kw = (
3091        "airy", "amd", "balance", "besselh", "besseli",
3092        "besselj", "besselk", "bessely", "bitpack",
3093        "bsxfun", "builtin", "ccolamd", "cellfun",
3094        "cellslices", "chol", "choldelete", "cholinsert",
3095        "cholinv", "cholshift", "cholupdate", "colamd",
3096        "colloc", "convhulln", "convn", "csymamd",
3097        "cummax", "cummin", "daspk", "daspk_options",
3098        "dasrt", "dasrt_options", "dassl", "dassl_options",
3099        "dbclear", "dbdown", "dbstack", "dbstatus",
3100        "dbstop", "dbtype", "dbup", "dbwhere", "det",
3101        "dlmread", "dmperm", "dot", "eig", "eigs",
3102        "endgrent", "endpwent", "etree", "fft", "fftn",
3103        "fftw", "filter", "find", "full", "gcd",
3104        "getgrent", "getgrgid", "getgrnam", "getpwent",
3105        "getpwnam", "getpwuid", "getrusage", "givens",
3106        "gmtime", "gnuplot_binary", "hess", "ifft",
3107        "ifftn", "inv", "isdebugmode", "issparse", "kron",
3108        "localtime", "lookup", "lsode", "lsode_options",
3109        "lu", "luinc", "luupdate", "matrix_type", "max",
3110        "min", "mktime", "pinv", "qr", "qrdelete",
3111        "qrinsert", "qrshift", "qrupdate", "quad",
3112        "quad_options", "qz", "rand", "rande", "randg",
3113        "randn", "randp", "randperm", "rcond", "regexp",
3114        "regexpi", "regexprep", "schur", "setgrent",
3115        "setpwent", "sort", "spalloc", "sparse", "spparms",
3116        "sprank", "sqrtm", "strfind", "strftime",
3117        "strptime", "strrep", "svd", "svd_driver", "syl",
3118        "symamd", "symbfact", "symrcm", "time", "tsearch",
3119        "typecast", "urlread", "urlwrite")
3120
3121    mapping_kw = (
3122        "abs", "acos", "acosh", "acot", "acoth", "acsc",
3123        "acsch", "angle", "arg", "asec", "asech", "asin",
3124        "asinh", "atan", "atanh", "beta", "betainc",
3125        "betaln", "bincoeff", "cbrt", "ceil", "conj", "cos",
3126        "cosh", "cot", "coth", "csc", "csch", "erf", "erfc",
3127        "erfcx", "erfinv", "exp", "finite", "fix", "floor",
3128        "fmod", "gamma", "gammainc", "gammaln", "imag",
3129        "isalnum", "isalpha", "isascii", "iscntrl",
3130        "isdigit", "isfinite", "isgraph", "isinf",
3131        "islower", "isna", "isnan", "isprint", "ispunct",
3132        "isspace", "isupper", "isxdigit", "lcm", "lgamma",
3133        "log", "lower", "mod", "real", "rem", "round",
3134        "roundb", "sec", "sech", "sign", "sin", "sinh",
3135        "sqrt", "tan", "tanh", "toascii", "tolower", "xor")
3136
3137    builtin_consts = (
3138        "EDITOR", "EXEC_PATH", "I", "IMAGE_PATH", "NA",
3139        "OCTAVE_HOME", "OCTAVE_VERSION", "PAGER",
3140        "PAGER_FLAGS", "SEEK_CUR", "SEEK_END", "SEEK_SET",
3141        "SIG", "S_ISBLK", "S_ISCHR", "S_ISDIR", "S_ISFIFO",
3142        "S_ISLNK", "S_ISREG", "S_ISSOCK", "WCONTINUE",
3143        "WCOREDUMP", "WEXITSTATUS", "WIFCONTINUED",
3144        "WIFEXITED", "WIFSIGNALED", "WIFSTOPPED", "WNOHANG",
3145        "WSTOPSIG", "WTERMSIG", "WUNTRACED")
3146
3147    tokens = {
3148        'root': [
3149            # We should look into multiline comments
3150            (r'[%#].*$', Comment),
3151            (r'^\s*function\b', Keyword, 'deffunc'),
3152
3153            # from 'iskeyword' on hg changeset 8cc154f45e37
3154            (words((
3155                '__FILE__', '__LINE__', 'break', 'case', 'catch', 'classdef', 'continue', 'do', 'else',
3156                'elseif', 'end', 'end_try_catch', 'end_unwind_protect', 'endclassdef',
3157                'endevents', 'endfor', 'endfunction', 'endif', 'endmethods', 'endproperties',
3158                'endswitch', 'endwhile', 'events', 'for', 'function', 'get', 'global', 'if', 'methods',
3159                'otherwise', 'persistent', 'properties', 'return', 'set', 'static', 'switch', 'try',
3160                'until', 'unwind_protect', 'unwind_protect_cleanup', 'while'), suffix=r'\b'),
3161             Keyword),
3162
3163            (words(builtin_kw + command_kw + function_kw + loadable_kw + mapping_kw,
3164                   suffix=r'\b'),  Name.Builtin),
3165
3166            (words(builtin_consts, suffix=r'\b'), Name.Constant),
3167
3168            # operators in Octave but not Matlab:
3169            (r'-=|!=|!|/=|--', Operator),
3170            # operators:
3171            (r'-|==|~=|<|>|<=|>=|&&|&|~|\|\|?', Operator),
3172            # operators in Octave but not Matlab requiring escape for re:
3173            (r'\*=|\+=|\^=|\/=|\\=|\*\*|\+\+|\.\*\*', Operator),
3174            # operators requiring escape for re:
3175            (r'\.\*|\*|\+|\.\^|\.\\|\.\/|\/|\\', Operator),
3176
3177
3178            # punctuation:
3179            (r'[\[\](){}:@.,]', Punctuation),
3180            (r'=|:|;', Punctuation),
3181
3182            (r'"[^"]*"', String),
3183
3184            (r'(\d+\.\d*|\d*\.\d+)([eEf][+-]?[0-9]+)?', Number.Float),
3185            (r'\d+[eEf][+-]?[0-9]+', Number.Float),
3186            (r'\d+', Number.Integer),
3187
3188            # quote can be transpose, instead of string:
3189            # (not great, but handles common cases...)
3190            (r'(?<=[\w)\].])\'+', Operator),
3191            (r'(?<![\w)\].])\'', String, 'string'),
3192
3193            (r'[a-zA-Z_]\w*', Name),
3194            (r'.', Text),
3195        ],
3196        'string': [
3197            (r"[^']*'", String, '#pop'),
3198        ],
3199        'deffunc': [
3200            (r'(\s*)(?:(\S+)(\s*)(=)(\s*))?(.+)(\()(.*)(\))(\s*)',
3201             bygroups(Whitespace, Text, Whitespace, Punctuation,
3202                      Whitespace, Name.Function, Punctuation, Text,
3203                      Punctuation, Whitespace), '#pop'),
3204            # function with no args
3205            (r'(\s*)([a-zA-Z_]\w*)',
3206             bygroups(Whitespace, Name.Function), '#pop'),
3207        ],
3208    }
3209
3210    def analyse_text(text):
3211        """Octave is quite hard to spot, and it looks like Matlab as well."""
3212        return 0
3213
3214
3215class ScilabLexer(RegexLexer):
3216    """
3217    For Scilab source code.
3218
3219    .. versionadded:: 1.5
3220    """
3221    name = 'Scilab'
3222    aliases = ['scilab']
3223    filenames = ['*.sci', '*.sce', '*.tst']
3224    mimetypes = ['text/scilab']
3225
3226    tokens = {
3227        'root': [
3228            (r'//.*?$', Comment.Single),
3229            (r'^\s*function\b', Keyword, 'deffunc'),
3230
3231            (words((
3232                '__FILE__', '__LINE__', 'break', 'case', 'catch', 'classdef', 'continue', 'do', 'else',
3233                'elseif', 'end', 'end_try_catch', 'end_unwind_protect', 'endclassdef',
3234                'endevents', 'endfor', 'endfunction', 'endif', 'endmethods', 'endproperties',
3235                'endswitch', 'endwhile', 'events', 'for', 'function', 'get', 'global', 'if', 'methods',
3236                'otherwise', 'persistent', 'properties', 'return', 'set', 'static', 'switch', 'try',
3237                'until', 'unwind_protect', 'unwind_protect_cleanup', 'while'), suffix=r'\b'),
3238             Keyword),
3239
3240            (words(_scilab_builtins.functions_kw +
3241                   _scilab_builtins.commands_kw +
3242                   _scilab_builtins.macros_kw, suffix=r'\b'), Name.Builtin),
3243
3244            (words(_scilab_builtins.variables_kw, suffix=r'\b'), Name.Constant),
3245
3246            # operators:
3247            (r'-|==|~=|<|>|<=|>=|&&|&|~|\|\|?', Operator),
3248            # operators requiring escape for re:
3249            (r'\.\*|\*|\+|\.\^|\.\\|\.\/|\/|\\', Operator),
3250
3251            # punctuation:
3252            (r'[\[\](){}@.,=:;]', Punctuation),
3253
3254            (r'"[^"]*"', String),
3255
3256            # quote can be transpose, instead of string:
3257            # (not great, but handles common cases...)
3258            (r'(?<=[\w)\].])\'+', Operator),
3259            (r'(?<![\w)\].])\'', String, 'string'),
3260
3261            (r'(\d+\.\d*|\d*\.\d+)([eEf][+-]?[0-9]+)?', Number.Float),
3262            (r'\d+[eEf][+-]?[0-9]+', Number.Float),
3263            (r'\d+', Number.Integer),
3264
3265            (r'[a-zA-Z_]\w*', Name),
3266            (r'.', Text),
3267        ],
3268        'string': [
3269            (r"[^']*'", String, '#pop'),
3270            (r'.', String, '#pop'),
3271        ],
3272        'deffunc': [
3273            (r'(\s*)(?:(\S+)(\s*)(=)(\s*))?(.+)(\()(.*)(\))(\s*)',
3274             bygroups(Whitespace, Text, Whitespace, Punctuation,
3275                      Whitespace, Name.Function, Punctuation, Text,
3276                      Punctuation, Whitespace), '#pop'),
3277            # function with no args
3278            (r'(\s*)([a-zA-Z_]\w*)', bygroups(Text, Name.Function), '#pop'),
3279        ],
3280    }
3281