| """ |
| 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) |