forked from phcode-dev/staging.phcode.dev
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmathematica.js
More file actions
1 lines (1 loc) · 2.68 KB
/
Copy pathmathematica.js
File metadata and controls
1 lines (1 loc) · 2.68 KB
1
!function(mod){"object"==typeof exports&&"object"==typeof module?mod(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],mod):mod(CodeMirror)}(function(CodeMirror){"use strict";CodeMirror.defineMode("mathematica",function(_config,_parserConfig){var Identifier="[a-zA-Z\\$][a-zA-Z0-9\\$]*",pBase="(?:\\d+)",pFloat="(?:\\.\\d+|\\d+\\.\\d*|\\d+)",pFloatBase,pPrecision="(?:`(?:`?"+pFloat+")?)",reBaseForm=new RegExp("(?:(?:\\d+)(?:\\^\\^"+"(?:\\.\\w+|\\w+\\.\\w*|\\w+)"+pPrecision+"?(?:\\*\\^[+-]?\\d+)?))"),reFloatForm=new RegExp("(?:"+pFloat+pPrecision+"?(?:\\*\\^[+-]?\\d+)?)"),reIdInContext=new RegExp("(?:`?)(?:"+Identifier+")(?:`(?:"+Identifier+"))*(?:`?)");function tokenBase(stream,state){var ch;return'"'===(ch=stream.next())?(state.tokenize=tokenString,state.tokenize(stream,state)):"("===ch&&stream.eat("*")?(state.commentLevel++,state.tokenize=tokenComment,state.tokenize(stream,state)):(stream.backUp(1),stream.match(reBaseForm,!0,!1)?"number":stream.match(reFloatForm,!0,!1)?"number":stream.match(/(?:In|Out)\[[0-9]*\]/,!0,!1)?"atom":stream.match(/([a-zA-Z\$][a-zA-Z0-9\$]*(?:`[a-zA-Z0-9\$]+)*::usage)/,!0,!1)?"meta":stream.match(/([a-zA-Z\$][a-zA-Z0-9\$]*(?:`[a-zA-Z0-9\$]+)*::[a-zA-Z\$][a-zA-Z0-9\$]*):?/,!0,!1)?"string-2":stream.match(/([a-zA-Z\$][a-zA-Z0-9\$]*\s*:)(?:(?:[a-zA-Z\$][a-zA-Z0-9\$]*)|(?:[^:=>~@\^\&\*\)\[\]'\?,\|])).*/,!0,!1)?"variable-2":stream.match(/[a-zA-Z\$][a-zA-Z0-9\$]*_+[a-zA-Z\$][a-zA-Z0-9\$]*/,!0,!1)?"variable-2":stream.match(/[a-zA-Z\$][a-zA-Z0-9\$]*_+/,!0,!1)?"variable-2":stream.match(/_+[a-zA-Z\$][a-zA-Z0-9\$]*/,!0,!1)?"variable-2":stream.match(/\\\[[a-zA-Z\$][a-zA-Z0-9\$]*\]/,!0,!1)?"variable-3":stream.match(/(?:\[|\]|{|}|\(|\))/,!0,!1)?"bracket":stream.match(/(?:#[a-zA-Z\$][a-zA-Z0-9\$]*|#+[0-9]?)/,!0,!1)?"variable-2":stream.match(reIdInContext,!0,!1)?"keyword":stream.match(/(?:\\|\+|\-|\*|\/|,|;|\.|:|@|~|=|>|<|&|\||_|`|'|\^|\?|!|%)/,!0,!1)?"operator":(stream.next(),"error"))}function tokenString(stream,state){for(var next,end=!1,escaped=!1;null!=(next=stream.next());){if('"'===next&&!escaped){end=!0;break}escaped=!escaped&&"\\"===next}return end&&!escaped&&(state.tokenize=tokenBase),"string"}function tokenComment(stream,state){for(var prev,next;state.commentLevel>0&&null!=(next=stream.next());)"("===prev&&"*"===next&&state.commentLevel++,"*"===prev&&")"===next&&state.commentLevel--,prev=next;return state.commentLevel<=0&&(state.tokenize=tokenBase),"comment"}return{startState:function(){return{tokenize:tokenBase,commentLevel:0}},token:function(stream,state){return stream.eatSpace()?null:state.tokenize(stream,state)},blockCommentStart:"(*",blockCommentEnd:"*)"}}),CodeMirror.defineMIME("text/x-mathematica",{name:"mathematica"})});