| Current Path : /home/digilove/www/41423/ |
| Current File : /home/digilove/www/41423/asterisk.tar |
asterisk.js 0000644 00000017714 15235154364 0006751 0 ustar 00 // CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE
/*
* =====================================================================================
*
* Filename: mode/asterisk/asterisk.js
*
* Description: CodeMirror mode for Asterisk dialplan
*
* Created: 05/17/2012 09:20:25 PM
* Revision: 08/05/2019 AstLinux Project: Support block-comments
*
* Author: Stas Kobzar (stas@modulis.ca),
* Company: Modulis.ca Inc.
*
* =====================================================================================
*/
(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.defineMode("asterisk", function() {
var atoms = ["exten", "same", "include","ignorepat","switch"],
dpcmd = ["#include","#exec"],
apps = [
"addqueuemember","adsiprog","aelsub","agentlogin","agentmonitoroutgoing","agi",
"alarmreceiver","amd","answer","authenticate","background","backgrounddetect",
"bridge","busy","callcompletioncancel","callcompletionrequest","celgenuserevent",
"changemonitor","chanisavail","channelredirect","chanspy","clearhash","confbridge",
"congestion","continuewhile","controlplayback","dahdiacceptr2call","dahdibarge",
"dahdiras","dahdiscan","dahdisendcallreroutingfacility","dahdisendkeypadfacility",
"datetime","dbdel","dbdeltree","deadagi","dial","dictate","directory","disa",
"dumpchan","eagi","echo","endwhile","exec","execif","execiftime","exitwhile","extenspy",
"externalivr","festival","flash","followme","forkcdr","getcpeid","gosub","gosubif",
"goto","gotoif","gotoiftime","hangup","iax2provision","ices","importvar","incomplete",
"ivrdemo","jabberjoin","jabberleave","jabbersend","jabbersendgroup","jabberstatus",
"jack","log","macro","macroexclusive","macroexit","macroif","mailboxexists","meetme",
"meetmeadmin","meetmechanneladmin","meetmecount","milliwatt","minivmaccmess","minivmdelete",
"minivmgreet","minivmmwi","minivmnotify","minivmrecord","mixmonitor","monitor","morsecode",
"mp3player","mset","musiconhold","nbscat","nocdr","noop","odbc","odbc","odbcfinish",
"originate","ospauth","ospfinish","osplookup","ospnext","page","park","parkandannounce",
"parkedcall","pausemonitor","pausequeuemember","pickup","pickupchan","playback","playtones",
"privacymanager","proceeding","progress","queue","queuelog","raiseexception","read","readexten",
"readfile","receivefax","receivefax","receivefax","record","removequeuemember",
"resetcdr","retrydial","return","ringing","sayalpha","saycountedadj","saycountednoun",
"saycountpl","saydigits","saynumber","sayphonetic","sayunixtime","senddtmf","sendfax",
"sendfax","sendfax","sendimage","sendtext","sendurl","set","setamaflags",
"setcallerpres","setmusiconhold","sipaddheader","sipdtmfmode","sipremoveheader","skel",
"slastation","slatrunk","sms","softhangup","speechactivategrammar","speechbackground",
"speechcreate","speechdeactivategrammar","speechdestroy","speechloadgrammar","speechprocessingsound",
"speechstart","speechunloadgrammar","stackpop","startmusiconhold","stopmixmonitor","stopmonitor",
"stopmusiconhold","stopplaytones","system","testclient","testserver","transfer","tryexec",
"trysystem","unpausemonitor","unpausequeuemember","userevent","verbose","vmauthenticate",
"vmsayname","voicemail","voicemailmain","wait","waitexten","waitfornoise","waitforring",
"waitforsilence","waitmusiconhold","waituntil","while","zapateller"
];
function basicToken(stream,state){
var cur = '';
var ch = stream.next();
// comment
if (state.blockComment) {
if (ch == "-" && stream.match("-;", true)) {
state.blockComment = false;
} else if (stream.skipTo("--;")) {
stream.next();
stream.next();
stream.next();
state.blockComment = false;
} else {
stream.skipToEnd();
}
return "comment";
}
if(ch == ";") {
if (stream.match("--", true)) {
if (!stream.match("-", false)) { // Except ;--- is not a block comment
state.blockComment = true;
return "comment";
}
}
stream.skipToEnd();
return "comment";
}
// context
if(ch == '[') {
stream.skipTo(']');
stream.eat(']');
return "header";
}
// string
if(ch == '"') {
stream.skipTo('"');
return "string";
}
if(ch == "'") {
stream.skipTo("'");
return "string-2";
}
// dialplan commands
if(ch == '#') {
stream.eatWhile(/\w/);
cur = stream.current();
if(dpcmd.indexOf(cur) !== -1) {
stream.skipToEnd();
return "strong";
}
}
// application args
if(ch == '$'){
var ch1 = stream.peek();
if(ch1 == '{'){
stream.skipTo('}');
stream.eat('}');
return "variable-3";
}
}
// extension
stream.eatWhile(/\w/);
cur = stream.current();
if(atoms.indexOf(cur) !== -1) {
state.extenStart = true;
switch(cur) {
case 'same': state.extenSame = true; break;
case 'include':
case 'switch':
case 'ignorepat':
state.extenInclude = true;break;
default:break;
}
return "atom";
}
}
return {
startState: function() {
return {
blockComment: false,
extenStart: false,
extenSame: false,
extenInclude: false,
extenExten: false,
extenPriority: false,
extenApplication: false
};
},
token: function(stream, state) {
var cur = '';
if(stream.eatSpace()) return null;
// extension started
if(state.extenStart){
stream.eatWhile(/[^\s]/);
cur = stream.current();
if(/^=>?$/.test(cur)){
state.extenExten = true;
state.extenStart = false;
return "strong";
} else {
state.extenStart = false;
stream.skipToEnd();
return "error";
}
} else if(state.extenExten) {
// set exten and priority
state.extenExten = false;
state.extenPriority = true;
stream.eatWhile(/[^,]/);
if(state.extenInclude) {
stream.skipToEnd();
state.extenPriority = false;
state.extenInclude = false;
}
if(state.extenSame) {
state.extenPriority = false;
state.extenSame = false;
state.extenApplication = true;
}
return "tag";
} else if(state.extenPriority) {
state.extenPriority = false;
state.extenApplication = true;
stream.next(); // get comma
if(state.extenSame) return null;
stream.eatWhile(/[^,]/);
return "number";
} else if(state.extenApplication) {
stream.eatWhile(/,/);
cur = stream.current();
if(cur === ',') return null;
stream.eatWhile(/\w/);
cur = stream.current().toLowerCase();
state.extenApplication = false;
if(apps.indexOf(cur) !== -1){
return "def strong";
}
} else{
return basicToken(stream,state);
}
return null;
},
blockCommentStart: ";--",
blockCommentEnd: "--;",
lineComment: ";"
};
});
CodeMirror.defineMIME("text/x-asterisk", "asterisk");
});
asterisk.min.js 0000644 00000011040 15235154364 0007515 0 ustar 00 !(function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})((function(a){"use strict";a.defineMode("asterisk",(function(){function a(a,d){var e="",f=a.next();if(d.blockComment)return"-"==f&&a.match("-;",!0)?d.blockComment=!1:a.skipTo("--;")?(a.next(),a.next(),a.next(),d.blockComment=!1):a.skipToEnd(),"comment";if(";"==f)return a.match("--",!0)&&!a.match("-",!1)?(d.blockComment=!0,"comment"):(a.skipToEnd(),"comment");if("["==f)return a.skipTo("]"),a.eat("]"),"header";if('"'==f)return a.skipTo('"'),"string";if("'"==f)return a.skipTo("'"),"string-2";if("#"==f&&(a.eatWhile(/\w/),e=a.current(),-1!==c.indexOf(e)))return a.skipToEnd(),"strong";if("$"==f){if("{"==a.peek())return a.skipTo("}"),a.eat("}"),"variable-3"}if(a.eatWhile(/\w/),e=a.current(),-1!==b.indexOf(e)){switch(d.extenStart=!0,e){case"same":d.extenSame=!0;break;case"include":case"switch":case"ignorepat":d.extenInclude=!0}return"atom"}}var b=["exten","same","include","ignorepat","switch"],c=["#include","#exec"],d=["addqueuemember","adsiprog","aelsub","agentlogin","agentmonitoroutgoing","agi","alarmreceiver","amd","answer","authenticate","background","backgrounddetect","bridge","busy","callcompletioncancel","callcompletionrequest","celgenuserevent","changemonitor","chanisavail","channelredirect","chanspy","clearhash","confbridge","congestion","continuewhile","controlplayback","dahdiacceptr2call","dahdibarge","dahdiras","dahdiscan","dahdisendcallreroutingfacility","dahdisendkeypadfacility","datetime","dbdel","dbdeltree","deadagi","dial","dictate","directory","disa","dumpchan","eagi","echo","endwhile","exec","execif","execiftime","exitwhile","extenspy","externalivr","festival","flash","followme","forkcdr","getcpeid","gosub","gosubif","goto","gotoif","gotoiftime","hangup","iax2provision","ices","importvar","incomplete","ivrdemo","jabberjoin","jabberleave","jabbersend","jabbersendgroup","jabberstatus","jack","log","macro","macroexclusive","macroexit","macroif","mailboxexists","meetme","meetmeadmin","meetmechanneladmin","meetmecount","milliwatt","minivmaccmess","minivmdelete","minivmgreet","minivmmwi","minivmnotify","minivmrecord","mixmonitor","monitor","morsecode","mp3player","mset","musiconhold","nbscat","nocdr","noop","odbc","odbc","odbcfinish","originate","ospauth","ospfinish","osplookup","ospnext","page","park","parkandannounce","parkedcall","pausemonitor","pausequeuemember","pickup","pickupchan","playback","playtones","privacymanager","proceeding","progress","queue","queuelog","raiseexception","read","readexten","readfile","receivefax","receivefax","receivefax","record","removequeuemember","resetcdr","retrydial","return","ringing","sayalpha","saycountedadj","saycountednoun","saycountpl","saydigits","saynumber","sayphonetic","sayunixtime","senddtmf","sendfax","sendfax","sendfax","sendimage","sendtext","sendurl","set","setamaflags","setcallerpres","setmusiconhold","sipaddheader","sipdtmfmode","sipremoveheader","skel","slastation","slatrunk","sms","softhangup","speechactivategrammar","speechbackground","speechcreate","speechdeactivategrammar","speechdestroy","speechloadgrammar","speechprocessingsound","speechstart","speechunloadgrammar","stackpop","startmusiconhold","stopmixmonitor","stopmonitor","stopmusiconhold","stopplaytones","system","testclient","testserver","transfer","tryexec","trysystem","unpausemonitor","unpausequeuemember","userevent","verbose","vmauthenticate","vmsayname","voicemail","voicemailmain","wait","waitexten","waitfornoise","waitforring","waitforsilence","waitmusiconhold","waituntil","while","zapateller"];return{startState:function(){return{blockComment:!1,extenStart:!1,extenSame:!1,extenInclude:!1,extenExten:!1,extenPriority:!1,extenApplication:!1}},token:function(b,c){var e="";return b.eatSpace()?null:c.extenStart?(b.eatWhile(/[^\s]/),e=b.current(),/^=>?$/.test(e)?(c.extenExten=!0,c.extenStart=!1,"strong"):(c.extenStart=!1,b.skipToEnd(),"error")):c.extenExten?(c.extenExten=!1,c.extenPriority=!0,b.eatWhile(/[^,]/),c.extenInclude&&(b.skipToEnd(),c.extenPriority=!1,c.extenInclude=!1),c.extenSame&&(c.extenPriority=!1,c.extenSame=!1,c.extenApplication=!0),"tag"):c.extenPriority?(c.extenPriority=!1,c.extenApplication=!0,b.next(),c.extenSame?null:(b.eatWhile(/[^,]/),"number")):c.extenApplication?(b.eatWhile(/,/),","===(e=b.current())?null:(b.eatWhile(/\w/),e=b.current().toLowerCase(),c.extenApplication=!1,-1!==d.indexOf(e)?"def strong":null)):a(b,c)},blockCommentStart:";--",blockCommentEnd:"--;",lineComment:";"}})),a.defineMIME("text/x-asterisk","asterisk")}));