diff options
author | nkozlovskiy <nmk@ydb.tech> | 2023-09-29 12:24:06 +0300 |
---|---|---|
committer | nkozlovskiy <nmk@ydb.tech> | 2023-09-29 12:41:34 +0300 |
commit | e0e3e1717e3d33762ce61950504f9637a6e669ed (patch) | |
tree | bca3ff6939b10ed60c3d5c12439963a1146b9711 /contrib/python/Pygments/py3/pygments/lexers/matlab.py | |
parent | 38f2c5852db84c7b4d83adfcb009eb61541d1ccd (diff) | |
download | ydb-e0e3e1717e3d33762ce61950504f9637a6e669ed.tar.gz |
add ydb deps
Diffstat (limited to 'contrib/python/Pygments/py3/pygments/lexers/matlab.py')
-rw-r--r-- | contrib/python/Pygments/py3/pygments/lexers/matlab.py | 3308 |
1 files changed, 3308 insertions, 0 deletions
diff --git a/contrib/python/Pygments/py3/pygments/lexers/matlab.py b/contrib/python/Pygments/py3/pygments/lexers/matlab.py new file mode 100644 index 0000000000..753a6efcf0 --- /dev/null +++ b/contrib/python/Pygments/py3/pygments/lexers/matlab.py @@ -0,0 +1,3308 @@ +""" + pygments.lexers.matlab + ~~~~~~~~~~~~~~~~~~~~~~ + + Lexers for Matlab and related languages. + + :copyright: Copyright 2006-2023 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. + + .. versionadded:: 0.10 + """ + name = 'Matlab' + aliases = ['matlab'] + filenames = ['*.m'] + mimetypes = ['text/matlab'] + + _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 `./`). + (r'(?<!\w)((\d+\.\d+)|(\d*\.\d+)|(\d+\.(?!%s)))' + r'([eEf][+-]?\d+)?(?!\w)' % _operators, 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>). + (r'(?:^|(?<=;))(\s*)(\w+)(\s+)(?!=|\(|%s\s|\s)' % _operators, + 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>. + + .. versionadded:: 0.10 + """ + name = 'Matlab session' + aliases = ['matlabsession'] + + 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. + + .. versionadded:: 1.5 + """ + name = 'Octave' + url = 'https://www.gnu.org/software/octave/index' + aliases = ['octave'] + filenames = ['*.m'] + mimetypes = ['text/octave'] + + # 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. + + .. versionadded:: 1.5 + """ + name = 'Scilab' + url = 'https://www.scilab.org/' + aliases = ['scilab'] + filenames = ['*.sci', '*.sce', '*.tst'] + mimetypes = ['text/scilab'] + + 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) |