1{"version":3,"sources":["../../node_modules/codemirror/mode/octave/octave.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","defineMode","wordRegexp","words","RegExp","join","singleOperators","singleDelimiters","doubleOperators","doubleDelimiters","tripleDelimiters","expressionEnd","identifiers","builtins","keywords","tokenTranspose","stream","state","sol","peek","next","tokenize","tokenBase","tokenComment","match","skipToEnd","eatSpace","m","startState","token","style","lineComment","fold","defineMIME"],"mappings":"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","file":"octave.min.js","sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"octave\", function() {\n function wordRegexp(words) {\n return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n }\n\n var singleOperators = new RegExp(\"^[\\\\+\\\\-\\\\*/&|\\\\^~<>!@'\\\\\\\\]\");\n var singleDelimiters = new RegExp('^[\\\\(\\\\[\\\\{\\\\},:=;\\\\.]');\n var doubleOperators = new RegExp(\"^((==)|(~=)|(<=)|(>=)|(<<)|(>>)|(\\\\.[\\\\+\\\\-\\\\*/\\\\^\\\\\\\\]))\");\n var doubleDelimiters = new RegExp(\"^((!=)|(\\\\+=)|(\\\\-=)|(\\\\*=)|(/=)|(&=)|(\\\\|=)|(\\\\^=))\");\n var tripleDelimiters = new RegExp(\"^((>>=)|(<<=))\");\n var expressionEnd = new RegExp(\"^[\\\\]\\\\)]\");\n var identifiers = new RegExp(\"^[_A-Za-z\\xa1-\\uffff][_A-Za-z0-9\\xa1-\\uffff]*\");\n\n var builtins = wordRegexp([\n 'error', 'eval', 'function', 'abs', 'acos', 'atan', 'asin', 'cos',\n 'cosh', 'exp', 'log', 'prod', 'sum', 'log10', 'max', 'min', 'sign', 'sin', 'sinh',\n 'sqrt', 'tan', 'reshape', 'break', 'zeros', 'default', 'margin', 'round', 'ones',\n 'rand', 'syn', 'ceil', 'floor', 'size', 'clear', 'zeros', 'eye', 'mean', 'std', 'cov',\n 'det', 'eig', 'inv', 'norm', 'rank', 'trace', 'expm', 'logm', 'sqrtm', 'linspace', 'plot',\n 'title', 'xlabel', 'ylabel', 'legend', 'text', 'grid', 'meshgrid', 'mesh', 'num2str',\n 'fft', 'ifft', 'arrayfun', 'cellfun', 'input', 'fliplr', 'flipud', 'ismember'\n ]);\n\n var keywords = wordRegexp([\n 'return', 'case', 'switch', 'else', 'elseif', 'end', 'endif', 'endfunction',\n 'if', 'otherwise', 'do', 'for', 'while', 'try', 'catch', 'classdef', 'properties', 'events',\n 'methods', 'global', 'persistent', 'endfor', 'endwhile', 'printf', 'sprintf', 'disp', 'until',\n 'continue', 'pkg'\n ]);\n\n\n // tokenizers\n function tokenTranspose(stream, state) {\n if (!stream.sol() && stream.peek() === '\\'') {\n stream.next();\n state.tokenize = tokenBase;\n return 'operator';\n }\n state.tokenize = tokenBase;\n return tokenBase(stream, state);\n }\n\n\n function tokenComment(stream, state) {\n if (stream.match(/^.*%}/)) {\n state.tokenize = tokenBase;\n return 'comment';\n };\n stream.skipToEnd();\n return 'comment';\n }\n\n function tokenBase(stream, state) {\n // whitespaces\n if (stream.eatSpace()) return null;\n\n // Handle one line Comments\n if (stream.match('%{')){\n state.tokenize = tokenComment;\n stream.skipToEnd();\n return 'comment';\n }\n\n if (stream.match(/^[%#]/)){\n stream.skipToEnd();\n return 'comment';\n }\n\n // Handle Number Literals\n if (stream.match(/^[0-9\\.+-]/, false)) {\n if (stream.match(/^[+-]?0x[0-9a-fA-F]+[ij]?/)) {\n stream.tokenize = tokenBase;\n return 'number'; };\n if (stream.match(/^[+-]?\\d*\\.\\d+([EeDd][+-]?\\d+)?[ij]?/)) { return 'number'; };\n if (stream.match(/^[+-]?\\d+([EeDd][+-]?\\d+)?[ij]?/)) { return 'number'; };\n }\n if (stream.match(wordRegexp(['nan','NaN','inf','Inf']))) { return 'number'; };\n\n // Handle Strings\n var m = stream.match(/^\"(?:[^\"]|\"\")*(\"|$)/) || stream.match(/^'(?:[^']|'')*('|$)/)\n if (m) { return m[1] ? 'string' : \"string error\"; }\n\n // Handle words\n if (stream.match(keywords)) { return 'keyword'; } ;\n if (stream.match(builtins)) { return 'builtin'; } ;\n if (stream.match(identifiers)) { return 'variable'; } ;\n\n if (stream.match(singleOperators) || stream.match(doubleOperators)) { return 'operator'; };\n if (stream.match(singleDelimiters) || stream.match(doubleDelimiters) || stream.match(tripleDelimiters)) { return null; };\n\n if (stream.match(expressionEnd)) {\n state.tokenize = tokenTranspose;\n return null;\n };\n\n\n // Handle non-detected items\n stream.next();\n return 'error';\n };\n\n\n return {\n startState: function() {\n return {\n tokenize: tokenBase\n };\n },\n\n token: function(stream, state) {\n var style = state.tokenize(stream, state);\n if (style === 'number' || style === 'variable'){\n state.tokenize = tokenTranspose;\n }\n return style;\n },\n\n lineComment: '%',\n\n fold: 'indent'\n };\n});\n\nCodeMirror.defineMIME(\"text/x-octave\", \"octave\");\n\n});\n"]}