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.
2 lines
7.7 KiB
2 lines
7.7 KiB
5 months ago
|
function o(e){return{type:e,style:"keyword"}}var P=o("keyword a"),W=o("keyword b"),g=o("keyword c"),K=o("operator"),z={type:"atom",style:"atom"},y={type:"attribute",style:"attribute"},c=o("typedef"),B={if:P,while:P,else:W,do:W,try:W,return:g,break:g,continue:g,new:g,throw:g,var:o("var"),inline:y,static:y,using:o("import"),public:y,private:y,cast:o("cast"),import:o("import"),macro:o("macro"),function:o("function"),catch:o("catch"),untyped:o("untyped"),callback:o("cb"),for:o("for"),switch:o("switch"),case:o("case"),default:o("default"),in:K,never:o("property_access"),trace:o("trace"),class:c,abstract:c,enum:c,interface:c,typedef:c,extends:c,implements:c,dynamic:c,true:z,false:z,null:z},E=/[+\-*&%=<>!?|]/;function I(e,r,n){return r.tokenize=n,n(e,r)}function L(e,r){for(var n=!1,i;(i=e.next())!=null;){if(i==r&&!n)return!0;n=!n&&i=="\\"}}var c,N;function p(e,r,n){return c=e,N=n,r}function A(e,r){var n=e.next();if(n=='"'||n=="'")return I(e,r,M(n));if(/[\[\]{}\(\),;\:\.]/.test(n))return p(n);if(n=="0"&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),p("number","number");if(/\d/.test(n)||n=="-"&&e.eat(/\d/))return e.match(/^\d*(?:\.\d*(?!\.))?(?:[eE][+\-]?\d+)?/),p("number","number");if(r.reAllowed&&n=="~"&&e.eat(/\//))return L(e,"/"),e.eatWhile(/[gimsu]/),p("regexp","string.special");if(n=="/")return e.eat("*")?I(e,r,Q):e.eat("/")?(e.skipToEnd(),p("comment","comment")):(e.eatWhile(E),p("operator",null,e.current()));if(n=="#")return e.skipToEnd(),p("conditional","meta");if(n=="@")return e.eat(/:/),e.eatWhile(/[\w_]/),p("metadata","meta");if(E.test(n))return e.eatWhile(E),p("operator",null,e.current());var i;if(/[A-Z]/.test(n))return e.eatWhile(/[\w_<>]/),i=e.current(),p("type","type",i);e.eatWhile(/[\w_]/);var i=e.current(),u=B.propertyIsEnumerable(i)&&B[i];return u&&r.kwAllowed?p(u.type,u.style,i):p("variable","variable",i)}function M(e){return function(r,n){return L(r,e)&&(n.tokenize=A),p("string","string")}}function Q(e,r){for(var n=!1,i;i=e.next();){if(i=="/"&&n){r.tokenize=A;break}n=i=="*"}return p("comment","comment")}var $={atom:!0,number:!0,variable:!0,string:!0,regexp:!0};function j(e,r,n,i,u,s){this.indented=e,this.column=r,this.type=n,this.prev=u,this.info=s,i!=null&&(this.align=i)}function R(e,r){for(var n=e.localVars;n;n=n.next)if(n.name==r)return!0}function X(e,r,n,i,u){var s=e.cc;for(a.state=e,a.stream=u,a.marked=null,a.cc=s,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;){var k=s.length?s.pop():x;if(k(n,i)){for(;s.length&&s[s.length-1].lex;)s.pop()();return a.marked?a.marked:n=="variable"&&R(e,i)?"variableName.local":n=="variable"&&Y(e,i)?"variableName.special":r}}}function Y(e,r){if(/[a-z]/.test(r.charAt(0)))return!1;for(var n=e.importedtypes.length,i=0;i<n;i++)if(e.importedtypes[i]==r)return!0}function F(e){for(var r=a.state,n=r.importedtypes;n;n=n.next)if(n.name==e)return;r.importedtypes={name:e,next:r.importedtypes}}var a={state:null,column:null,marked:null,cc:null};function b(){for(var e=arguments.length-1;e>=0;e--)a.cc.push(arguments[e])}function t(){return b.apply(null,arguments),!0}function H(e,r){for(var n=r;n;n=n.next)if(n.name==e)return!0;return!1}function S(e){var r=a.state;if(r.context){if(a.marked="def",H(e,r.localVars))return;r.localVars={name:e,next:r.localVars}}else if(r.globalVars){if(H(e,r.globalVars))return;r.globalVars={name:e,next:r.globalVars}}}var ee={name:"this",next:null};function D(){a.state.context||(a.state.localVars=ee),a.state.context={prev:a.state.context,vars:a.state.localVars}}function V(){a.state.localVars=a.state.context.vars,a.state.context=a.state.context.prev}V.lex=!0;function l(e,r){var n=function(){var i=a.state;i.lexical=new j(i.indented,a.stream.column(),e,null,i.lexical,r)};return n.lex=!0,n}function f(){var e=a.state;e.lexical.prev&&(e.lexical.type==")"&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}f.lex=!0;function d(e){function r(n){return n==e?t():e==";"?b():t(r)}return r}function x(e){return e=="@"?t(Z):e=="var"?t(l("vardef"),C,d(";"),f):e=="keyword a"?t(l("form"),h,x,f):e=="keyword b"?t(l("form"),x,f):e=="{"?t(l("}"),D,_,f,V):e==";"?t():e=="attri
|