diff options
Diffstat (limited to 'node_modules/highlight.js/lib/languages/cos.js')
-rw-r--r-- | node_modules/highlight.js/lib/languages/cos.js | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/node_modules/highlight.js/lib/languages/cos.js b/node_modules/highlight.js/lib/languages/cos.js new file mode 100644 index 000000000..d56a70683 --- /dev/null +++ b/node_modules/highlight.js/lib/languages/cos.js @@ -0,0 +1,123 @@ +module.exports = function cos (hljs) { + + var STRINGS = { + className: 'string', + variants: [ + { + begin: '"', + end: '"', + contains: [{ // escaped + begin: "\"\"", + relevance: 0 + }] + } + ] + }; + + var NUMBERS = { + className: "number", + begin: "\\b(\\d+(\\.\\d*)?|\\.\\d+)", + relevance: 0 + }; + + var COS_KEYWORDS = + 'property parameter class classmethod clientmethod extends as break ' + + 'catch close continue do d|0 else elseif for goto halt hang h|0 if job ' + + 'j|0 kill k|0 lock l|0 merge new open quit q|0 read r|0 return set s|0 ' + + 'tcommit throw trollback try tstart use view while write w|0 xecute x|0 ' + + 'zkill znspace zn ztrap zwrite zw zzdump zzwrite print zbreak zinsert ' + + 'zload zprint zremove zsave zzprint mv mvcall mvcrt mvdim mvprint zquit ' + + 'zsync ascii'; + + // registered function - no need in them due to all functions are highlighted, + // but I'll just leave this here. + + //"$bit", "$bitcount", + //"$bitfind", "$bitlogic", "$case", "$char", "$classmethod", "$classname", + //"$compile", "$data", "$decimal", "$double", "$extract", "$factor", + //"$find", "$fnumber", "$get", "$increment", "$inumber", "$isobject", + //"$isvaliddouble", "$isvalidnum", "$justify", "$length", "$list", + //"$listbuild", "$listdata", "$listfind", "$listfromstring", "$listget", + //"$listlength", "$listnext", "$listsame", "$listtostring", "$listvalid", + //"$locate", "$match", "$method", "$name", "$nconvert", "$next", + //"$normalize", "$now", "$number", "$order", "$parameter", "$piece", + //"$prefetchoff", "$prefetchon", "$property", "$qlength", "$qsubscript", + //"$query", "$random", "$replace", "$reverse", "$sconvert", "$select", + //"$sortbegin", "$sortend", "$stack", "$text", "$translate", "$view", + //"$wascii", "$wchar", "$wextract", "$wfind", "$wiswide", "$wlength", + //"$wreverse", "$xecute", "$zabs", "$zarccos", "$zarcsin", "$zarctan", + //"$zcos", "$zcot", "$zcsc", "$zdate", "$zdateh", "$zdatetime", + //"$zdatetimeh", "$zexp", "$zhex", "$zln", "$zlog", "$zpower", "$zsec", + //"$zsin", "$zsqr", "$ztan", "$ztime", "$ztimeh", "$zboolean", + //"$zconvert", "$zcrc", "$zcyc", "$zdascii", "$zdchar", "$zf", + //"$ziswide", "$zlascii", "$zlchar", "$zname", "$zposition", "$zqascii", + //"$zqchar", "$zsearch", "$zseek", "$zstrip", "$zwascii", "$zwchar", + //"$zwidth", "$zwpack", "$zwbpack", "$zwunpack", "$zwbunpack", "$zzenkaku", + //"$change", "$mv", "$mvat", "$mvfmt", "$mvfmts", "$mviconv", + //"$mviconvs", "$mvinmat", "$mvlover", "$mvoconv", "$mvoconvs", "$mvraise", + //"$mvtrans", "$mvv", "$mvname", "$zbitand", "$zbitcount", "$zbitfind", + //"$zbitget", "$zbitlen", "$zbitnot", "$zbitor", "$zbitset", "$zbitstr", + //"$zbitxor", "$zincrement", "$znext", "$zorder", "$zprevious", "$zsort", + //"device", "$ecode", "$estack", "$etrap", "$halt", "$horolog", + //"$io", "$job", "$key", "$namespace", "$principal", "$quit", "$roles", + //"$storage", "$system", "$test", "$this", "$tlevel", "$username", + //"$x", "$y", "$za", "$zb", "$zchild", "$zeof", "$zeos", "$zerror", + //"$zhorolog", "$zio", "$zjob", "$zmode", "$znspace", "$zparent", "$zpi", + //"$zpos", "$zreference", "$zstorage", "$ztimestamp", "$ztimezone", + //"$ztrap", "$zversion" + + return { + case_insensitive: true, + aliases: ["cos", "cls"], + keywords: COS_KEYWORDS, + contains: [ + NUMBERS, + STRINGS, + hljs.C_LINE_COMMENT_MODE, + hljs.C_BLOCK_COMMENT_MODE, + { + className: "comment", + begin: /;/, end: "$", + relevance: 0 + }, + { // Functions and user-defined functions: write $ztime(60*60*3), $$myFunc(10), $$^Val(1) + className: "built_in", + begin: /(?:\$\$?|\.\.)\^?[a-zA-Z]+/ + }, + { // Macro command: quit $$$OK + className: "built_in", + begin: /\$\$\$[a-zA-Z]+/ + }, + { // Special (global) variables: write %request.Content; Built-in classes: %Library.Integer + className: "built_in", + begin: /%[a-z]+(?:\.[a-z]+)*/ + }, + { // Global variable: set ^globalName = 12 write ^globalName + className: "symbol", + begin: /\^%?[a-zA-Z][\w]*/ + }, + { // Some control constructions: do ##class(Package.ClassName).Method(), ##super() + className: "keyword", + begin: /##class|##super|#define|#dim/ + }, + + // sub-languages: are not fully supported by hljs by 11/15/2015 + // left for the future implementation. + { + begin: /&sql\(/, end: /\)/, + excludeBegin: true, excludeEnd: true, + subLanguage: "sql" + }, + { + begin: /&(js|jscript|javascript)</, end: />/, + excludeBegin: true, excludeEnd: true, + subLanguage: "javascript" + }, + { + // this brakes first and last tag, but this is the only way to embed a valid html + begin: /&html<\s*</, end: />\s*>/, + subLanguage: "xml" + } + ] + }; +};
\ No newline at end of file |