basant307/AI_Governance_Project
048
1/*2Language: Tcl3Description: Tcl is a very simple programming language.4Author: Radek Liska <radekliska@gmail.com>5Website: https://www.tcl.tk/about/language.html6Category: scripting7*/8 9function tcl(hljs) {10 const regex = hljs.regex;11 const TCL_IDENT = /[a-zA-Z_][a-zA-Z0-9_]*/;12 13 const NUMBER = {14 className: 'number',15 variants: [16 hljs.BINARY_NUMBER_MODE,17 hljs.C_NUMBER_MODE18 ]19 };20 21 const KEYWORDS = [22 "after",23 "append",24 "apply",25 "array",26 "auto_execok",27 "auto_import",28 "auto_load",29 "auto_mkindex",30 "auto_mkindex_old",31 "auto_qualify",32 "auto_reset",33 "bgerror",34 "binary",35 "break",36 "catch",37 "cd",38 "chan",39 "clock",40 "close",41 "concat",42 "continue",43 "dde",44 "dict",45 "encoding",46 "eof",47 "error",48 "eval",49 "exec",50 "exit",51 "expr",52 "fblocked",53 "fconfigure",54 "fcopy",55 "file",56 "fileevent",57 "filename",58 "flush",59 "for",60 "foreach",61 "format",62 "gets",63 "glob",64 "global",65 "history",66 "http",67 "if",68 "incr",69 "info",70 "interp",71 "join",72 "lappend|10",73 "lassign|10",74 "lindex|10",75 "linsert|10",76 "list",77 "llength|10",78 "load",79 "lrange|10",80 "lrepeat|10",81 "lreplace|10",82 "lreverse|10",83 "lsearch|10",84 "lset|10",85 "lsort|10",86 "mathfunc",87 "mathop",88 "memory",89 "msgcat",90 "namespace",91 "open",92 "package",93 "parray",94 "pid",95 "pkg::create",96 "pkg_mkIndex",97 "platform",98 "platform::shell",99 "proc",100 "puts",101 "pwd",102 "read",103 "refchan",104 "regexp",105 "registry",106 "regsub|10",107 "rename",108 "return",109 "safe",110 "scan",111 "seek",112 "set",113 "socket",114 "source",115 "split",116 "string",117 "subst",118 "switch",119 "tcl_endOfWord",120 "tcl_findLibrary",121 "tcl_startOfNextWord",122 "tcl_startOfPreviousWord",123 "tcl_wordBreakAfter",124 "tcl_wordBreakBefore",125 "tcltest",126 "tclvars",127 "tell",128 "time",129 "tm",130 "trace",131 "unknown",132 "unload",133 "unset",134 "update",135 "uplevel",136 "upvar",137 "variable",138 "vwait",139 "while"140 ];141 142 return {143 name: 'Tcl',144 aliases: [ 'tk' ],145 keywords: KEYWORDS,146 contains: [147 hljs.COMMENT(';[ \\t]*#', '$'),148 hljs.COMMENT('^[ \\t]*#', '$'),149 {150 beginKeywords: 'proc',151 end: '[\\{]',152 excludeEnd: true,153 contains: [154 {155 className: 'title',156 begin: '[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*',157 end: '[ \\t\\n\\r]',158 endsWithParent: true,159 excludeEnd: true160 }161 ]162 },163 {164 className: "variable",165 variants: [166 { begin: regex.concat(167 /\$/,168 regex.optional(/::/),169 TCL_IDENT,170 '(::',171 TCL_IDENT,172 ')*'173 ) },174 {175 begin: '\\$\\{(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*',176 end: '\\}',177 contains: [ NUMBER ]178 }179 ]180 },181 {182 className: 'string',183 contains: [ hljs.BACKSLASH_ESCAPE ],184 variants: [ hljs.inherit(hljs.QUOTE_STRING_MODE, { illegal: null }) ]185 },186 NUMBER187 ]188 };189}190 191export { tcl as default };192 