File manager - Edit - /home/opticamezl/www/newok/erlang.tar
Back
erlang.js 0000644 00000044674 15174551506 0006402 0 ustar 00 // CodeMirror, copyright (c) by Marijn Haverbeke and others // Distributed under an MIT license: https://codemirror.net/5/LICENSE /*jshint unused:true, eqnull:true, curly:true, bitwise:true */ /*jshint undef:true, latedef:true, trailing:true */ /*global CodeMirror:true */ // erlang mode. // tokenizer -> token types -> CodeMirror styles // tokenizer maintains a parse stack // indenter uses the parse stack // TODO indenter: // bit syntax // old guard/bif/conversion clashes (e.g. "float/1") // type/spec/opaque (function(mod) { if (typeof exports == "object" && typeof module == "object") // CommonJS mod(require("../../lib/codemirror")); else if (typeof define == "function" && define.amd) // AMD define(["../../lib/codemirror"], mod); else // Plain browser env mod(CodeMirror); })(function(CodeMirror) { "use strict"; CodeMirror.defineMIME("text/x-erlang", "erlang"); CodeMirror.defineMode("erlang", function(cmCfg) { "use strict"; ///////////////////////////////////////////////////////////////////////////// // constants var typeWords = [ "-type", "-spec", "-export_type", "-opaque"]; var keywordWords = [ "after","begin","catch","case","cond","end","fun","if", "let","of","query","receive","try","when"]; var separatorRE = /[\->,;]/; var separatorWords = [ "->",";",","]; var operatorAtomWords = [ "and","andalso","band","bnot","bor","bsl","bsr","bxor", "div","not","or","orelse","rem","xor"]; var operatorSymbolRE = /[\+\-\*\/<>=\|:!]/; var operatorSymbolWords = [ "=","+","-","*","/",">",">=","<","=<","=:=","==","=/=","/=","||","<-","!"]; var openParenRE = /[<\(\[\{]/; var openParenWords = [ "<<","(","[","{"]; var closeParenRE = /[>\)\]\}]/; var closeParenWords = [ "}","]",")",">>"]; var guardWords = [ "is_atom","is_binary","is_bitstring","is_boolean","is_float", "is_function","is_integer","is_list","is_number","is_pid", "is_port","is_record","is_reference","is_tuple", "atom","binary","bitstring","boolean","function","integer","list", "number","pid","port","record","reference","tuple"]; var bifWords = [ "abs","adler32","adler32_combine","alive","apply","atom_to_binary", "atom_to_list","binary_to_atom","binary_to_existing_atom", "binary_to_list","binary_to_term","bit_size","bitstring_to_list", "byte_size","check_process_code","contact_binary","crc32", "crc32_combine","date","decode_packet","delete_module", "disconnect_node","element","erase","exit","float","float_to_list", "garbage_collect","get","get_keys","group_leader","halt","hd", "integer_to_list","internal_bif","iolist_size","iolist_to_binary", "is_alive","is_atom","is_binary","is_bitstring","is_boolean", "is_float","is_function","is_integer","is_list","is_number","is_pid", "is_port","is_process_alive","is_record","is_reference","is_tuple", "length","link","list_to_atom","list_to_binary","list_to_bitstring", "list_to_existing_atom","list_to_float","list_to_integer", "list_to_pid","list_to_tuple","load_module","make_ref","module_loaded", "monitor_node","node","node_link","node_unlink","nodes","notalive", "now","open_port","pid_to_list","port_close","port_command", "port_connect","port_control","pre_loaded","process_flag", "process_info","processes","purge_module","put","register", "registered","round","self","setelement","size","spawn","spawn_link", "spawn_monitor","spawn_opt","split_binary","statistics", "term_to_binary","time","throw","tl","trunc","tuple_size", "tuple_to_list","unlink","unregister","whereis"]; // upper case: [A-Z] [Ø-Þ] [À-Ö] // lower case: [a-z] [ß-ö] [ø-ÿ] var anumRE = /[\w@Ø-ÞÀ-Öß-öø-ÿ]/; var escapesRE = /[0-7]{1,3}|[bdefnrstv\\"']|\^[a-zA-Z]|x[0-9a-zA-Z]{2}|x{[0-9a-zA-Z]+}/; ///////////////////////////////////////////////////////////////////////////// // tokenizer function tokenizer(stream,state) { // in multi-line string if (state.in_string) { state.in_string = (!doubleQuote(stream)); return rval(state,stream,"string"); } // in multi-line atom if (state.in_atom) { state.in_atom = (!singleQuote(stream)); return rval(state,stream,"atom"); } // whitespace if (stream.eatSpace()) { return rval(state,stream,"whitespace"); } // attributes and type specs if (!peekToken(state) && stream.match(/-\s*[a-zß-öø-ÿ][\wØ-ÞÀ-Öß-öø-ÿ]*/)) { if (is_member(stream.current(),typeWords)) { return rval(state,stream,"type"); }else{ return rval(state,stream,"attribute"); } } var ch = stream.next(); // comment if (ch == '%') { stream.skipToEnd(); return rval(state,stream,"comment"); } // colon if (ch == ":") { return rval(state,stream,"colon"); } // macro if (ch == '?') { stream.eatSpace(); stream.eatWhile(anumRE); return rval(state,stream,"macro"); } // record if (ch == "#") { stream.eatSpace(); stream.eatWhile(anumRE); return rval(state,stream,"record"); } // dollar escape if (ch == "$") { if (stream.next() == "\\" && !stream.match(escapesRE)) { return rval(state,stream,"error"); } return rval(state,stream,"number"); } // dot if (ch == ".") { return rval(state,stream,"dot"); } // quoted atom if (ch == '\'') { if (!(state.in_atom = (!singleQuote(stream)))) { if (stream.match(/\s*\/\s*[0-9]/,false)) { stream.match(/\s*\/\s*[0-9]/,true); return rval(state,stream,"fun"); // 'f'/0 style fun } if (stream.match(/\s*\(/,false) || stream.match(/\s*:/,false)) { return rval(state,stream,"function"); } } return rval(state,stream,"atom"); } // string if (ch == '"') { state.in_string = (!doubleQuote(stream)); return rval(state,stream,"string"); } // variable if (/[A-Z_Ø-ÞÀ-Ö]/.test(ch)) { stream.eatWhile(anumRE); return rval(state,stream,"variable"); } // atom/keyword/BIF/function if (/[a-z_ß-öø-ÿ]/.test(ch)) { stream.eatWhile(anumRE); if (stream.match(/\s*\/\s*[0-9]/,false)) { stream.match(/\s*\/\s*[0-9]/,true); return rval(state,stream,"fun"); // f/0 style fun } var w = stream.current(); if (is_member(w,keywordWords)) { return rval(state,stream,"keyword"); }else if (is_member(w,operatorAtomWords)) { return rval(state,stream,"operator"); }else if (stream.match(/\s*\(/,false)) { // 'put' and 'erlang:put' are bifs, 'foo:put' is not if (is_member(w,bifWords) && ((peekToken(state).token != ":") || (peekToken(state,2).token == "erlang"))) { return rval(state,stream,"builtin"); }else if (is_member(w,guardWords)) { return rval(state,stream,"guard"); }else{ return rval(state,stream,"function"); } }else if (lookahead(stream) == ":") { if (w == "erlang") { return rval(state,stream,"builtin"); } else { return rval(state,stream,"function"); } }else if (is_member(w,["true","false"])) { return rval(state,stream,"boolean"); }else{ return rval(state,stream,"atom"); } } // number var digitRE = /[0-9]/; var radixRE = /[0-9a-zA-Z]/; // 36#zZ style int if (digitRE.test(ch)) { stream.eatWhile(digitRE); if (stream.eat('#')) { // 36#aZ style integer if (!stream.eatWhile(radixRE)) { stream.backUp(1); //"36#" - syntax error } } else if (stream.eat('.')) { // float if (!stream.eatWhile(digitRE)) { stream.backUp(1); // "3." - probably end of function } else { if (stream.eat(/[eE]/)) { // float with exponent if (stream.eat(/[-+]/)) { if (!stream.eatWhile(digitRE)) { stream.backUp(2); // "2e-" - syntax error } } else { if (!stream.eatWhile(digitRE)) { stream.backUp(1); // "2e" - syntax error } } } } } return rval(state,stream,"number"); // normal integer } // open parens if (nongreedy(stream,openParenRE,openParenWords)) { return rval(state,stream,"open_paren"); } // close parens if (nongreedy(stream,closeParenRE,closeParenWords)) { return rval(state,stream,"close_paren"); } // separators if (greedy(stream,separatorRE,separatorWords)) { return rval(state,stream,"separator"); } // operators if (greedy(stream,operatorSymbolRE,operatorSymbolWords)) { return rval(state,stream,"operator"); } return rval(state,stream,null); } ///////////////////////////////////////////////////////////////////////////// // utilities function nongreedy(stream,re,words) { if (stream.current().length == 1 && re.test(stream.current())) { stream.backUp(1); while (re.test(stream.peek())) { stream.next(); if (is_member(stream.current(),words)) { return true; } } stream.backUp(stream.current().length-1); } return false; } function greedy(stream,re,words) { if (stream.current().length == 1 && re.test(stream.current())) { while (re.test(stream.peek())) { stream.next(); } while (0 < stream.current().length) { if (is_member(stream.current(),words)) { return true; }else{ stream.backUp(1); } } stream.next(); } return false; } function doubleQuote(stream) { return quote(stream, '"', '\\'); } function singleQuote(stream) { return quote(stream,'\'','\\'); } function quote(stream,quoteChar,escapeChar) { while (!stream.eol()) { var ch = stream.next(); if (ch == quoteChar) { return true; }else if (ch == escapeChar) { stream.next(); } } return false; } function lookahead(stream) { var m = stream.match(/^\s*([^\s%])/, false) return m ? m[1] : ""; } function is_member(element,list) { return (-1 < list.indexOf(element)); } function rval(state,stream,type) { // parse stack pushToken(state,realToken(type,stream)); // map erlang token type to CodeMirror style class // erlang -> CodeMirror tag switch (type) { case "atom": return "atom"; case "attribute": return "attribute"; case "boolean": return "atom"; case "builtin": return "builtin"; case "close_paren": return null; case "colon": return null; case "comment": return "comment"; case "dot": return null; case "error": return "error"; case "fun": return "meta"; case "function": return "tag"; case "guard": return "property"; case "keyword": return "keyword"; case "macro": return "variable-2"; case "number": return "number"; case "open_paren": return null; case "operator": return "operator"; case "record": return "bracket"; case "separator": return null; case "string": return "string"; case "type": return "def"; case "variable": return "variable"; default: return null; } } function aToken(tok,col,ind,typ) { return {token: tok, column: col, indent: ind, type: typ}; } function realToken(type,stream) { return aToken(stream.current(), stream.column(), stream.indentation(), type); } function fakeToken(type) { return aToken(type,0,0,type); } function peekToken(state,depth) { var len = state.tokenStack.length; var dep = (depth ? depth : 1); if (len < dep) { return false; }else{ return state.tokenStack[len-dep]; } } function pushToken(state,token) { if (!(token.type == "comment" || token.type == "whitespace")) { state.tokenStack = maybe_drop_pre(state.tokenStack,token); state.tokenStack = maybe_drop_post(state.tokenStack); } } function maybe_drop_pre(s,token) { var last = s.length-1; if (0 < last && s[last].type === "record" && token.type === "dot") { s.pop(); }else if (0 < last && s[last].type === "group") { s.pop(); s.push(token); }else{ s.push(token); } return s; } function maybe_drop_post(s) { if (!s.length) return s var last = s.length-1; if (s[last].type === "dot") { return []; } if (last > 1 && s[last].type === "fun" && s[last-1].token === "fun") { return s.slice(0,last-1); } switch (s[last].token) { case "}": return d(s,{g:["{"]}); case "]": return d(s,{i:["["]}); case ")": return d(s,{i:["("]}); case ">>": return d(s,{i:["<<"]}); case "end": return d(s,{i:["begin","case","fun","if","receive","try"]}); case ",": return d(s,{e:["begin","try","when","->", ",","(","[","{","<<"]}); case "->": return d(s,{r:["when"], m:["try","if","case","receive"]}); case ";": return d(s,{E:["case","fun","if","receive","try","when"]}); case "catch":return d(s,{e:["try"]}); case "of": return d(s,{e:["case"]}); case "after":return d(s,{e:["receive","try"]}); default: return s; } } function d(stack,tt) { // stack is a stack of Token objects. // tt is an object; {type:tokens} // type is a char, tokens is a list of token strings. // The function returns (possibly truncated) stack. // It will descend the stack, looking for a Token such that Token.token // is a member of tokens. If it does not find that, it will normally (but // see "E" below) return stack. If it does find a match, it will remove // all the Tokens between the top and the matched Token. // If type is "m", that is all it does. // If type is "i", it will also remove the matched Token and the top Token. // If type is "g", like "i", but add a fake "group" token at the top. // If type is "r", it will remove the matched Token, but not the top Token. // If type is "e", it will keep the matched Token but not the top Token. // If type is "E", it behaves as for type "e", except if there is no match, // in which case it will return an empty stack. for (var type in tt) { var len = stack.length-1; var tokens = tt[type]; for (var i = len-1; -1 < i ; i--) { if (is_member(stack[i].token,tokens)) { var ss = stack.slice(0,i); switch (type) { case "m": return ss.concat(stack[i]).concat(stack[len]); case "r": return ss.concat(stack[len]); case "i": return ss; case "g": return ss.concat(fakeToken("group")); case "E": return ss.concat(stack[i]); case "e": return ss.concat(stack[i]); } } } } return (type == "E" ? [] : stack); } ///////////////////////////////////////////////////////////////////////////// // indenter function indenter(state,textAfter) { var t; var unit = cmCfg.indentUnit; var wordAfter = wordafter(textAfter); var currT = peekToken(state,1); var prevT = peekToken(state,2); if (state.in_string || state.in_atom) { return CodeMirror.Pass; }else if (!prevT) { return 0; }else if (currT.token == "when") { return currT.column+unit; }else if (wordAfter === "when" && prevT.type === "function") { return prevT.indent+unit; }else if (wordAfter === "(" && currT.token === "fun") { return currT.column+3; }else if (wordAfter === "catch" && (t = getToken(state,["try"]))) { return t.column; }else if (is_member(wordAfter,["end","after","of"])) { t = getToken(state,["begin","case","fun","if","receive","try"]); return t ? t.column : CodeMirror.Pass; }else if (is_member(wordAfter,closeParenWords)) { t = getToken(state,openParenWords); return t ? t.column : CodeMirror.Pass; }else if (is_member(currT.token,[",","|","||"]) || is_member(wordAfter,[",","|","||"])) { t = postcommaToken(state); return t ? t.column+t.token.length : unit; }else if (currT.token == "->") { if (is_member(prevT.token, ["receive","case","if","try"])) { return prevT.column+unit+unit; }else{ return prevT.column+unit; } }else if (is_member(currT.token,openParenWords)) { return currT.column+currT.token.length; }else{ t = defaultToken(state); return truthy(t) ? t.column+unit : 0; } } function wordafter(str) { var m = str.match(/,|[a-z]+|\}|\]|\)|>>|\|+|\(/); return truthy(m) && (m.index === 0) ? m[0] : ""; } function postcommaToken(state) { var objs = state.tokenStack.slice(0,-1); var i = getTokenIndex(objs,"type",["open_paren"]); return truthy(objs[i]) ? objs[i] : false; } function defaultToken(state) { var objs = state.tokenStack; var stop = getTokenIndex(objs,"type",["open_paren","separator","keyword"]); var oper = getTokenIndex(objs,"type",["operator"]); if (truthy(stop) && truthy(oper) && stop < oper) { return objs[stop+1]; } else if (truthy(stop)) { return objs[stop]; } else { return false; } } function getToken(state,tokens) { var objs = state.tokenStack; var i = getTokenIndex(objs,"token",tokens); return truthy(objs[i]) ? objs[i] : false; } function getTokenIndex(objs,propname,propvals) { for (var i = objs.length-1; -1 < i ; i--) { if (is_member(objs[i][propname],propvals)) { return i; } } return false; } function truthy(x) { return (x !== false) && (x != null); } ///////////////////////////////////////////////////////////////////////////// // this object defines the mode return { startState: function() { return {tokenStack: [], in_string: false, in_atom: false}; }, token: function(stream, state) { return tokenizer(stream, state); }, indent: function(state, textAfter) { return indenter(state,textAfter); }, lineComment: "%" }; }); }); erlang.min.js 0000644 00000020301 15174551506 0007141 0 ustar 00 (function(a){typeof exports=="object"&&typeof module=="object"?a(require("../../lib/codemirror")):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})(function(a){"use strict";a.defineMIME("text/x-erlang","erlang"),a.defineMode("erlang",function(S){"use strict";var E=["-type","-spec","-export_type","-opaque"],z=["after","begin","catch","case","cond","end","fun","if","let","of","query","receive","try","when"],T=/[\->,;]/,R=["->",";",","],U=["and","andalso","band","bnot","bor","bsl","bsr","bxor","div","not","or","orelse","rem","xor"],A=/[\+\-\*\/<>=\|:!]/,P=["=","+","-","*","/",">",">=","<","=<","=:=","==","=/=","/=","||","<-","!"],Z=/[<\(\[\{]/,b=["<<","(","[","{"],j=/[>\)\]\}]/,v=["}","]",")",">>"],q=["is_atom","is_binary","is_bitstring","is_boolean","is_float","is_function","is_integer","is_list","is_number","is_pid","is_port","is_record","is_reference","is_tuple","atom","binary","bitstring","boolean","function","integer","list","number","pid","port","record","reference","tuple"],m=["abs","adler32","adler32_combine","alive","apply","atom_to_binary","atom_to_list","binary_to_atom","binary_to_existing_atom","binary_to_list","binary_to_term","bit_size","bitstring_to_list","byte_size","check_process_code","contact_binary","crc32","crc32_combine","date","decode_packet","delete_module","disconnect_node","element","erase","exit","float","float_to_list","garbage_collect","get","get_keys","group_leader","halt","hd","integer_to_list","internal_bif","iolist_size","iolist_to_binary","is_alive","is_atom","is_binary","is_bitstring","is_boolean","is_float","is_function","is_integer","is_list","is_number","is_pid","is_port","is_process_alive","is_record","is_reference","is_tuple","length","link","list_to_atom","list_to_binary","list_to_bitstring","list_to_existing_atom","list_to_float","list_to_integer","list_to_pid","list_to_tuple","load_module","make_ref","module_loaded","monitor_node","node","node_link","node_unlink","nodes","notalive","now","open_port","pid_to_list","port_close","port_command","port_connect","port_control","pre_loaded","process_flag","process_info","processes","purge_module","put","register","registered","round","self","setelement","size","spawn","spawn_link","spawn_monitor","spawn_opt","split_binary","statistics","term_to_binary","time","throw","tl","trunc","tuple_size","tuple_to_list","unlink","unregister","whereis"],d=/[\w@Ø-ÞÀ-Öß-öø-ÿ]/,I=/[0-7]{1,3}|[bdefnrstv\\"']|\^[a-zA-Z]|x[0-9a-zA-Z]{2}|x{[0-9a-zA-Z]+}/;function Q(e,n){if(n.in_string)return n.in_string=!y(e),t(n,e,"string");if(n.in_atom)return n.in_atom=!w(e),t(n,e,"atom");if(e.eatSpace())return t(n,e,"whitespace");if(!p(n)&&e.match(/-\s*[a-zß-öø-ÿ][\wØ-ÞÀ-Öß-öø-ÿ]*/))return u(e.current(),E)?t(n,e,"type"):t(n,e,"attribute");var r=e.next();if(r=="%")return e.skipToEnd(),t(n,e,"comment");if(r==":")return t(n,e,"colon");if(r=="?")return e.eatSpace(),e.eatWhile(d),t(n,e,"macro");if(r=="#")return e.eatSpace(),e.eatWhile(d),t(n,e,"record");if(r=="$")return e.next()=="\\"&&!e.match(I)?t(n,e,"error"):t(n,e,"number");if(r==".")return t(n,e,"dot");if(r=="'"){if(!(n.in_atom=!w(e))){if(e.match(/\s*\/\s*[0-9]/,!1))return e.match(/\s*\/\s*[0-9]/,!0),t(n,e,"fun");if(e.match(/\s*\(/,!1)||e.match(/\s*:/,!1))return t(n,e,"function")}return t(n,e,"atom")}if(r=='"')return n.in_string=!y(e),t(n,e,"string");if(/[A-Z_Ø-ÞÀ-Ö]/.test(r))return e.eatWhile(d),t(n,e,"variable");if(/[a-z_ß-öø-ÿ]/.test(r)){if(e.eatWhile(d),e.match(/\s*\/\s*[0-9]/,!1))return e.match(/\s*\/\s*[0-9]/,!0),t(n,e,"fun");var i=e.current();return u(i,z)?t(n,e,"keyword"):u(i,U)?t(n,e,"operator"):e.match(/\s*\(/,!1)?u(i,m)&&(p(n).token!=":"||p(n,2).token=="erlang")?t(n,e,"builtin"):u(i,q)?t(n,e,"guard"):t(n,e,"function"):O(e)==":"?i=="erlang"?t(n,e,"builtin"):t(n,e,"function"):u(i,["true","false"])?t(n,e,"boolean"):t(n,e,"atom")}var c=/[0-9]/,o=/[0-9a-zA-Z]/;return c.test(r)?(e.eatWhile(c),e.eat("#")?e.eatWhile(o)||e.backUp(1):e.eat(".")&&(e.eatWhile(c)?e.eat(/[eE]/)&&(e.eat(/[-+]/)?e.eatWhile(c)||e.backUp(2):e.eatWhile(c)||e.backUp(1)):e.backUp(1)),t(n,e,"number")):k(e,Z,b)?t(n,e,"open_paren"):k(e,j,v)?t(n,e,"close_paren"):h(e,T,R)?t(n,e,"separator"):h(e,A,P)?t(n,e,"operator"):t(n,e,null)}function k(e,n,r){if(e.current().length==1&&n.test(e.current())){for(e.backUp(1);n.test(e.peek());)if(e.next(),u(e.current(),r))return!0;e.backUp(e.current().length-1)}return!1}function h(e,n,r){if(e.current().length==1&&n.test(e.current())){for(;n.test(e.peek());)e.next();for(;0<e.current().length;){if(u(e.current(),r))return!0;e.backUp(1)}e.next()}return!1}function y(e){return x(e,'"',"\\")}function w(e){return x(e,"'","\\")}function x(e,n,r){for(;!e.eol();){var i=e.next();if(i==n)return!0;i==r&&e.next()}return!1}function O(e){var n=e.match(/^\s*([^\s%])/,!1);return n?n[1]:""}function u(e,n){return-1<n.indexOf(e)}function t(e,n,r){switch(D(e,$(r,n)),r){case"atom":return"atom";case"attribute":return"attribute";case"boolean":return"atom";case"builtin":return"builtin";case"close_paren":return null;case"colon":return null;case"comment":return"comment";case"dot":return null;case"error":return"error";case"fun":return"meta";case"function":return"tag";case"guard":return"property";case"keyword":return"keyword";case"macro":return"variable-2";case"number":return"number";case"open_paren":return null;case"operator":return"operator";case"record":return"bracket";case"separator":return null;case"string":return"string";case"type":return"def";case"variable":return"variable";default:return null}}function W(e,n,r,i){return{token:e,column:n,indent:r,type:i}}function $(e,n){return W(n.current(),n.column(),n.indentation(),e)}function B(e){return W(e,0,0,e)}function p(e,n){var r=e.tokenStack.length,i=n||1;return r<i?!1:e.tokenStack[r-i]}function D(e,n){n.type=="comment"||n.type=="whitespace"||(e.tokenStack=F(e.tokenStack,n),e.tokenStack=G(e.tokenStack))}function F(e,n){var r=e.length-1;return 0<r&&e[r].type==="record"&&n.type==="dot"?e.pop():(0<r&&e[r].type==="group"&&e.pop(),e.push(n)),e}function G(e){if(!e.length)return e;var n=e.length-1;if(e[n].type==="dot")return[];if(n>1&&e[n].type==="fun"&&e[n-1].token==="fun")return e.slice(0,n-1);switch(e[n].token){case"}":return f(e,{g:["{"]});case"]":return f(e,{i:["["]});case")":return f(e,{i:["("]});case">>":return f(e,{i:["<<"]});case"end":return f(e,{i:["begin","case","fun","if","receive","try"]});case",":return f(e,{e:["begin","try","when","->",",","(","[","{","<<"]});case"->":return f(e,{r:["when"],m:["try","if","case","receive"]});case";":return f(e,{E:["case","fun","if","receive","try","when"]});case"catch":return f(e,{e:["try"]});case"of":return f(e,{e:["case"]});case"after":return f(e,{e:["receive","try"]});default:return e}}function f(e,n){for(var r in n)for(var i=e.length-1,c=n[r],o=i-1;-1<o;o--)if(u(e[o].token,c)){var l=e.slice(0,o);switch(r){case"m":return l.concat(e[o]).concat(e[i]);case"r":return l.concat(e[i]);case"i":return l;case"g":return l.concat(B("group"));case"E":return l.concat(e[o]);case"e":return l.concat(e[o])}}return r=="E"?[]:e}function H(e,n){var r,i=S.indentUnit,c=J(n),o=p(e,1),l=p(e,2);return e.in_string||e.in_atom?a.Pass:l?o.token=="when"?o.column+i:c==="when"&&l.type==="function"?l.indent+i:c==="("&&o.token==="fun"?o.column+3:c==="catch"&&(r=g(e,["try"]))?r.column:u(c,["end","after","of"])?(r=g(e,["begin","case","fun","if","receive","try"]),r?r.column:a.Pass):u(c,v)?(r=g(e,b),r?r.column:a.Pass):u(o.token,[",","|","||"])||u(c,[",","|","||"])?(r=K(e),r?r.column+r.token.length:i):o.token=="->"?u(l.token,["receive","case","if","try"])?l.column+i+i:l.column+i:u(o.token,b)?o.column+o.token.length:(r=L(e),_(r)?r.column+i:0):0}function J(e){var n=e.match(/,|[a-z]+|\}|\]|\)|>>|\|+|\(/);return _(n)&&n.index===0?n[0]:""}function K(e){var n=e.tokenStack.slice(0,-1),r=s(n,"type",["open_paren"]);return _(n[r])?n[r]:!1}function L(e){var n=e.tokenStack,r=s(n,"type",["open_paren","separator","keyword"]),i=s(n,"type",["operator"]);return _(r)&&_(i)&&r<i?n[r+1]:_(r)?n[r]:!1}function g(e,n){var r=e.tokenStack,i=s(r,"token",n);return _(r[i])?r[i]:!1}function s(e,n,r){for(var i=e.length-1;-1<i;i--)if(u(e[i][n],r))return i;return!1}function _(e){return e!==!1&&e!=null}return{startState:function(){return{tokenStack:[],in_string:!1,in_atom:!1}},token:function(e,n){return Q(e,n)},indent:function(e,n){return H(e,n)},lineComment:"%"}})}); erlang.min.js.gz 0000644 00000005704 15174551506 0007572 0 ustar 00 � ��r#���VR\RjĬm����v8f � ���ŀz�Ȫ|E*��/R��K5^��Į���D7��h�x���R��뻆���m��m�!9�*��}GY�ŦfaRb��n�b �`X���JI�I��-� Q?!�-nP�;��j Z��ğ���`Ȏ��r�i�Q��4����/���H�[=�M��K�B���M.�h��|���TGY�pQ�� ���.�̣eS��0T�wY�ʥf Q4g+.EU��K��s%�L2��8�QT3�(�0|�a�Q�X�5i�\2� �c6̧�9C�Xw�(#�(*�+���.Ţ�[ �X�\H�b.�umm�f|kP~�(�L!��͊�E�fW^��'�d�l:<;Ϧ۴W�Y�2D� ,���h�(�p�(��'03�!|�g��졂�Ά��O��}1��,Gg �E9���M6�ϧdZLwŐ^g9ځ��"S�����r��Y�%X��ٜ��,�k�e JY�RX`Y�R���\q���l.og5o�ج���H�ȊUR-�x����45����غδؘ`�3#�` p����y�]C��[�~Q3���n4��z΅1��!X6M}�L�i�-�G8C,{N���Vs�:��j�,������$���ӫKV]�%+ֶ3($6�tY���JU�O�y�(��a 8k��ʤ��L����&E�J �*=vV�5������F6�J5/WlVɺ�zJъ����v���4������e ��n�#}�Q��gsSF��_����!9��E6��|��X�K���%ArNw��1�{����~�ƺ�`�,]Ĭ�+^���f@g����̜[f��� �WK��� ~I���ÜRU-M`Z@��8p����J��Ш�R�I˺\E Kفƶf�VQ�4[�V�����Jn�%-���Gw���m����X�-_�ec䚚G���R�V`����|m �2�ks�nD嫤�#t��d#"�n.�b�E]�!y$}�S��燿%�G���bH�̆�i��~D?�m�-�j��t������LH^��4���ﶷ��d7�<�#fT�{��b���9QLo�8�PY�3B5���\ c/)�'��wɘ,1l�J��)+��rL7�\�H���`A�}6XC3��ɴ}^F˒Oo�\�gà|�٠�(ńƄ^���ʹa$ j�� SC�26�Vcc��2�!�٠��͏�B,p�R�0��{�����H_�$� ?]��EP�.+%;�� QW����u0��t����_�/�1ۛ�ErU9�<vq!�8F&�z�QL��:m�M�AZioD:��r��VUċ���6F�{�;q{��>����zr��UR���Y��p�Y��"{�x��K��yͼ�2y7�+@Pr��(h�_.&D?Ϣ��D��]�+vwc+���� S�6Q�ĞL�yM�}�=����v�`A�;T��ۗ�;��Zs��{�Mi�8���;̈�� ���;� r(�Pė%�f����D�Ä ,[eJ4���#Wt�~ +���x+��{���yY]�j��p ,�+��9�(����yrR�tV���N��Z�G5��W���t85�b�8@|C�Ѵ�z�����-kJ5@{A�*�,Fl���!3 �\V���n/�F����Q �_J�#ǁ�a� 2&F���t� ��;��'#_Wz������'�甡�����~�#��ڞ��ݽ�[��1:�prD{q���,��{cn� ��1�{_w�S�g���Y��x�}��F��B�y�>���Â��3QLD>*R�:���,C2:�Z�`��-1��������bF?�� �zo�kLIH�"��7�c,��.O���I��8�R�㦮մO�m��uz�R�4?��=���������k��m+���r�H�x{|� ��#�Ɠ=l��%�4v&�ٕ)Ow��E��нPn�h@X���.({�Į�*v�t���^�Sl�С#x�&/ز��:�f��O6H)��|o�Ք�J֛�H��:U�Ny$�A�G?a� 1� �Ъ(�#(�q�|��唞��;�o��q/uY]��Ey&�ۑOVu�'�Q3�*�E��S�P��,���Tt��nq�+�l�����D~|�����3�X�*� ��S� �l��l0I�y�AP�e�f�^b�7���sXq趽������s'Ş�=/̭�|FD,���� ߢYlt)�y��)Ɉ�]u�J�ߕ�]Ȍ%f�~���0�#6�}*Os�wTrH�����|v�����{n7����3z�B�u�HG��N��:�{~�{�$��Ui���i�Kܼޠ�a���"���� ���p�ў�ry�`7�s�.�W�Q�bQ�Y�L���d�G�x�G�K�L䪠2��h����X& �N.]�ъؼ��.2e�KR�c��TRT�6:H��y��b T�Q��v�1v�L���{fw����U�}�&y�F��$Q��tU���V�WX*3��#Bk3x�"��n�&�n�r�}ٶi=��vf�h"�ip��*��~��ˆ=�'��ób���Jҩ�������V�Q��L�cL7����W��&�p[2�8� U�b�21\m��8Ghn2~k��*�vk��C������t���[��M6�3tV;��/փI6䄧�8'�2�i�ʾ�fp?U��)IO����.�nᱢ8�Nw�i����v�=�N�0��<湦:˲Ӊ�O�;�c�QS��7���zG�+�rU� |��������ݴ{�(�"�)�B�~�9���:�Y��V���D�"�AT��L��oX��'L>�]��E.��:x�LJ7�Y�α^���=�e��t�e�K�_�R�4�1��|oҼ��Ƥ�u5�Qۤ�� �O�;߶>��㩹`��0E�ݎ��7����
| ver. 1.4 |
Github
|
.
| PHP 8.3.23 | Generation time: 0 |
proxy
|
phpinfo
|
Settings