物管理前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

1 lines
5.3 KiB

function i(e,t,r){return typeof r>"u"&&(r=""),typeof t>"u"&&(t="\\b"),new RegExp("^"+r+"(("+e.join(")|(")+"))"+t)}var d="\\\\[0-7]{1,3}",F="\\\\x[A-Fa-f0-9]{1,2}",k=`\\\\[abefnrtv0%?'"\\\\]`,b="([^\\u0027\\u005C\\uD800-\\uDFFF]|[\\uD800-\\uDFFF][\\uDC00-\\uDFFF])",l=["[<>]:","[<>=]=","<<=?",">>>?=?","=>","--?>","<--[->]?","\\/\\/","\\.{2,3}","[\\.\\\\%*+\\-<>!\\/^|&]=?","\\?","\\$","~",":"],g=i(["[<>]:","[<>=]=","[!=]==","<<=?",">>>?=?","=>?","--?>","<--[->]?","\\/\\/","[\\\\%*+\\-<>!\\/^|&\\u00F7\\u22BB]=?","\\?","\\$","~",":","\\u00D7","\\u2208","\\u2209","\\u220B","\\u220C","\\u2218","\\u221A","\\u221B","\\u2229","\\u222A","\\u2260","\\u2264","\\u2265","\\u2286","\\u2288","\\u228A","\\u22C5","\\b(in|isa)\\b(?!.?\\()"],""),v=/^[;,()[\]{}]/,x=/^[_A-Za-z\u00A1-\u2217\u2219-\uFFFF][\w\u00A1-\u2217\u2219-\uFFFF]*!*/,y=i([d,F,k,b],"'"),A=["begin","function","type","struct","immutable","let","macro","for","while","quote","if","else","elseif","try","finally","catch","do"],z=["end","else","elseif","catch","finally"],m=["if","else","elseif","while","for","begin","let","end","do","try","catch","finally","return","break","continue","global","local","const","export","import","importall","using","function","where","macro","module","baremodule","struct","type","mutable","immutable","quote","typealias","abstract","primitive","bitstype"],f=["true","false","nothing","NaN","Inf"],E=i(A),_=i(z),D=i(m),T=i(f),w=/^@[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/,C=/^:[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/,P=/^(`|([_A-Za-z\u00A1-\uFFFF]*"("")?))/,B=i(l,"","@"),$=i(l,"",":");function o(e){return e.nestedArrays>0}function G(e){return e.nestedGenerators>0}function c(e,t){return typeof t>"u"&&(t=0),e.scopes.length<=t?null:e.scopes[e.scopes.length-(t+1)]}function s(e,t){if(e.match("#=",!1))return t.tokenize=Z,t.tokenize(e,t);var r=t.leavingExpr;if(e.sol()&&(r=!1),t.leavingExpr=!1,r&&e.match(/^'+/))return"operator";if(e.match(/\.{4,}/))return"error";if(e.match(/\.{1,3}/))return"operator";if(e.eatSpace())return null;var a=e.peek();if(a==="#")return e.skipToEnd(),"comment";if(a==="["&&(t.scopes.push("["),t.nestedArrays++),a==="("&&(t.scopes.push("("),t.nestedGenerators++),o(t)&&a==="]"){for(;t.scopes.length&&c(t)!=="[";)t.scopes.pop();t.scopes.pop(),t.nestedArrays--,t.leavingExpr=!0}if(G(t)&&a===")"){for(;t.scopes.length&&c(t)!=="(";)t.scopes.pop();t.scopes.pop(),t.nestedGenerators--,t.leavingExpr=!0}if(o(t)){if(t.lastToken=="end"&&e.match(":"))return"operator";if(e.match("end"))return"number"}var n;if((n=e.match(E,!1))&&t.scopes.push(n[0]),e.match(_,!1)&&t.scopes.pop(),e.match(/^::(?![:\$])/))return t.tokenize=I,t.tokenize(e,t);if(!r&&(e.match(C)||e.match($)))return"builtin";if(e.match(g))return"operator";if(e.match(/^\.?\d/,!1)){var p=RegExp(/^im\b/),u=!1;if(e.match(/^0x\.[0-9a-f_]+p[\+\-]?[_\d]+/i)&&(u=!0),e.match(/^0x[0-9a-f_]+/i)&&(u=!0),e.match(/^0b[01_]+/i)&&(u=!0),e.match(/^0o[0-7_]+/i)&&(u=!0),e.match(/^(?:(?:\d[_\d]*)?\.(?!\.)(?:\d[_\d]*)?|\d[_\d]*\.(?!\.)(?:\d[_\d]*))?([Eef][\+\-]?[_\d]+)?/i)&&(u=!0),e.match(/^\d[_\d]*(e[\+\-]?\d+)?/i)&&(u=!0),u)return e.match(p),t.leavingExpr=!0,"number"}if(e.match("'"))return t.tokenize=j,t.tokenize(e,t);if(e.match(P))return t.tokenize=S(e.current()),t.tokenize(e,t);if(e.match(w)||e.match(B))return"meta";if(e.match(v))return null;if(e.match(D))return"keyword";if(e.match(T))return"builtin";var h=t.isDefinition||t.lastToken=="function"||t.lastToken=="macro"||t.lastToken=="type"||t.lastToken=="struct"||t.lastToken=="immutable";return e.match(x)?h?e.peek()==="."?(t.isDefinition=!0,"variable"):(t.isDefinition=!1,"def"):(t.leavingExpr=!0,"variable"):(e.next(),"error")}function I(e,t){return e.match(/.*?(?=[,;{}()=\s]|$)/),e.match("{")?t.nestedParameters++:e.match("}")&&t.nestedParameters>0&&t.nestedParameters--,t.nestedParameters>0?e.match(/.*?(?={|})/)||e.next():t.nestedParameters==0&&(t.tokenize=s),"builtin"}function Z(e,t){return e.match("#=")&&t.nestedComments++,e.match(/.*?(?=(#=|=#))/)||e.skipToEnd(),e.match("=#")&&(t.nestedComments--,t.nestedComments==0&&(t.tokenize=s)),"comment"}function j(e,t){var r=!1,a;if(e.match(y))r=!0;else if(a=e.match(/\\u([a-f0-9]{1,4})(?=')/i)){var n=parseInt(a[1],16);(n<=55295||n>=57344)&&(r=!0,e.next())}else if(a=e.match(/\\U([A-Fa-f0-9]{5,8})(?=')/)){var n=parseInt(a[1],16);n<=1114111&&(r=!0,e.next())}return r?(t.leavingExpr=!0,t.tokenize=s,"string"):(e.match(/^[^']+(?=')/)||e.skipToEnd(),e.match("'")&&(t.tokenize=s),"error")}function S(e){e.substr(-3)==='"""'?e='"""':e.substr(-1)==='"'&&(e='"');function t(r,a){if(r.eat("\\"))r.next();else{if(r.match(e))return a.tokenize=s,a.leavingExpr=!0,"string";r.eat(/[`"]/)}return r.eatWhile(/[^\\`"]/),"string"}return t}const q={name:"julia",startState:function(){return{tokenize:s,scopes:[],lastToken:null,leavingExpr:!1,isDefinition:!1,nestedArrays:0,nestedComments:0,nestedGenerators:0,nestedParameters:0,firstParenPos:-1}},token:function(e,t){var r=t.tokenize(e,t),a=e.current();return a&&r&&(t.lastToken=a),r},indent:function(e,t,r){var a=0;return(t==="]"||t===")"||/^end\b/.test(t)||/^else/.test(t)||/^catch\b/.test(t)||/^elseif\b/.test(t)||/^finally/.test(t))&&(a=-1),(e.scopes.length+a)*r.unit},languageData:{indentOnInput:/^\s*(end|else|catch|finally)\b$/,commentTokens:{line:"#",block:{open:"#=",close:"=#"}},closeBrackets:{brackets:["(","[","{",'"']},autocomplete:m.concat(f)}};export{q as julia};