Cours/venv/lib/python3.12/site-packages/pygments/lexers/matlab.py

3307 lines
130 KiB
Python

"""
pygments.lexers.matlab
~~~~~~~~~~~~~~~~~~~~~~
Lexers for Matlab and related languages.
:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import re
from pygments.lexer import Lexer, RegexLexer, bygroups, default, words, \
do_insertions, include
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
Number, Punctuation, Generic, Whitespace
from pygments.lexers import _scilab_builtins
__all__ = ['MatlabLexer', 'MatlabSessionLexer', 'OctaveLexer', 'ScilabLexer']
class MatlabLexer(RegexLexer):
"""
For Matlab source code.
"""
name = 'Matlab'
aliases = ['matlab']
filenames = ['*.m']
mimetypes = ['text/matlab']
url = 'https://www.mathworks.com/products/matlab.html'
version_added = '0.10'
_operators = r'-|==|~=|<=|>=|<|>|&&|&|~|\|\|?|\.\*|\*|\+|\.\^|\.\\|\./|/|\\'
tokens = {
'expressions': [
# operators:
(_operators, Operator),
# numbers (must come before punctuation to handle `.5`; cannot use
# `\b` due to e.g. `5. + .5`). The negative lookahead on operators
# avoids including the dot in `1./x` (the dot is part of `./`).
(rf'(?<!\w)((\d+\.\d+)|(\d*\.\d+)|(\d+\.(?!{_operators})))'
r'([eEf][+-]?\d+)?(?!\w)', Number.Float),
(r'\b\d+[eEf][+-]?[0-9]+\b', Number.Float),
(r'\b\d+\b', Number.Integer),
# punctuation:
(r'\[|\]|\(|\)|\{|\}|:|@|\.|,', Punctuation),
(r'=|:|;', Punctuation),
# quote can be transpose, instead of string:
# (not great, but handles common cases...)
(r'(?<=[\w)\].])\'+', Operator),
(r'"(""|[^"])*"', String),
(r'(?<![\w)\].])\'', String, 'string'),
(r'[a-zA-Z_]\w*', Name),
(r'\s+', Whitespace),
(r'.', Text),
],
'root': [
# line starting with '!' is sent as a system command. not sure what
# label to use...
(r'^!.*', String.Other),
(r'%\{\s*\n', Comment.Multiline, 'blockcomment'),
(r'%.*$', Comment),
(r'(\s*^\s*)(function)\b', bygroups(Whitespace, Keyword), 'deffunc'),
(r'(\s*^\s*)(properties)(\s+)(\()',
bygroups(Whitespace, Keyword, Whitespace, Punctuation),
('defprops', 'propattrs')),
(r'(\s*^\s*)(properties)\b',
bygroups(Whitespace, Keyword), 'defprops'),
# from 'iskeyword' on version 9.4 (R2018a):
# Check that there is no preceding dot, as keywords are valid field
# names.
(words(('break', 'case', 'catch', 'classdef', 'continue',
'dynamicprops', 'else', 'elseif', 'end', 'for', 'function',
'global', 'if', 'methods', 'otherwise', 'parfor',
'persistent', 'return', 'spmd', 'switch',
'try', 'while'),
prefix=r'(?<!\.)(\s*)(', suffix=r')\b'),
bygroups(Whitespace, Keyword)),
(
words(
[
# See https://mathworks.com/help/matlab/referencelist.html
# Below data from 2021-02-10T18:24:08Z
# for Matlab release R2020b
"BeginInvoke",
"COM",
"Combine",
"CombinedDatastore",
"EndInvoke",
"Execute",
"FactoryGroup",
"FactorySetting",
"Feval",
"FunctionTestCase",
"GetCharArray",
"GetFullMatrix",
"GetVariable",
"GetWorkspaceData",
"GraphPlot",
"H5.close",
"H5.garbage_collect",
"H5.get_libversion",
"H5.open",
"H5.set_free_list_limits",
"H5A.close",
"H5A.create",
"H5A.delete",
"H5A.get_info",
"H5A.get_name",
"H5A.get_space",
"H5A.get_type",
"H5A.iterate",
"H5A.open",
"H5A.open_by_idx",
"H5A.open_by_name",
"H5A.read",
"H5A.write",
"H5D.close",
"H5D.create",
"H5D.get_access_plist",
"H5D.get_create_plist",
"H5D.get_offset",
"H5D.get_space",
"H5D.get_space_status",
"H5D.get_storage_size",
"H5D.get_type",
"H5D.open",
"H5D.read",
"H5D.set_extent",
"H5D.vlen_get_buf_size",
"H5D.write",
"H5DS.attach_scale",
"H5DS.detach_scale",
"H5DS.get_label",
"H5DS.get_num_scales",
"H5DS.get_scale_name",
"H5DS.is_scale",
"H5DS.iterate_scales",
"H5DS.set_label",
"H5DS.set_scale",
"H5E.clear",
"H5E.get_major",
"H5E.get_minor",
"H5E.walk",
"H5F.close",
"H5F.create",
"H5F.flush",
"H5F.get_access_plist",
"H5F.get_create_plist",
"H5F.get_filesize",
"H5F.get_freespace",
"H5F.get_info",
"H5F.get_mdc_config",
"H5F.get_mdc_hit_rate",
"H5F.get_mdc_size",
"H5F.get_name",
"H5F.get_obj_count",
"H5F.get_obj_ids",
"H5F.is_hdf5",
"H5F.mount",
"H5F.open",
"H5F.reopen",
"H5F.set_mdc_config",
"H5F.unmount",
"H5G.close",
"H5G.create",
"H5G.get_info",
"H5G.open",
"H5I.dec_ref",
"H5I.get_file_id",
"H5I.get_name",
"H5I.get_ref",
"H5I.get_type",
"H5I.inc_ref",
"H5I.is_valid",
"H5L.copy",
"H5L.create_external",
"H5L.create_hard",
"H5L.create_soft",
"H5L.delete",
"H5L.exists",
"H5L.get_info",
"H5L.get_name_by_idx",
"H5L.get_val",
"H5L.iterate",
"H5L.iterate_by_name",
"H5L.move",
"H5L.visit",
"H5L.visit_by_name",
"H5ML.compare_values",
"H5ML.get_constant_names",
"H5ML.get_constant_value",
"H5ML.get_function_names",
"H5ML.get_mem_datatype",
"H5O.close",
"H5O.copy",
"H5O.get_comment",
"H5O.get_comment_by_name",
"H5O.get_info",
"H5O.link",
"H5O.open",
"H5O.open_by_idx",
"H5O.set_comment",
"H5O.set_comment_by_name",
"H5O.visit",
"H5O.visit_by_name",
"H5P.all_filters_avail",
"H5P.close",
"H5P.close_class",
"H5P.copy",
"H5P.create",
"H5P.equal",
"H5P.exist",
"H5P.fill_value_defined",
"H5P.get",
"H5P.get_alignment",
"H5P.get_alloc_time",
"H5P.get_attr_creation_order",
"H5P.get_attr_phase_change",
"H5P.get_btree_ratios",
"H5P.get_char_encoding",
"H5P.get_chunk",
"H5P.get_chunk_cache",
"H5P.get_class",
"H5P.get_class_name",
"H5P.get_class_parent",
"H5P.get_copy_object",
"H5P.get_create_intermediate_group",
"H5P.get_driver",
"H5P.get_edc_check",
"H5P.get_external",
"H5P.get_external_count",
"H5P.get_family_offset",
"H5P.get_fapl_core",
"H5P.get_fapl_family",
"H5P.get_fapl_multi",
"H5P.get_fclose_degree",
"H5P.get_fill_time",
"H5P.get_fill_value",
"H5P.get_filter",
"H5P.get_filter_by_id",
"H5P.get_gc_references",
"H5P.get_hyper_vector_size",
"H5P.get_istore_k",
"H5P.get_layout",
"H5P.get_libver_bounds",
"H5P.get_link_creation_order",
"H5P.get_link_phase_change",
"H5P.get_mdc_config",
"H5P.get_meta_block_size",
"H5P.get_multi_type",
"H5P.get_nfilters",
"H5P.get_nprops",
"H5P.get_sieve_buf_size",
"H5P.get_size",
"H5P.get_sizes",
"H5P.get_small_data_block_size",
"H5P.get_sym_k",
"H5P.get_userblock",
"H5P.get_version",
"H5P.isa_class",
"H5P.iterate",
"H5P.modify_filter",
"H5P.remove_filter",
"H5P.set",
"H5P.set_alignment",
"H5P.set_alloc_time",
"H5P.set_attr_creation_order",
"H5P.set_attr_phase_change",
"H5P.set_btree_ratios",
"H5P.set_char_encoding",
"H5P.set_chunk",
"H5P.set_chunk_cache",
"H5P.set_copy_object",
"H5P.set_create_intermediate_group",
"H5P.set_deflate",
"H5P.set_edc_check",
"H5P.set_external",
"H5P.set_family_offset",
"H5P.set_fapl_core",
"H5P.set_fapl_family",
"H5P.set_fapl_log",
"H5P.set_fapl_multi",
"H5P.set_fapl_sec2",
"H5P.set_fapl_split",
"H5P.set_fapl_stdio",
"H5P.set_fclose_degree",
"H5P.set_fill_time",
"H5P.set_fill_value",
"H5P.set_filter",
"H5P.set_fletcher32",
"H5P.set_gc_references",
"H5P.set_hyper_vector_size",
"H5P.set_istore_k",
"H5P.set_layout",
"H5P.set_libver_bounds",
"H5P.set_link_creation_order",
"H5P.set_link_phase_change",
"H5P.set_mdc_config",
"H5P.set_meta_block_size",
"H5P.set_multi_type",
"H5P.set_nbit",
"H5P.set_scaleoffset",
"H5P.set_shuffle",
"H5P.set_sieve_buf_size",
"H5P.set_sizes",
"H5P.set_small_data_block_size",
"H5P.set_sym_k",
"H5P.set_userblock",
"H5R.create",
"H5R.dereference",
"H5R.get_name",
"H5R.get_obj_type",
"H5R.get_region",
"H5S.close",
"H5S.copy",
"H5S.create",
"H5S.create_simple",
"H5S.extent_copy",
"H5S.get_select_bounds",
"H5S.get_select_elem_npoints",
"H5S.get_select_elem_pointlist",
"H5S.get_select_hyper_blocklist",
"H5S.get_select_hyper_nblocks",
"H5S.get_select_npoints",
"H5S.get_select_type",
"H5S.get_simple_extent_dims",
"H5S.get_simple_extent_ndims",
"H5S.get_simple_extent_npoints",
"H5S.get_simple_extent_type",
"H5S.is_simple",
"H5S.offset_simple",
"H5S.select_all",
"H5S.select_elements",
"H5S.select_hyperslab",
"H5S.select_none",
"H5S.select_valid",
"H5S.set_extent_none",
"H5S.set_extent_simple",
"H5T.array_create",
"H5T.close",
"H5T.commit",
"H5T.committed",
"H5T.copy",
"H5T.create",
"H5T.detect_class",
"H5T.enum_create",
"H5T.enum_insert",
"H5T.enum_nameof",
"H5T.enum_valueof",
"H5T.equal",
"H5T.get_array_dims",
"H5T.get_array_ndims",
"H5T.get_class",
"H5T.get_create_plist",
"H5T.get_cset",
"H5T.get_ebias",
"H5T.get_fields",
"H5T.get_inpad",
"H5T.get_member_class",
"H5T.get_member_index",
"H5T.get_member_name",
"H5T.get_member_offset",
"H5T.get_member_type",
"H5T.get_member_value",
"H5T.get_native_type",
"H5T.get_nmembers",
"H5T.get_norm",
"H5T.get_offset",
"H5T.get_order",
"H5T.get_pad",
"H5T.get_precision",
"H5T.get_sign",
"H5T.get_size",
"H5T.get_strpad",
"H5T.get_super",
"H5T.get_tag",
"H5T.insert",
"H5T.is_variable_str",
"H5T.lock",
"H5T.open",
"H5T.pack",
"H5T.set_cset",
"H5T.set_ebias",
"H5T.set_fields",
"H5T.set_inpad",
"H5T.set_norm",
"H5T.set_offset",
"H5T.set_order",
"H5T.set_pad",
"H5T.set_precision",
"H5T.set_sign",
"H5T.set_size",
"H5T.set_strpad",
"H5T.set_tag",
"H5T.vlen_create",
"H5Z.filter_avail",
"H5Z.get_filter_info",
"Inf",
"KeyValueDatastore",
"KeyValueStore",
"MException",
"MException.last",
"MaximizeCommandWindow",
"MemoizedFunction",
"MinimizeCommandWindow",
"NET",
"NET.Assembly",
"NET.GenericClass",
"NET.NetException",
"NET.addAssembly",
"NET.convertArray",
"NET.createArray",
"NET.createGeneric",
"NET.disableAutoRelease",
"NET.enableAutoRelease",
"NET.invokeGenericMethod",
"NET.isNETSupported",
"NET.setStaticProperty",
"NaN",
"NaT",
"OperationResult",
"PutCharArray",
"PutFullMatrix",
"PutWorkspaceData",
"PythonEnvironment",
"Quit",
"RandStream",
"ReleaseCompatibilityException",
"ReleaseCompatibilityResults",
"Remove",
"RemoveAll",
"Setting",
"SettingsGroup",
"TallDatastore",
"Test",
"TestResult",
"Tiff",
"TransformedDatastore",
"ValueIterator",
"VersionResults",
"VideoReader",
"VideoWriter",
"abs",
"accumarray",
"acos",
"acosd",
"acosh",
"acot",
"acotd",
"acoth",
"acsc",
"acscd",
"acsch",
"actxGetRunningServer",
"actxserver",
"add",
"addCause",
"addCorrection",
"addFile",
"addFolderIncludingChildFiles",
"addGroup",
"addLabel",
"addPath",
"addReference",
"addSetting",
"addShortcut",
"addShutdownFile",
"addStartupFile",
"addStyle",
"addToolbarExplorationButtons",
"addboundary",
"addcats",
"addedge",
"addevent",
"addlistener",
"addmulti",
"addnode",
"addpath",
"addpoints",
"addpref",
"addprop",
"addsample",
"addsampletocollection",
"addtodate",
"addts",
"addvars",
"adjacency",
"airy",
"align",
"alim",
"all",
"allchild",
"alpha",
"alphaShape",
"alphaSpectrum",
"alphaTriangulation",
"alphamap",
"alphanumericBoundary",
"alphanumericsPattern",
"amd",
"analyzeCodeCompatibility",
"ancestor",
"angle",
"animatedline",
"annotation",
"ans",
"any",
"appdesigner",
"append",
"area",
"arguments",
"array2table",
"array2timetable",
"arrayDatastore",
"arrayfun",
"asFewOfPattern",
"asManyOfPattern",
"ascii",
"asec",
"asecd",
"asech",
"asin",
"asind",
"asinh",
"assert",
"assignin",
"atan",
"atan2",
"atan2d",
"atand",
"atanh",
"audiodevinfo",
"audiodevreset",
"audioinfo",
"audioplayer",
"audioread",
"audiorecorder",
"audiowrite",
"autumn",
"axes",
"axis",
"axtoolbar",
"axtoolbarbtn",
"balance",
"bandwidth",
"bar",
"bar3",
"bar3h",
"barh",
"barycentricToCartesian",
"base2dec",
"batchStartupOptionUsed",
"bctree",
"beep",
"bench",
"besselh",
"besseli",
"besselj",
"besselk",
"bessely",
"beta",
"betainc",
"betaincinv",
"betaln",
"between",
"bfsearch",
"bicg",
"bicgstab",
"bicgstabl",
"biconncomp",
"bin2dec",
"binary",
"binscatter",
"bitand",
"bitcmp",
"bitget",
"bitnot",
"bitor",
"bitset",
"bitshift",
"bitxor",
"blanks",
"ble",
"blelist",
"blkdiag",
"bluetooth",
"bluetoothlist",
"bone",
"boundary",
"boundaryFacets",
"boundaryshape",
"boundingbox",
"bounds",
"box",
"boxchart",
"brighten",
"brush",
"bsxfun",
"bubblechart",
"bubblechart3",
"bubblelegend",
"bubblelim",
"bubblesize",
"builddocsearchdb",
"builtin",
"bvp4c",
"bvp5c",
"bvpget",
"bvpinit",
"bvpset",
"bvpxtend",
"caldays",
"caldiff",
"calendar",
"calendarDuration",
"calllib",
"calmonths",
"calquarters",
"calweeks",
"calyears",
"camdolly",
"cameratoolbar",
"camlight",
"camlookat",
"camorbit",
"campan",
"campos",
"camproj",
"camroll",
"camtarget",
"camup",
"camva",
"camzoom",
"canUseGPU",
"canUseParallelPool",
"cart2pol",
"cart2sph",
"cartesianToBarycentric",
"caseInsensitivePattern",
"caseSensitivePattern",
"cast",
"cat",
"categorical",
"categories",
"caxis",
"cd",
"cdf2rdf",
"cdfepoch",
"cdfinfo",
"cdflib",
"cdfread",
"ceil",
"cell",
"cell2mat",
"cell2struct",
"cell2table",
"celldisp",
"cellfun",
"cellplot",
"cellstr",
"centrality",
"centroid",
"cgs",
"char",
"characterListPattern",
"characteristic",
"checkcode",
"chol",
"cholupdate",
"choose",
"chooseContextMenu",
"circshift",
"circumcenter",
"cla",
"clabel",
"class",
"classUnderlying",
"clc",
"clear",
"clearAllMemoizedCaches",
"clearPersonalValue",
"clearTemporaryValue",
"clearpoints",
"clearvars",
"clf",
"clibArray",
"clibConvertArray",
"clibIsNull",
"clibIsReadOnly",
"clibRelease",
"clibgen.buildInterface",
"clibgen.generateLibraryDefinition",
"clipboard",
"clock",
"clone",
"close",
"closeFile",
"closereq",
"cmap2gray",
"cmpermute",
"cmunique",
"codeCompatibilityReport",
"colamd",
"collapse",
"colon",
"colorbar",
"colorcube",
"colormap",
"colororder",
"colperm",
"com.mathworks.engine.MatlabEngine",
"com.mathworks.matlab.types.CellStr",
"com.mathworks.matlab.types.Complex",
"com.mathworks.matlab.types.HandleObject",
"com.mathworks.matlab.types.Struct",
"combine",
"comet",
"comet3",
"compan",
"compass",
"complex",
"compose",
"computer",
"comserver",
"cond",
"condeig",
"condensation",
"condest",
"coneplot",
"configureCallback",
"configureTerminator",
"conj",
"conncomp",
"containers.Map",
"contains",
"containsrange",
"contour",
"contour3",
"contourc",
"contourf",
"contourslice",
"contrast",
"conv",
"conv2",
"convertCharsToStrings",
"convertContainedStringsToChars",
"convertStringsToChars",
"convertTo",
"convertvars",
"convexHull",
"convhull",
"convhulln",
"convn",
"cool",
"copper",
"copyHDU",
"copyfile",
"copygraphics",
"copyobj",
"corrcoef",
"cos",
"cosd",
"cosh",
"cospi",
"cot",
"cotd",
"coth",
"count",
"countcats",
"cov",
"cplxpair",
"cputime",
"createCategory",
"createFile",
"createImg",
"createLabel",
"createTbl",
"criticalAlpha",
"cross",
"csc",
"cscd",
"csch",
"ctranspose",
"cummax",
"cummin",
"cumprod",
"cumsum",
"cumtrapz",
"curl",
"currentProject",
"cylinder",
"daspect",
"dataTipInteraction",
"dataTipTextRow",
"datacursormode",
"datastore",
"datatip",
"date",
"datenum",
"dateshift",
"datestr",
"datetick",
"datetime",
"datevec",
"day",
"days",
"dbclear",
"dbcont",
"dbdown",
"dbmex",
"dbquit",
"dbstack",
"dbstatus",
"dbstep",
"dbstop",
"dbtype",
"dbup",
"dde23",
"ddeget",
"ddensd",
"ddesd",
"ddeset",
"deblank",
"dec2base",
"dec2bin",
"dec2hex",
"decic",
"decomposition",
"deconv",
"deg2rad",
"degree",
"del2",
"delaunay",
"delaunayTriangulation",
"delaunayn",
"delete",
"deleteCol",
"deleteFile",
"deleteHDU",
"deleteKey",
"deleteRecord",
"deleteRows",
"delevent",
"delimitedTextImportOptions",
"delsample",
"delsamplefromcollection",
"demo",
"descriptor",
"det",
"details",
"detectImportOptions",
"detrend",
"deval",
"dfsearch",
"diag",
"dialog",
"diary",
"diff",
"diffuse",
"digitBoundary",
"digitsPattern",
"digraph",
"dir",
"disableDefaultInteractivity",
"discretize",
"disp",
"display",
"dissect",
"distances",
"dither",
"divergence",
"dmperm",
"doc",
"docsearch",
"dos",
"dot",
"double",
"drag",
"dragrect",
"drawnow",
"dsearchn",
"duration",
"dynamicprops",
"echo",
"echodemo",
"echotcpip",
"edgeAttachments",
"edgecount",
"edges",
"edit",
"eig",
"eigs",
"ellipj",
"ellipke",
"ellipsoid",
"empty",
"enableDefaultInteractivity",
"enableLegacyExplorationModes",
"enableNETfromNetworkDrive",
"enableservice",
"endsWith",
"enumeration",
"eomday",
"eps",
"eq",
"equilibrate",
"erase",
"eraseBetween",
"erf",
"erfc",
"erfcinv",
"erfcx",
"erfinv",
"error",
"errorbar",
"errordlg",
"etime",
"etree",
"etreeplot",
"eval",
"evalc",
"evalin",
"event.ClassInstanceEvent",
"event.DynamicPropertyEvent",
"event.EventData",
"event.PropertyEvent",
"event.hasListener",
"event.listener",
"event.proplistener",
"eventlisteners",
"events",
"exceltime",
"exist",
"exit",
"exp",
"expand",
"expint",
"expm",
"expm1",
"export",
"export2wsdlg",
"exportapp",
"exportgraphics",
"exportsetupdlg",
"extract",
"extractAfter",
"extractBefore",
"extractBetween",
"eye",
"ezpolar",
"faceNormal",
"factor",
"factorial",
"false",
"fclose",
"fcontour",
"feather",
"featureEdges",
"feof",
"ferror",
"feval",
"fewerbins",
"fft",
"fft2",
"fftn",
"fftshift",
"fftw",
"fgetl",
"fgets",
"fieldnames",
"figure",
"figurepalette",
"fileDatastore",
"fileMode",
"fileName",
"fileattrib",
"filemarker",
"fileparts",
"fileread",
"filesep",
"fill",
"fill3",
"fillmissing",
"filloutliers",
"filter",
"filter2",
"fimplicit",
"fimplicit3",
"find",
"findCategory",
"findEvent",
"findFile",
"findLabel",
"findall",
"findedge",
"findfigs",
"findgroups",
"findnode",
"findobj",
"findprop",
"finish",
"fitsdisp",
"fitsinfo",
"fitsread",
"fitswrite",
"fix",
"fixedWidthImportOptions",
"flag",
"flintmax",
"flip",
"flipedge",
"fliplr",
"flipud",
"floor",
"flow",
"flush",
"fmesh",
"fminbnd",
"fminsearch",
"fopen",
"format",
"fplot",
"fplot3",
"fprintf",
"frame2im",
"fread",
"freeBoundary",
"freqspace",
"frewind",
"fscanf",
"fseek",
"fsurf",
"ftell",
"ftp",
"full",
"fullfile",
"func2str",
"function_handle",
"functions",
"functiontests",
"funm",
"fwrite",
"fzero",
"gallery",
"gamma",
"gammainc",
"gammaincinv",
"gammaln",
"gather",
"gca",
"gcbf",
"gcbo",
"gcd",
"gcf",
"gcmr",
"gco",
"genpath",
"geoaxes",
"geobasemap",
"geobubble",
"geodensityplot",
"geolimits",
"geoplot",
"geoscatter",
"geotickformat",
"get",
"getAColParms",
"getAxes",
"getBColParms",
"getColName",
"getColType",
"getColorbar",
"getConstantValue",
"getEqColType",
"getFileFormats",
"getHDUnum",
"getHDUtype",
"getHdrSpace",
"getImgSize",
"getImgType",
"getLayout",
"getLegend",
"getMockHistory",
"getNumCols",
"getNumHDUs",
"getNumInputs",
"getNumInputsImpl",
"getNumOutputs",
"getNumOutputsImpl",
"getNumRows",
"getOpenFiles",
"getProfiles",
"getPropertyGroupsImpl",
"getReport",
"getTimeStr",
"getVersion",
"getabstime",
"getappdata",
"getaudiodata",
"getdatasamples",
"getdatasamplesize",
"getenv",
"getfield",
"getframe",
"getinterpmethod",
"getnext",
"getpinstatus",
"getpixelposition",
"getplayer",
"getpoints",
"getpref",
"getqualitydesc",
"getrangefromclass",
"getsamples",
"getsampleusingtime",
"gettimeseriesnames",
"gettsafteratevent",
"gettsafterevent",
"gettsatevent",
"gettsbeforeatevent",
"gettsbeforeevent",
"gettsbetweenevents",
"getvaropts",
"ginput",
"gmres",
"gobjects",
"gplot",
"grabcode",
"gradient",
"graph",
"gray",
"grid",
"griddata",
"griddatan",
"griddedInterpolant",
"groot",
"groupcounts",
"groupfilter",
"groupsummary",
"grouptransform",
"gsvd",
"gtext",
"guidata",
"guide",
"guihandles",
"gunzip",
"gzip",
"h5create",
"h5disp",
"h5info",
"h5read",
"h5readatt",
"h5write",
"h5writeatt",
"hadamard",
"handle",
"hankel",
"hasFactoryValue",
"hasFrame",
"hasGroup",
"hasPersonalValue",
"hasSetting",
"hasTemporaryValue",
"hasdata",
"hasnext",
"hdfan",
"hdfdf24",
"hdfdfr8",
"hdfh",
"hdfhd",
"hdfhe",
"hdfhx",
"hdfinfo",
"hdfml",
"hdfpt",
"hdfread",
"hdfv",
"hdfvf",
"hdfvh",
"hdfvs",
"head",
"heatmap",
"height",
"help",
"helpdlg",
"hess",
"hex2dec",
"hex2num",
"hgexport",
"hggroup",
"hgtransform",
"hidden",
"highlight",
"hilb",
"histcounts",
"histcounts2",
"histogram",
"histogram2",
"hms",
"hold",
"holes",
"home",
"horzcat",
"hot",
"hour",
"hours",
"hover",
"hsv",
"hsv2rgb",
"hypot",
"i",
"ichol",
"idealfilter",
"idivide",
"ifft",
"ifft2",
"ifftn",
"ifftshift",
"ilu",
"im2double",
"im2frame",
"im2gray",
"im2java",
"imag",
"image",
"imageDatastore",
"imagesc",
"imapprox",
"imfinfo",
"imformats",
"imgCompress",
"import",
"importdata",
"imread",
"imresize",
"imshow",
"imtile",
"imwrite",
"inShape",
"incenter",
"incidence",
"ind2rgb",
"ind2sub",
"indegree",
"inedges",
"infoImpl",
"inmem",
"inner2outer",
"innerjoin",
"inpolygon",
"input",
"inputParser",
"inputdlg",
"inputname",
"insertATbl",
"insertAfter",
"insertBTbl",
"insertBefore",
"insertCol",
"insertImg",
"insertRows",
"int16",
"int2str",
"int32",
"int64",
"int8",
"integral",
"integral2",
"integral3",
"interp1",
"interp2",
"interp3",
"interpft",
"interpn",
"interpstreamspeed",
"intersect",
"intmax",
"intmin",
"inv",
"invhilb",
"ipermute",
"iqr",
"isCompressedImg",
"isConnected",
"isDiscreteStateSpecificationMutableImpl",
"isDone",
"isDoneImpl",
"isInactivePropertyImpl",
"isInputComplexityMutableImpl",
"isInputDataTypeMutableImpl",
"isInputSizeMutableImpl",
"isInterior",
"isKey",
"isLoaded",
"isLocked",
"isMATLABReleaseOlderThan",
"isPartitionable",
"isShuffleable",
"isStringScalar",
"isTunablePropertyDataTypeMutableImpl",
"isUnderlyingType",
"isa",
"isaUnderlying",
"isappdata",
"isbanded",
"isbetween",
"iscalendarduration",
"iscategorical",
"iscategory",
"iscell",
"iscellstr",
"ischange",
"ischar",
"iscolumn",
"iscom",
"isdag",
"isdatetime",
"isdiag",
"isdst",
"isduration",
"isempty",
"isenum",
"isequal",
"isequaln",
"isevent",
"isfield",
"isfile",
"isfinite",
"isfloat",
"isfolder",
"isgraphics",
"ishandle",
"ishermitian",
"ishold",
"ishole",
"isinf",
"isinteger",
"isinterface",
"isinterior",
"isisomorphic",
"isjava",
"iskeyword",
"isletter",
"islocalmax",
"islocalmin",
"islogical",
"ismac",
"ismatrix",
"ismember",
"ismembertol",
"ismethod",
"ismissing",
"ismultigraph",
"isnan",
"isnat",
"isnumeric",
"isobject",
"isocaps",
"isocolors",
"isomorphism",
"isonormals",
"isordinal",
"isosurface",
"isoutlier",
"ispc",
"isplaying",
"ispref",
"isprime",
"isprop",
"isprotected",
"isreal",
"isrecording",
"isregular",
"isrow",
"isscalar",
"issimplified",
"issorted",
"issortedrows",
"isspace",
"issparse",
"isstring",
"isstrprop",
"isstruct",
"isstudent",
"issymmetric",
"istable",
"istall",
"istimetable",
"istril",
"istriu",
"isundefined",
"isunix",
"isvalid",
"isvarname",
"isvector",
"isweekend",
"j",
"javaArray",
"javaMethod",
"javaMethodEDT",
"javaObject",
"javaObjectEDT",
"javaaddpath",
"javachk",
"javaclasspath",
"javarmpath",
"jet",
"join",
"jsondecode",
"jsonencode",
"juliandate",
"keyboard",
"keys",
"kron",
"labeledge",
"labelnode",
"lag",
"laplacian",
"lastwarn",
"layout",
"lcm",
"ldl",
"leapseconds",
"legend",
"legendre",
"length",
"letterBoundary",
"lettersPattern",
"lib.pointer",
"libfunctions",
"libfunctionsview",
"libisloaded",
"libpointer",
"libstruct",
"license",
"light",
"lightangle",
"lighting",
"lin2mu",
"line",
"lineBoundary",
"lines",
"linkaxes",
"linkdata",
"linkprop",
"linsolve",
"linspace",
"listModifiedFiles",
"listRequiredFiles",
"listdlg",
"listener",
"listfonts",
"load",
"loadObjectImpl",
"loadlibrary",
"loadobj",
"localfunctions",
"log",
"log10",
"log1p",
"log2",
"logical",
"loglog",
"logm",
"logspace",
"lookAheadBoundary",
"lookBehindBoundary",
"lookfor",
"lower",
"ls",
"lscov",
"lsqminnorm",
"lsqnonneg",
"lsqr",
"lu",
"magic",
"makehgtform",
"makima",
"mapreduce",
"mapreducer",
"maskedPattern",
"mat2cell",
"mat2str",
"matches",
"matchpairs",
"material",
"matfile",
"matlab.System",
"matlab.addons.disableAddon",
"matlab.addons.enableAddon",
"matlab.addons.install",
"matlab.addons.installedAddons",
"matlab.addons.isAddonEnabled",
"matlab.addons.toolbox.installToolbox",
"matlab.addons.toolbox.installedToolboxes",
"matlab.addons.toolbox.packageToolbox",
"matlab.addons.toolbox.toolboxVersion",
"matlab.addons.toolbox.uninstallToolbox",
"matlab.addons.uninstall",
"matlab.apputil.create",
"matlab.apputil.getInstalledAppInfo",
"matlab.apputil.install",
"matlab.apputil.package",
"matlab.apputil.run",
"matlab.apputil.uninstall",
"matlab.codetools.requiredFilesAndProducts",
"matlab.engine.FutureResult",
"matlab.engine.MatlabEngine",
"matlab.engine.connect_matlab",
"matlab.engine.engineName",
"matlab.engine.find_matlab",
"matlab.engine.isEngineShared",
"matlab.engine.shareEngine",
"matlab.engine.start_matlab",
"matlab.exception.JavaException",
"matlab.exception.PyException",
"matlab.graphics.chartcontainer.ChartContainer",
"matlab.graphics.chartcontainer.mixin.Colorbar",
"matlab.graphics.chartcontainer.mixin.Legend",
"matlab.io.Datastore",
"matlab.io.datastore.BlockedFileSet",
"matlab.io.datastore.DsFileReader",
"matlab.io.datastore.DsFileSet",
"matlab.io.datastore.FileSet",
"matlab.io.datastore.FileWritable",
"matlab.io.datastore.FoldersPropertyProvider",
"matlab.io.datastore.HadoopLocationBased",
"matlab.io.datastore.Partitionable",
"matlab.io.datastore.Shuffleable",
"matlab.io.hdf4.sd",
"matlab.io.hdfeos.gd",
"matlab.io.hdfeos.sw",
"matlab.io.saveVariablesToScript",
"matlab.lang.OnOffSwitchState",
"matlab.lang.correction.AppendArgumentsCorrection",
"matlab.lang.correction.ConvertToFunctionNotationCorrection",
"matlab.lang.correction.ReplaceIdentifierCorrection",
"matlab.lang.makeUniqueStrings",
"matlab.lang.makeValidName",
"matlab.mex.MexHost",
"matlab.mixin.Copyable",
"matlab.mixin.CustomDisplay",
"matlab.mixin.Heterogeneous",
"matlab.mixin.SetGet",
"matlab.mixin.SetGetExactNames",
"matlab.mixin.util.PropertyGroup",
"matlab.mock.AnyArguments",
"matlab.mock.InteractionHistory",
"matlab.mock.InteractionHistory.forMock",
"matlab.mock.MethodCallBehavior",
"matlab.mock.PropertyBehavior",
"matlab.mock.PropertyGetBehavior",
"matlab.mock.PropertySetBehavior",
"matlab.mock.TestCase",
"matlab.mock.actions.AssignOutputs",
"matlab.mock.actions.DoNothing",
"matlab.mock.actions.Invoke",
"matlab.mock.actions.ReturnStoredValue",
"matlab.mock.actions.StoreValue",
"matlab.mock.actions.ThrowException",
"matlab.mock.constraints.Occurred",
"matlab.mock.constraints.WasAccessed",
"matlab.mock.constraints.WasCalled",
"matlab.mock.constraints.WasSet",
"matlab.net.ArrayFormat",
"matlab.net.QueryParameter",
"matlab.net.URI",
"matlab.net.base64decode",
"matlab.net.base64encode",
"matlab.net.http.AuthInfo",
"matlab.net.http.AuthenticationScheme",
"matlab.net.http.Cookie",
"matlab.net.http.CookieInfo",
"matlab.net.http.Credentials",
"matlab.net.http.Disposition",
"matlab.net.http.HTTPException",
"matlab.net.http.HTTPOptions",
"matlab.net.http.HeaderField",
"matlab.net.http.LogRecord",
"matlab.net.http.MediaType",
"matlab.net.http.Message",
"matlab.net.http.MessageBody",
"matlab.net.http.MessageType",
"matlab.net.http.ProgressMonitor",
"matlab.net.http.ProtocolVersion",
"matlab.net.http.RequestLine",
"matlab.net.http.RequestMessage",
"matlab.net.http.RequestMethod",
"matlab.net.http.ResponseMessage",
"matlab.net.http.StartLine",
"matlab.net.http.StatusClass",
"matlab.net.http.StatusCode",
"matlab.net.http.StatusLine",
"matlab.net.http.field.AcceptField",
"matlab.net.http.field.AuthenticateField",
"matlab.net.http.field.AuthenticationInfoField",
"matlab.net.http.field.AuthorizationField",
"matlab.net.http.field.ContentDispositionField",
"matlab.net.http.field.ContentLengthField",
"matlab.net.http.field.ContentLocationField",
"matlab.net.http.field.ContentTypeField",
"matlab.net.http.field.CookieField",
"matlab.net.http.field.DateField",
"matlab.net.http.field.GenericField",
"matlab.net.http.field.GenericParameterizedField",
"matlab.net.http.field.HTTPDateField",
"matlab.net.http.field.IntegerField",
"matlab.net.http.field.LocationField",
"matlab.net.http.field.MediaRangeField",
"matlab.net.http.field.SetCookieField",
"matlab.net.http.field.URIReferenceField",
"matlab.net.http.io.BinaryConsumer",
"matlab.net.http.io.ContentConsumer",
"matlab.net.http.io.ContentProvider",
"matlab.net.http.io.FileConsumer",
"matlab.net.http.io.FileProvider",
"matlab.net.http.io.FormProvider",
"matlab.net.http.io.GenericConsumer",
"matlab.net.http.io.GenericProvider",
"matlab.net.http.io.ImageConsumer",
"matlab.net.http.io.ImageProvider",
"matlab.net.http.io.JSONConsumer",
"matlab.net.http.io.JSONProvider",
"matlab.net.http.io.MultipartConsumer",
"matlab.net.http.io.MultipartFormProvider",
"matlab.net.http.io.MultipartProvider",
"matlab.net.http.io.StringConsumer",
"matlab.net.http.io.StringProvider",
"matlab.perftest.FixedTimeExperiment",
"matlab.perftest.FrequentistTimeExperiment",
"matlab.perftest.TestCase",
"matlab.perftest.TimeExperiment",
"matlab.perftest.TimeResult",
"matlab.project.Project",
"matlab.project.convertDefinitionFiles",
"matlab.project.createProject",
"matlab.project.deleteProject",
"matlab.project.loadProject",
"matlab.project.rootProject",
"matlab.settings.FactoryGroup.createToolboxGroup",
"matlab.settings.SettingsFileUpgrader",
"matlab.settings.loadSettingsCompatibilityResults",
"matlab.settings.mustBeIntegerScalar",
"matlab.settings.mustBeLogicalScalar",
"matlab.settings.mustBeNumericScalar",
"matlab.settings.mustBeStringScalar",
"matlab.settings.reloadFactoryFile",
"matlab.system.mixin.FiniteSource",
"matlab.tall.blockMovingWindow",
"matlab.tall.movingWindow",
"matlab.tall.reduce",
"matlab.tall.transform",
"matlab.test.behavior.Missing",
"matlab.ui.componentcontainer.ComponentContainer",
"matlab.uitest.TestCase",
"matlab.uitest.TestCase.forInteractiveUse",
"matlab.uitest.unlock",
"matlab.unittest.Test",
"matlab.unittest.TestCase",
"matlab.unittest.TestResult",
"matlab.unittest.TestRunner",
"matlab.unittest.TestSuite",
"matlab.unittest.constraints.BooleanConstraint",
"matlab.unittest.constraints.Constraint",
"matlab.unittest.constraints.Tolerance",
"matlab.unittest.diagnostics.ConstraintDiagnostic",
"matlab.unittest.diagnostics.Diagnostic",
"matlab.unittest.fixtures.Fixture",
"matlab.unittest.measurement.DefaultMeasurementResult",
"matlab.unittest.measurement.MeasurementResult",
"matlab.unittest.measurement.chart.ComparisonPlot",
"matlab.unittest.plugins.OutputStream",
"matlab.unittest.plugins.Parallelizable",
"matlab.unittest.plugins.QualifyingPlugin",
"matlab.unittest.plugins.TestRunnerPlugin",
"matlab.wsdl.createWSDLClient",
"matlab.wsdl.setWSDLToolPath",
"matlabRelease",
"matlabrc",
"matlabroot",
"max",
"maxflow",
"maxk",
"mean",
"median",
"memmapfile",
"memoize",
"memory",
"mergecats",
"mergevars",
"mesh",
"meshc",
"meshgrid",
"meshz",
"meta.ArrayDimension",
"meta.DynamicProperty",
"meta.EnumeratedValue",
"meta.FixedDimension",
"meta.MetaData",
"meta.UnrestrictedDimension",
"meta.Validation",
"meta.abstractDetails",
"meta.class",
"meta.class.fromName",
"meta.event",
"meta.method",
"meta.package",
"meta.package.fromName",
"meta.package.getAllPackages",
"meta.property",
"metaclass",
"methods",
"methodsview",
"mex",
"mexext",
"mexhost",
"mfilename",
"mget",
"milliseconds",
"min",
"mink",
"minres",
"minspantree",
"minute",
"minutes",
"mislocked",
"missing",
"mkdir",
"mkpp",
"mldivide",
"mlintrpt",
"mlock",
"mmfileinfo",
"mod",
"mode",
"month",
"more",
"morebins",
"movAbsHDU",
"movNamHDU",
"movRelHDU",
"move",
"movefile",
"movegui",
"movevars",
"movie",
"movmad",
"movmax",
"movmean",
"movmedian",
"movmin",
"movprod",
"movstd",
"movsum",
"movvar",
"mpower",
"mput",
"mrdivide",
"msgbox",
"mtimes",
"mu2lin",
"multibandread",
"multibandwrite",
"munlock",
"mustBeA",
"mustBeFile",
"mustBeFinite",
"mustBeFloat",
"mustBeFolder",
"mustBeGreaterThan",
"mustBeGreaterThanOrEqual",
"mustBeInRange",
"mustBeInteger",
"mustBeLessThan",
"mustBeLessThanOrEqual",
"mustBeMember",
"mustBeNegative",
"mustBeNonNan",
"mustBeNonempty",
"mustBeNonmissing",
"mustBeNonnegative",
"mustBeNonpositive",
"mustBeNonsparse",
"mustBeNonzero",
"mustBeNonzeroLengthText",
"mustBeNumeric",
"mustBeNumericOrLogical",
"mustBePositive",
"mustBeReal",
"mustBeScalarOrEmpty",
"mustBeText",
"mustBeTextScalar",
"mustBeUnderlyingType",
"mustBeValidVariableName",
"mustBeVector",
"namedPattern",
"namedargs2cell",
"namelengthmax",
"nargin",
"narginchk",
"nargout",
"nargoutchk",
"native2unicode",
"nccreate",
"ncdisp",
"nchoosek",
"ncinfo",
"ncread",
"ncreadatt",
"ncwrite",
"ncwriteatt",
"ncwriteschema",
"ndgrid",
"ndims",
"nearest",
"nearestNeighbor",
"nearestvertex",
"neighbors",
"netcdf.abort",
"netcdf.close",
"netcdf.copyAtt",
"netcdf.create",
"netcdf.defDim",
"netcdf.defGrp",
"netcdf.defVar",
"netcdf.defVarChunking",
"netcdf.defVarDeflate",
"netcdf.defVarFill",
"netcdf.defVarFletcher32",
"netcdf.delAtt",
"netcdf.endDef",
"netcdf.getAtt",
"netcdf.getChunkCache",
"netcdf.getConstant",
"netcdf.getConstantNames",
"netcdf.getVar",
"netcdf.inq",
"netcdf.inqAtt",
"netcdf.inqAttID",
"netcdf.inqAttName",
"netcdf.inqDim",
"netcdf.inqDimID",
"netcdf.inqDimIDs",
"netcdf.inqFormat",
"netcdf.inqGrpName",
"netcdf.inqGrpNameFull",
"netcdf.inqGrpParent",
"netcdf.inqGrps",
"netcdf.inqLibVers",
"netcdf.inqNcid",
"netcdf.inqUnlimDims",
"netcdf.inqVar",
"netcdf.inqVarChunking",
"netcdf.inqVarDeflate",
"netcdf.inqVarFill",
"netcdf.inqVarFletcher32",
"netcdf.inqVarID",
"netcdf.inqVarIDs",
"netcdf.open",
"netcdf.putAtt",
"netcdf.putVar",
"netcdf.reDef",
"netcdf.renameAtt",
"netcdf.renameDim",
"netcdf.renameVar",
"netcdf.setChunkCache",
"netcdf.setDefaultFormat",
"netcdf.setFill",
"netcdf.sync",
"newline",
"newplot",
"nextpow2",
"nexttile",
"nnz",
"nonzeros",
"norm",
"normalize",
"normest",
"notify",
"now",
"nsidedpoly",
"nthroot",
"nufft",
"nufftn",
"null",
"num2cell",
"num2hex",
"num2ruler",
"num2str",
"numArgumentsFromSubscript",
"numRegions",
"numboundaries",
"numedges",
"numel",
"numnodes",
"numpartitions",
"numsides",
"nzmax",
"ode113",
"ode15i",
"ode15s",
"ode23",
"ode23s",
"ode23t",
"ode23tb",
"ode45",
"odeget",
"odeset",
"odextend",
"onCleanup",
"ones",
"open",
"openDiskFile",
"openFile",
"openProject",
"openfig",
"opengl",
"openvar",
"optimget",
"optimset",
"optionalPattern",
"ordeig",
"orderfields",
"ordqz",
"ordschur",
"orient",
"orth",
"outdegree",
"outedges",
"outerjoin",
"overlaps",
"overlapsrange",
"pack",
"pad",
"padecoef",
"pagectranspose",
"pagemtimes",
"pagetranspose",
"pan",
"panInteraction",
"parallelplot",
"pareto",
"parquetDatastore",
"parquetinfo",
"parquetread",
"parquetwrite",
"partition",
"parula",
"pascal",
"patch",
"path",
"pathsep",
"pathtool",
"pattern",
"pause",
"pbaspect",
"pcg",
"pchip",
"pcode",
"pcolor",
"pdepe",
"pdeval",
"peaks",
"perimeter",
"perl",
"perms",
"permute",
"pi",
"pie",
"pie3",
"pink",
"pinv",
"planerot",
"play",
"playblocking",
"plot",
"plot3",
"plotbrowser",
"plotedit",
"plotmatrix",
"plottools",
"plus",
"pointLocation",
"pol2cart",
"polaraxes",
"polarbubblechart",
"polarhistogram",
"polarplot",
"polarscatter",
"poly",
"polyarea",
"polybuffer",
"polyder",
"polyeig",
"polyfit",
"polyint",
"polyshape",
"polyval",
"polyvalm",
"posixtime",
"possessivePattern",
"pow2",
"ppval",
"predecessors",
"prefdir",
"preferences",
"press",
"preview",
"primes",
"print",
"printdlg",
"printopt",
"printpreview",
"prism",
"processInputSpecificationChangeImpl",
"processTunedPropertiesImpl",
"prod",
"profile",
"propedit",
"properties",
"propertyeditor",
"psi",
"publish",
"pwd",
"pyargs",
"pyenv",
"qmr",
"qr",
"qrdelete",
"qrinsert",
"qrupdate",
"quad2d",
"quadgk",
"quarter",
"questdlg",
"quit",
"quiver",
"quiver3",
"qz",
"rad2deg",
"rand",
"randi",
"randn",
"randperm",
"rank",
"rat",
"rats",
"rbbox",
"rcond",
"read",
"readATblHdr",
"readBTblHdr",
"readCard",
"readCol",
"readFrame",
"readImg",
"readKey",
"readKeyCmplx",
"readKeyDbl",
"readKeyLongLong",
"readKeyLongStr",
"readKeyUnit",
"readRecord",
"readall",
"readcell",
"readline",
"readlines",
"readmatrix",
"readstruct",
"readtable",
"readtimetable",
"readvars",
"real",
"reallog",
"realmax",
"realmin",
"realpow",
"realsqrt",
"record",
"recordblocking",
"rectangle",
"rectint",
"recycle",
"reducepatch",
"reducevolume",
"refresh",
"refreshSourceControl",
"refreshdata",
"regexp",
"regexpPattern",
"regexpi",
"regexprep",
"regexptranslate",
"regionZoomInteraction",
"regions",
"registerevent",
"regmatlabserver",
"rehash",
"relationaloperators",
"release",
"releaseImpl",
"reload",
"rem",
"remove",
"removeCategory",
"removeFile",
"removeGroup",
"removeLabel",
"removePath",
"removeReference",
"removeSetting",
"removeShortcut",
"removeShutdownFile",
"removeStartupFile",
"removeStyle",
"removeToolbarExplorationButtons",
"removecats",
"removets",
"removevars",
"rename",
"renamecats",
"renamevars",
"rendererinfo",
"reordercats",
"reordernodes",
"repelem",
"replace",
"replaceBetween",
"repmat",
"resample",
"rescale",
"reset",
"resetImpl",
"reshape",
"residue",
"restoredefaultpath",
"resume",
"rethrow",
"retime",
"reverse",
"rgb2gray",
"rgb2hsv",
"rgb2ind",
"rgbplot",
"ribbon",
"rlim",
"rmappdata",
"rmboundary",
"rmdir",
"rmedge",
"rmfield",
"rmholes",
"rmmissing",
"rmnode",
"rmoutliers",
"rmpath",
"rmpref",
"rmprop",
"rmslivers",
"rng",
"roots",
"rosser",
"rot90",
"rotate",
"rotate3d",
"rotateInteraction",
"round",
"rowfun",
"rows2vars",
"rref",
"rsf2csf",
"rtickangle",
"rtickformat",
"rticklabels",
"rticks",
"ruler2num",
"rulerPanInteraction",
"run",
"runChecks",
"runperf",
"runtests",
"save",
"saveObjectImpl",
"saveas",
"savefig",
"saveobj",
"savepath",
"scale",
"scatter",
"scatter3",
"scatteredInterpolant",
"scatterhistogram",
"schur",
"scroll",
"sec",
"secd",
"sech",
"second",
"seconds",
"semilogx",
"semilogy",
"sendmail",
"serialport",
"serialportlist",
"set",
"setBscale",
"setCompressionType",
"setDTR",
"setHCompScale",
"setHCompSmooth",
"setProperties",
"setRTS",
"setTileDim",
"setTscale",
"setabstime",
"setappdata",
"setcats",
"setdiff",
"setenv",
"setfield",
"setinterpmethod",
"setpixelposition",
"setpref",
"settimeseriesnames",
"settings",
"setuniformtime",
"setup",
"setupImpl",
"setvaropts",
"setvartype",
"setxor",
"sgtitle",
"shading",
"sheetnames",
"shg",
"shiftdim",
"shortestpath",
"shortestpathtree",
"showplottool",
"shrinkfaces",
"shuffle",
"sign",
"simplify",
"sin",
"sind",
"single",
"sinh",
"sinpi",
"size",
"slice",
"smooth3",
"smoothdata",
"snapnow",
"sort",
"sortboundaries",
"sortregions",
"sortrows",
"sortx",
"sorty",
"sound",
"soundsc",
"spalloc",
"sparse",
"spaugment",
"spconvert",
"spdiags",
"specular",
"speye",
"spfun",
"sph2cart",
"sphere",
"spinmap",
"spline",
"split",
"splitapply",
"splitlines",
"splitvars",
"spones",
"spparms",
"sprand",
"sprandn",
"sprandsym",
"sprank",
"spreadsheetDatastore",
"spreadsheetImportOptions",
"spring",
"sprintf",
"spy",
"sqrt",
"sqrtm",
"squeeze",
"ss2tf",
"sscanf",
"stack",
"stackedplot",
"stairs",
"standardizeMissing",
"start",
"startat",
"startsWith",
"startup",
"std",
"stem",
"stem3",
"step",
"stepImpl",
"stlread",
"stlwrite",
"stop",
"str2double",
"str2func",
"str2num",
"strcat",
"strcmp",
"strcmpi",
"stream2",
"stream3",
"streamline",
"streamparticles",
"streamribbon",
"streamslice",
"streamtube",
"strfind",
"string",
"strings",
"strip",
"strjoin",
"strjust",
"strlength",
"strncmp",
"strncmpi",
"strrep",
"strsplit",
"strtok",
"strtrim",
"struct",
"struct2cell",
"struct2table",
"structfun",
"sub2ind",
"subgraph",
"subplot",
"subsasgn",
"subscribe",
"subsindex",
"subspace",
"subsref",
"substruct",
"subtitle",
"subtract",
"subvolume",
"successors",
"sum",
"summary",
"summer",
"superclasses",
"surf",
"surf2patch",
"surface",
"surfaceArea",
"surfc",
"surfl",
"surfnorm",
"svd",
"svds",
"svdsketch",
"swapbytes",
"swarmchart",
"swarmchart3",
"sylvester",
"symamd",
"symbfact",
"symmlq",
"symrcm",
"synchronize",
"sysobjupdate",
"system",
"table",
"table2array",
"table2cell",
"table2struct",
"table2timetable",
"tabularTextDatastore",
"tail",
"tall",
"tallrng",
"tan",
"tand",
"tanh",
"tar",
"tcpclient",
"tempdir",
"tempname",
"testsuite",
"tetramesh",
"texlabel",
"text",
"textBoundary",
"textscan",
"textwrap",
"tfqmr",
"thetalim",
"thetatickformat",
"thetaticklabels",
"thetaticks",
"thingSpeakRead",
"thingSpeakWrite",
"throw",
"throwAsCaller",
"tic",
"tiledlayout",
"time",
"timeit",
"timeofday",
"timer",
"timerange",
"timerfind",
"timerfindall",
"timeseries",
"timetable",
"timetable2table",
"timezones",
"title",
"toc",
"todatenum",
"toeplitz",
"toolboxdir",
"topkrows",
"toposort",
"trace",
"transclosure",
"transform",
"translate",
"transpose",
"transreduction",
"trapz",
"treelayout",
"treeplot",
"triangulation",
"tril",
"trimesh",
"triplot",
"trisurf",
"triu",
"true",
"tscollection",
"tsdata.event",
"tsearchn",
"turbo",
"turningdist",
"type",
"typecast",
"tzoffset",
"uialert",
"uiaxes",
"uibutton",
"uibuttongroup",
"uicheckbox",
"uiconfirm",
"uicontextmenu",
"uicontrol",
"uidatepicker",
"uidropdown",
"uieditfield",
"uifigure",
"uigauge",
"uigetdir",
"uigetfile",
"uigetpref",
"uigridlayout",
"uihtml",
"uiimage",
"uiknob",
"uilabel",
"uilamp",
"uilistbox",
"uimenu",
"uint16",
"uint32",
"uint64",
"uint8",
"uiopen",
"uipanel",
"uiprogressdlg",
"uipushtool",
"uiputfile",
"uiradiobutton",
"uiresume",
"uisave",
"uisetcolor",
"uisetfont",
"uisetpref",
"uislider",
"uispinner",
"uistack",
"uistyle",
"uiswitch",
"uitab",
"uitabgroup",
"uitable",
"uitextarea",
"uitogglebutton",
"uitoggletool",
"uitoolbar",
"uitree",
"uitreenode",
"uiwait",
"uminus",
"underlyingType",
"underlyingValue",
"unicode2native",
"union",
"unique",
"uniquetol",
"unix",
"unloadlibrary",
"unmesh",
"unmkpp",
"unregisterallevents",
"unregisterevent",
"unstack",
"unsubscribe",
"untar",
"unwrap",
"unzip",
"update",
"updateDependencies",
"uplus",
"upper",
"usejava",
"userpath",
"validateFunctionSignaturesJSON",
"validateInputsImpl",
"validatePropertiesImpl",
"validateattributes",
"validatecolor",
"validatestring",
"values",
"vander",
"var",
"varargin",
"varargout",
"varfun",
"vartype",
"vecnorm",
"ver",
"verLessThan",
"version",
"vertcat",
"vertexAttachments",
"vertexNormal",
"view",
"viewmtx",
"visdiff",
"volume",
"volumebounds",
"voronoi",
"voronoiDiagram",
"voronoin",
"wait",
"waitbar",
"waitfor",
"waitforbuttonpress",
"warndlg",
"warning",
"waterfall",
"web",
"weboptions",
"webread",
"websave",
"webwrite",
"week",
"weekday",
"what",
"which",
"whitespaceBoundary",
"whitespacePattern",
"who",
"whos",
"width",
"wildcardPattern",
"wilkinson",
"winopen",
"winqueryreg",
"winter",
"withinrange",
"withtol",
"wordcloud",
"write",
"writeChecksum",
"writeCol",
"writeComment",
"writeDate",
"writeHistory",
"writeImg",
"writeKey",
"writeKeyUnit",
"writeVideo",
"writeall",
"writecell",
"writeline",
"writematrix",
"writestruct",
"writetable",
"writetimetable",
"xcorr",
"xcov",
"xlabel",
"xlim",
"xline",
"xmlread",
"xmlwrite",
"xor",
"xslt",
"xtickangle",
"xtickformat",
"xticklabels",
"xticks",
"year",
"years",
"ylabel",
"ylim",
"yline",
"ymd",
"ytickangle",
"ytickformat",
"yticklabels",
"yticks",
"yyaxis",
"yyyymmdd",
"zeros",
"zip",
"zlabel",
"zlim",
"zoom",
"zoomInteraction",
"ztickangle",
"ztickformat",
"zticklabels",
"zticks",
],
prefix=r"(?<!\.)(", # Exclude field names
suffix=r")\b"
),
Name.Builtin
),
# line continuation with following comment:
(r'(\.\.\.)(.*)$', bygroups(Keyword, Comment)),
# command form:
# "How MATLAB Recognizes Command Syntax" specifies that an operator
# is recognized if it is either surrounded by spaces or by no
# spaces on both sides (this allows distinguishing `cd ./foo` from
# `cd ./ foo`.). Here, the regex checks that the first word in the
# line is not followed by <spaces> and then
# (equal | open-parenthesis | <operator><space> | <space>).
(rf'(?:^|(?<=;))(\s*)(\w+)(\s+)(?!=|\(|{_operators}\s|\s)',
bygroups(Whitespace, Name, Whitespace), 'commandargs'),
include('expressions')
],
'blockcomment': [
(r'^\s*%\}', Comment.Multiline, '#pop'),
(r'^.*\n', Comment.Multiline),
(r'.', Comment.Multiline),
],
'deffunc': [
(r'(\s*)(?:(\S+)(\s*)(=)(\s*))?(.+)(\()(.*)(\))(\s*)',
bygroups(Whitespace, Text, Whitespace, Punctuation,
Whitespace, Name.Function, Punctuation, Text,
Punctuation, Whitespace), '#pop'),
# function with no args
(r'(\s*)([a-zA-Z_]\w*)',
bygroups(Whitespace, Name.Function), '#pop'),
],
'propattrs': [
(r'(\w+)(\s*)(=)(\s*)(\d+)',
bygroups(Name.Builtin, Whitespace, Punctuation, Whitespace,
Number)),
(r'(\w+)(\s*)(=)(\s*)([a-zA-Z]\w*)',
bygroups(Name.Builtin, Whitespace, Punctuation, Whitespace,
Keyword)),
(r',', Punctuation),
(r'\)', Punctuation, '#pop'),
(r'\s+', Whitespace),
(r'.', Text),
],
'defprops': [
(r'%\{\s*\n', Comment.Multiline, 'blockcomment'),
(r'%.*$', Comment),
(r'(?<!\.)end\b', Keyword, '#pop'),
include('expressions'),
],
'string': [
(r"[^']*'", String, '#pop'),
],
'commandargs': [
# If an equal sign or other operator is encountered, this
# isn't a command. It might be a variable assignment or
# comparison operation with multiple spaces before the
# equal sign or operator
(r"=", Punctuation, '#pop'),
(_operators, Operator, '#pop'),
(r"[ \t]+", Whitespace),
("'[^']*'", String),
(r"[^';\s]+", String),
(";", Punctuation, '#pop'),
default('#pop'),
]
}
def analyse_text(text):
# function declaration.
first_non_comment = next((line for line in text.splitlines()
if not re.match(r'^\s*%', text)), '').strip()
if (first_non_comment.startswith('function')
and '{' not in first_non_comment):
return 1.
# comment
elif re.search(r'^\s*%', text, re.M):
return 0.2
# system cmd
elif re.search(r'^!\w+', text, re.M):
return 0.2
line_re = re.compile('.*?\n')
class MatlabSessionLexer(Lexer):
"""
For Matlab sessions. Modeled after PythonConsoleLexer.
Contributed by Ken Schutte <kschutte@csail.mit.edu>.
"""
name = 'Matlab session'
aliases = ['matlabsession']
url = 'https://www.mathworks.com/products/matlab.html'
version_added = '0.10'
def get_tokens_unprocessed(self, text):
mlexer = MatlabLexer(**self.options)
curcode = ''
insertions = []
continuation = False
for match in line_re.finditer(text):
line = match.group()
if line.startswith('>> '):
insertions.append((len(curcode),
[(0, Generic.Prompt, line[:3])]))
curcode += line[3:]
elif line.startswith('>>'):
insertions.append((len(curcode),
[(0, Generic.Prompt, line[:2])]))
curcode += line[2:]
elif line.startswith('???'):
idx = len(curcode)
# without is showing error on same line as before...?
# line = "\n" + line
token = (0, Generic.Traceback, line)
insertions.append((idx, [token]))
elif continuation and insertions:
# line_start is the length of the most recent prompt symbol
line_start = len(insertions[-1][-1][-1])
# Set leading spaces with the length of the prompt to be a generic prompt
# This keeps code aligned when prompts are removed, say with some Javascript
if line.startswith(' '*line_start):
insertions.append(
(len(curcode), [(0, Generic.Prompt, line[:line_start])]))
curcode += line[line_start:]
else:
curcode += line
else:
if curcode:
yield from do_insertions(
insertions, mlexer.get_tokens_unprocessed(curcode))
curcode = ''
insertions = []
yield match.start(), Generic.Output, line
# Does not allow continuation if a comment is included after the ellipses.
# Continues any line that ends with ..., even comments (lines that start with %)
if line.strip().endswith('...'):
continuation = True
else:
continuation = False
if curcode: # or item:
yield from do_insertions(
insertions, mlexer.get_tokens_unprocessed(curcode))
class OctaveLexer(RegexLexer):
"""
For GNU Octave source code.
"""
name = 'Octave'
url = 'https://www.gnu.org/software/octave/index'
aliases = ['octave']
filenames = ['*.m']
mimetypes = ['text/octave']
version_added = '1.5'
# These lists are generated automatically.
# Run the following in bash shell:
#
# First dump all of the Octave manual into a plain text file:
#
# $ info octave --subnodes -o octave-manual
#
# Now grep through it:
# for i in \
# "Built-in Function" "Command" "Function File" \
# "Loadable Function" "Mapping Function";
# do
# perl -e '@name = qw('"$i"');
# print lc($name[0]),"_kw = [\n"';
#
# perl -n -e 'print "\"$1\",\n" if /-- '"$i"': .* (\w*) \(/;' \
# octave-manual | sort | uniq ;
# echo "]" ;
# echo;
# done
# taken from Octave Mercurial changeset 8cc154f45e37 (30-jan-2011)
builtin_kw = (
"addlistener", "addpath", "addproperty", "all",
"and", "any", "argnames", "argv", "assignin",
"atexit", "autoload",
"available_graphics_toolkits", "beep_on_error",
"bitand", "bitmax", "bitor", "bitshift", "bitxor",
"cat", "cell", "cellstr", "char", "class", "clc",
"columns", "command_line_path",
"completion_append_char", "completion_matches",
"complex", "confirm_recursive_rmdir", "cputime",
"crash_dumps_octave_core", "ctranspose", "cumprod",
"cumsum", "debug_on_error", "debug_on_interrupt",
"debug_on_warning", "default_save_options",
"dellistener", "diag", "diff", "disp",
"doc_cache_file", "do_string_escapes", "double",
"drawnow", "e", "echo_executing_commands", "eps",
"eq", "errno", "errno_list", "error", "eval",
"evalin", "exec", "exist", "exit", "eye", "false",
"fclear", "fclose", "fcntl", "fdisp", "feof",
"ferror", "feval", "fflush", "fgetl", "fgets",
"fieldnames", "file_in_loadpath", "file_in_path",
"filemarker", "filesep", "find_dir_in_path",
"fixed_point_format", "fnmatch", "fopen", "fork",
"formula", "fprintf", "fputs", "fread", "freport",
"frewind", "fscanf", "fseek", "fskipl", "ftell",
"functions", "fwrite", "ge", "genpath", "get",
"getegid", "getenv", "geteuid", "getgid",
"getpgrp", "getpid", "getppid", "getuid", "glob",
"gt", "gui_mode", "history_control",
"history_file", "history_size",
"history_timestamp_format_string", "home",
"horzcat", "hypot", "ifelse",
"ignore_function_time_stamp", "inferiorto",
"info_file", "info_program", "inline", "input",
"intmax", "intmin", "ipermute",
"is_absolute_filename", "isargout", "isbool",
"iscell", "iscellstr", "ischar", "iscomplex",
"isempty", "isfield", "isfloat", "isglobal",
"ishandle", "isieee", "isindex", "isinteger",
"islogical", "ismatrix", "ismethod", "isnull",
"isnumeric", "isobject", "isreal",
"is_rooted_relative_filename", "issorted",
"isstruct", "isvarname", "kbhit", "keyboard",
"kill", "lasterr", "lasterror", "lastwarn",
"ldivide", "le", "length", "link", "linspace",
"logical", "lstat", "lt", "make_absolute_filename",
"makeinfo_program", "max_recursion_depth", "merge",
"methods", "mfilename", "minus", "mislocked",
"mkdir", "mkfifo", "mkstemp", "mldivide", "mlock",
"mouse_wheel_zoom", "mpower", "mrdivide", "mtimes",
"munlock", "nargin", "nargout",
"native_float_format", "ndims", "ne", "nfields",
"nnz", "norm", "not", "numel", "nzmax",
"octave_config_info", "octave_core_file_limit",
"octave_core_file_name",
"octave_core_file_options", "ones", "or",
"output_max_field_width", "output_precision",
"page_output_immediately", "page_screen_output",
"path", "pathsep", "pause", "pclose", "permute",
"pi", "pipe", "plus", "popen", "power",
"print_empty_dimensions", "printf",
"print_struct_array_contents", "prod",
"program_invocation_name", "program_name",
"putenv", "puts", "pwd", "quit", "rats", "rdivide",
"readdir", "readlink", "read_readline_init_file",
"realmax", "realmin", "rehash", "rename",
"repelems", "re_read_readline_init_file", "reset",
"reshape", "resize", "restoredefaultpath",
"rethrow", "rmdir", "rmfield", "rmpath", "rows",
"save_header_format_string", "save_precision",
"saving_history", "scanf", "set", "setenv",
"shell_cmd", "sighup_dumps_octave_core",
"sigterm_dumps_octave_core", "silent_functions",
"single", "size", "size_equal", "sizemax",
"sizeof", "sleep", "source", "sparse_auto_mutate",
"split_long_rows", "sprintf", "squeeze", "sscanf",
"stat", "stderr", "stdin", "stdout", "strcmp",
"strcmpi", "string_fill_char", "strncmp",
"strncmpi", "struct", "struct_levels_to_print",
"strvcat", "subsasgn", "subsref", "sum", "sumsq",
"superiorto", "suppress_verbose_help_message",
"symlink", "system", "tic", "tilde_expand",
"times", "tmpfile", "tmpnam", "toc", "toupper",
"transpose", "true", "typeinfo", "umask", "uminus",
"uname", "undo_string_escapes", "unlink", "uplus",
"upper", "usage", "usleep", "vec", "vectorize",
"vertcat", "waitpid", "warning", "warranty",
"whos_line_format", "yes_or_no", "zeros",
"inf", "Inf", "nan", "NaN")
command_kw = ("close", "load", "who", "whos")
function_kw = (
"accumarray", "accumdim", "acosd", "acotd",
"acscd", "addtodate", "allchild", "ancestor",
"anova", "arch_fit", "arch_rnd", "arch_test",
"area", "arma_rnd", "arrayfun", "ascii", "asctime",
"asecd", "asind", "assert", "atand",
"autoreg_matrix", "autumn", "axes", "axis", "bar",
"barh", "bartlett", "bartlett_test", "beep",
"betacdf", "betainv", "betapdf", "betarnd",
"bicgstab", "bicubic", "binary", "binocdf",
"binoinv", "binopdf", "binornd", "bitcmp",
"bitget", "bitset", "blackman", "blanks",
"blkdiag", "bone", "box", "brighten", "calendar",
"cast", "cauchy_cdf", "cauchy_inv", "cauchy_pdf",
"cauchy_rnd", "caxis", "celldisp", "center", "cgs",
"chisquare_test_homogeneity",
"chisquare_test_independence", "circshift", "cla",
"clabel", "clf", "clock", "cloglog", "closereq",
"colon", "colorbar", "colormap", "colperm",
"comet", "common_size", "commutation_matrix",
"compan", "compare_versions", "compass",
"computer", "cond", "condest", "contour",
"contourc", "contourf", "contrast", "conv",
"convhull", "cool", "copper", "copyfile", "cor",
"corrcoef", "cor_test", "cosd", "cotd", "cov",
"cplxpair", "cross", "cscd", "cstrcat", "csvread",
"csvwrite", "ctime", "cumtrapz", "curl", "cut",
"cylinder", "date", "datenum", "datestr",
"datetick", "datevec", "dblquad", "deal",
"deblank", "deconv", "delaunay", "delaunayn",
"delete", "demo", "detrend", "diffpara", "diffuse",
"dir", "discrete_cdf", "discrete_inv",
"discrete_pdf", "discrete_rnd", "display",
"divergence", "dlmwrite", "dos", "dsearch",
"dsearchn", "duplication_matrix", "durbinlevinson",
"ellipsoid", "empirical_cdf", "empirical_inv",
"empirical_pdf", "empirical_rnd", "eomday",
"errorbar", "etime", "etreeplot", "example",
"expcdf", "expinv", "expm", "exppdf", "exprnd",
"ezcontour", "ezcontourf", "ezmesh", "ezmeshc",
"ezplot", "ezpolar", "ezsurf", "ezsurfc", "factor",
"factorial", "fail", "fcdf", "feather", "fftconv",
"fftfilt", "fftshift", "figure", "fileattrib",
"fileparts", "fill", "findall", "findobj",
"findstr", "finv", "flag", "flipdim", "fliplr",
"flipud", "fpdf", "fplot", "fractdiff", "freqz",
"freqz_plot", "frnd", "fsolve",
"f_test_regression", "ftp", "fullfile", "fzero",
"gamcdf", "gaminv", "gampdf", "gamrnd", "gca",
"gcbf", "gcbo", "gcf", "genvarname", "geocdf",
"geoinv", "geopdf", "geornd", "getfield", "ginput",
"glpk", "gls", "gplot", "gradient",
"graphics_toolkit", "gray", "grid", "griddata",
"griddatan", "gtext", "gunzip", "gzip", "hadamard",
"hamming", "hankel", "hanning", "hggroup",
"hidden", "hilb", "hist", "histc", "hold", "hot",
"hotelling_test", "housh", "hsv", "hurst",
"hygecdf", "hygeinv", "hygepdf", "hygernd",
"idivide", "ifftshift", "image", "imagesc",
"imfinfo", "imread", "imshow", "imwrite", "index",
"info", "inpolygon", "inputname", "interpft",
"interpn", "intersect", "invhilb", "iqr", "isa",
"isdefinite", "isdir", "is_duplicate_entry",
"isequal", "isequalwithequalnans", "isfigure",
"ishermitian", "ishghandle", "is_leap_year",
"isletter", "ismac", "ismember", "ispc", "isprime",
"isprop", "isscalar", "issquare", "isstrprop",
"issymmetric", "isunix", "is_valid_file_id",
"isvector", "jet", "kendall",
"kolmogorov_smirnov_cdf",
"kolmogorov_smirnov_test", "kruskal_wallis_test",
"krylov", "kurtosis", "laplace_cdf", "laplace_inv",
"laplace_pdf", "laplace_rnd", "legend", "legendre",
"license", "line", "linkprop", "list_primes",
"loadaudio", "loadobj", "logistic_cdf",
"logistic_inv", "logistic_pdf", "logistic_rnd",
"logit", "loglog", "loglogerr", "logm", "logncdf",
"logninv", "lognpdf", "lognrnd", "logspace",
"lookfor", "ls_command", "lsqnonneg", "magic",
"mahalanobis", "manova", "matlabroot",
"mcnemar_test", "mean", "meansq", "median", "menu",
"mesh", "meshc", "meshgrid", "meshz", "mexext",
"mget", "mkpp", "mode", "moment", "movefile",
"mpoles", "mput", "namelengthmax", "nargchk",
"nargoutchk", "nbincdf", "nbininv", "nbinpdf",
"nbinrnd", "nchoosek", "ndgrid", "newplot", "news",
"nonzeros", "normcdf", "normest", "norminv",
"normpdf", "normrnd", "now", "nthroot", "null",
"ocean", "ols", "onenormest", "optimget",
"optimset", "orderfields", "orient", "orth",
"pack", "pareto", "parseparams", "pascal", "patch",
"pathdef", "pcg", "pchip", "pcolor", "pcr",
"peaks", "periodogram", "perl", "perms", "pie",
"pink", "planerot", "playaudio", "plot",
"plotmatrix", "plotyy", "poisscdf", "poissinv",
"poisspdf", "poissrnd", "polar", "poly",
"polyaffine", "polyarea", "polyderiv", "polyfit",
"polygcd", "polyint", "polyout", "polyreduce",
"polyval", "polyvalm", "postpad", "powerset",
"ppder", "ppint", "ppjumps", "ppplot", "ppval",
"pqpnonneg", "prepad", "primes", "print",
"print_usage", "prism", "probit", "qp", "qqplot",
"quadcc", "quadgk", "quadl", "quadv", "quiver",
"qzhess", "rainbow", "randi", "range", "rank",
"ranks", "rat", "reallog", "realpow", "realsqrt",
"record", "rectangle_lw", "rectangle_sw",
"rectint", "refresh", "refreshdata",
"regexptranslate", "repmat", "residue", "ribbon",
"rindex", "roots", "rose", "rosser", "rotdim",
"rref", "run", "run_count", "rundemos", "run_test",
"runtests", "saveas", "saveaudio", "saveobj",
"savepath", "scatter", "secd", "semilogx",
"semilogxerr", "semilogy", "semilogyerr",
"setaudio", "setdiff", "setfield", "setxor",
"shading", "shift", "shiftdim", "sign_test",
"sinc", "sind", "sinetone", "sinewave", "skewness",
"slice", "sombrero", "sortrows", "spaugment",
"spconvert", "spdiags", "spearman", "spectral_adf",
"spectral_xdf", "specular", "speed", "spencer",
"speye", "spfun", "sphere", "spinmap", "spline",
"spones", "sprand", "sprandn", "sprandsym",
"spring", "spstats", "spy", "sqp", "stairs",
"statistics", "std", "stdnormal_cdf",
"stdnormal_inv", "stdnormal_pdf", "stdnormal_rnd",
"stem", "stft", "strcat", "strchr", "strjust",
"strmatch", "strread", "strsplit", "strtok",
"strtrim", "strtrunc", "structfun", "studentize",
"subplot", "subsindex", "subspace", "substr",
"substruct", "summer", "surf", "surface", "surfc",
"surfl", "surfnorm", "svds", "swapbytes",
"sylvester_matrix", "symvar", "synthesis", "table",
"tand", "tar", "tcdf", "tempdir", "tempname",
"test", "text", "textread", "textscan", "tinv",
"title", "toeplitz", "tpdf", "trace", "trapz",
"treelayout", "treeplot", "triangle_lw",
"triangle_sw", "tril", "trimesh", "triplequad",
"triplot", "trisurf", "triu", "trnd", "tsearchn",
"t_test", "t_test_regression", "type", "unidcdf",
"unidinv", "unidpdf", "unidrnd", "unifcdf",
"unifinv", "unifpdf", "unifrnd", "union", "unique",
"unix", "unmkpp", "unpack", "untabify", "untar",
"unwrap", "unzip", "u_test", "validatestring",
"vander", "var", "var_test", "vech", "ver",
"version", "view", "voronoi", "voronoin",
"waitforbuttonpress", "wavread", "wavwrite",
"wblcdf", "wblinv", "wblpdf", "wblrnd", "weekday",
"welch_test", "what", "white", "whitebg",
"wienrnd", "wilcoxon_test", "wilkinson", "winter",
"xlabel", "xlim", "ylabel", "yulewalker", "zip",
"zlabel", "z_test")
loadable_kw = (
"airy", "amd", "balance", "besselh", "besseli",
"besselj", "besselk", "bessely", "bitpack",
"bsxfun", "builtin", "ccolamd", "cellfun",
"cellslices", "chol", "choldelete", "cholinsert",
"cholinv", "cholshift", "cholupdate", "colamd",
"colloc", "convhulln", "convn", "csymamd",
"cummax", "cummin", "daspk", "daspk_options",
"dasrt", "dasrt_options", "dassl", "dassl_options",
"dbclear", "dbdown", "dbstack", "dbstatus",
"dbstop", "dbtype", "dbup", "dbwhere", "det",
"dlmread", "dmperm", "dot", "eig", "eigs",
"endgrent", "endpwent", "etree", "fft", "fftn",
"fftw", "filter", "find", "full", "gcd",
"getgrent", "getgrgid", "getgrnam", "getpwent",
"getpwnam", "getpwuid", "getrusage", "givens",
"gmtime", "gnuplot_binary", "hess", "ifft",
"ifftn", "inv", "isdebugmode", "issparse", "kron",
"localtime", "lookup", "lsode", "lsode_options",
"lu", "luinc", "luupdate", "matrix_type", "max",
"min", "mktime", "pinv", "qr", "qrdelete",
"qrinsert", "qrshift", "qrupdate", "quad",
"quad_options", "qz", "rand", "rande", "randg",
"randn", "randp", "randperm", "rcond", "regexp",
"regexpi", "regexprep", "schur", "setgrent",
"setpwent", "sort", "spalloc", "sparse", "spparms",
"sprank", "sqrtm", "strfind", "strftime",
"strptime", "strrep", "svd", "svd_driver", "syl",
"symamd", "symbfact", "symrcm", "time", "tsearch",
"typecast", "urlread", "urlwrite")
mapping_kw = (
"abs", "acos", "acosh", "acot", "acoth", "acsc",
"acsch", "angle", "arg", "asec", "asech", "asin",
"asinh", "atan", "atanh", "beta", "betainc",
"betaln", "bincoeff", "cbrt", "ceil", "conj", "cos",
"cosh", "cot", "coth", "csc", "csch", "erf", "erfc",
"erfcx", "erfinv", "exp", "finite", "fix", "floor",
"fmod", "gamma", "gammainc", "gammaln", "imag",
"isalnum", "isalpha", "isascii", "iscntrl",
"isdigit", "isfinite", "isgraph", "isinf",
"islower", "isna", "isnan", "isprint", "ispunct",
"isspace", "isupper", "isxdigit", "lcm", "lgamma",
"log", "lower", "mod", "real", "rem", "round",
"roundb", "sec", "sech", "sign", "sin", "sinh",
"sqrt", "tan", "tanh", "toascii", "tolower", "xor")
builtin_consts = (
"EDITOR", "EXEC_PATH", "I", "IMAGE_PATH", "NA",
"OCTAVE_HOME", "OCTAVE_VERSION", "PAGER",
"PAGER_FLAGS", "SEEK_CUR", "SEEK_END", "SEEK_SET",
"SIG", "S_ISBLK", "S_ISCHR", "S_ISDIR", "S_ISFIFO",
"S_ISLNK", "S_ISREG", "S_ISSOCK", "WCONTINUE",
"WCOREDUMP", "WEXITSTATUS", "WIFCONTINUED",
"WIFEXITED", "WIFSIGNALED", "WIFSTOPPED", "WNOHANG",
"WSTOPSIG", "WTERMSIG", "WUNTRACED")
tokens = {
'root': [
(r'%\{\s*\n', Comment.Multiline, 'percentblockcomment'),
(r'#\{\s*\n', Comment.Multiline, 'hashblockcomment'),
(r'[%#].*$', Comment),
(r'^\s*function\b', Keyword, 'deffunc'),
# from 'iskeyword' on hg changeset 8cc154f45e37
(words((
'__FILE__', '__LINE__', 'break', 'case', 'catch', 'classdef',
'continue', 'do', 'else', 'elseif', 'end', 'end_try_catch',
'end_unwind_protect', 'endclassdef', 'endevents', 'endfor',
'endfunction', 'endif', 'endmethods', 'endproperties', 'endswitch',
'endwhile', 'events', 'for', 'function', 'get', 'global', 'if',
'methods', 'otherwise', 'persistent', 'properties', 'return',
'set', 'static', 'switch', 'try', 'until', 'unwind_protect',
'unwind_protect_cleanup', 'while'), suffix=r'\b'),
Keyword),
(words(builtin_kw + command_kw + function_kw + loadable_kw + mapping_kw,
suffix=r'\b'), Name.Builtin),
(words(builtin_consts, suffix=r'\b'), Name.Constant),
# operators in Octave but not Matlab:
(r'-=|!=|!|/=|--', Operator),
# operators:
(r'-|==|~=|<|>|<=|>=|&&|&|~|\|\|?', Operator),
# operators in Octave but not Matlab requiring escape for re:
(r'\*=|\+=|\^=|\/=|\\=|\*\*|\+\+|\.\*\*', Operator),
# operators requiring escape for re:
(r'\.\*|\*|\+|\.\^|\.\\|\.\/|\/|\\', Operator),
# punctuation:
(r'[\[\](){}:@.,]', Punctuation),
(r'=|:|;', Punctuation),
(r'"[^"]*"', String),
(r'(\d+\.\d*|\d*\.\d+)([eEf][+-]?[0-9]+)?', Number.Float),
(r'\d+[eEf][+-]?[0-9]+', Number.Float),
(r'\d+', Number.Integer),
# quote can be transpose, instead of string:
# (not great, but handles common cases...)
(r'(?<=[\w)\].])\'+', Operator),
(r'(?<![\w)\].])\'', String, 'string'),
(r'[a-zA-Z_]\w*', Name),
(r'\s+', Text),
(r'.', Text),
],
'percentblockcomment': [
(r'^\s*%\}', Comment.Multiline, '#pop'),
(r'^.*\n', Comment.Multiline),
(r'.', Comment.Multiline),
],
'hashblockcomment': [
(r'^\s*#\}', Comment.Multiline, '#pop'),
(r'^.*\n', Comment.Multiline),
(r'.', Comment.Multiline),
],
'string': [
(r"[^']*'", String, '#pop'),
],
'deffunc': [
(r'(\s*)(?:(\S+)(\s*)(=)(\s*))?(.+)(\()(.*)(\))(\s*)',
bygroups(Whitespace, Text, Whitespace, Punctuation,
Whitespace, Name.Function, Punctuation, Text,
Punctuation, Whitespace), '#pop'),
# function with no args
(r'(\s*)([a-zA-Z_]\w*)',
bygroups(Whitespace, Name.Function), '#pop'),
],
}
def analyse_text(text):
"""Octave is quite hard to spot, and it looks like Matlab as well."""
return 0
class ScilabLexer(RegexLexer):
"""
For Scilab source code.
"""
name = 'Scilab'
url = 'https://www.scilab.org/'
aliases = ['scilab']
filenames = ['*.sci', '*.sce', '*.tst']
mimetypes = ['text/scilab']
version_added = '1.5'
tokens = {
'root': [
(r'//.*?$', Comment.Single),
(r'^\s*function\b', Keyword, 'deffunc'),
(words((
'__FILE__', '__LINE__', 'break', 'case', 'catch', 'classdef', 'continue', 'do', 'else',
'elseif', 'end', 'end_try_catch', 'end_unwind_protect', 'endclassdef',
'endevents', 'endfor', 'endfunction', 'endif', 'endmethods', 'endproperties',
'endswitch', 'endwhile', 'events', 'for', 'function', 'get', 'global', 'if', 'methods',
'otherwise', 'persistent', 'properties', 'return', 'set', 'static', 'switch', 'try',
'until', 'unwind_protect', 'unwind_protect_cleanup', 'while'), suffix=r'\b'),
Keyword),
(words(_scilab_builtins.functions_kw +
_scilab_builtins.commands_kw +
_scilab_builtins.macros_kw, suffix=r'\b'), Name.Builtin),
(words(_scilab_builtins.variables_kw, suffix=r'\b'), Name.Constant),
# operators:
(r'-|==|~=|<|>|<=|>=|&&|&|~|\|\|?', Operator),
# operators requiring escape for re:
(r'\.\*|\*|\+|\.\^|\.\\|\.\/|\/|\\', Operator),
# punctuation:
(r'[\[\](){}@.,=:;]+', Punctuation),
(r'"[^"]*"', String),
# quote can be transpose, instead of string:
# (not great, but handles common cases...)
(r'(?<=[\w)\].])\'+', Operator),
(r'(?<![\w)\].])\'', String, 'string'),
(r'(\d+\.\d*|\d*\.\d+)([eEf][+-]?[0-9]+)?', Number.Float),
(r'\d+[eEf][+-]?[0-9]+', Number.Float),
(r'\d+', Number.Integer),
(r'[a-zA-Z_]\w*', Name),
(r'\s+', Whitespace),
(r'.', Text),
],
'string': [
(r"[^']*'", String, '#pop'),
(r'.', String, '#pop'),
],
'deffunc': [
(r'(\s*)(?:(\S+)(\s*)(=)(\s*))?(.+)(\()(.*)(\))(\s*)',
bygroups(Whitespace, Text, Whitespace, Punctuation,
Whitespace, Name.Function, Punctuation, Text,
Punctuation, Whitespace), '#pop'),
# function with no args
(r'(\s*)([a-zA-Z_]\w*)', bygroups(Text, Name.Function), '#pop'),
],
}
# the following is needed to distinguish Scilab and GAP .tst files
def analyse_text(text):
score = 0.0
# Scilab comments (don't appear in e.g. GAP code)
if re.search(r"^\s*//", text):
score += 0.1
if re.search(r"^\s*/\*", text):
score += 0.1
return min(score, 1.0)