var tcl_tmLanguage = {fileTypes:["tcl"],foldingStartMarker:"\\{\\s*$",foldingStopMarker:"^\\s*\\}",keyEquivalent:"^~T",name:"tcl",patterns:[{begin:"(?<=^|;)\\s*((#))",beginCaptures:{"1":{name:"comment.line.number-sign.tcl"},"2":{name:"punctuation.definition.comment.tcl"}},contentName:"comment.line.number-sign.tcl",end:"\\n",patterns:[{match:"(\\\\\\\\|\\\\\\n)"}]},{captures:{"1":{name:"keyword.control.tcl"}},match:"(?<=^|[\\[{;])\\s*(if|while|for|catch|default|return|break|continue|switch|exit|foreach|try|throw)\\b"},{captures:{"1":{name:"keyword.control.tcl"}},match:"(?<=^|})\\s*(then|elseif|else)\\b"},{captures:{"1":{name:"keyword.other.tcl"},"2":{name:"entity.name.function.tcl"}},match:"(?<=^|{)\\s*(proc)\\s+([^\\s]+)"},{captures:{"1":{name:"keyword.other.tcl"}},match:"(?<=^|[\\[{;])\\s*(after|append|array|auto_execok|auto_import|auto_load|auto_mkindex|auto_mkindex_old|auto_qualify|auto_reset|bgerror|binary|cd|clock|close|concat|dde|encoding|eof|error|eval|exec|expr|fblocked|fconfigure|fcopy|file|fileevent|filename|flush|format|gets|glob|global|history|http|incr|info|interp|join|lappend|library|lindex|linsert|list|llength|load|lrange|lreplace|lsearch|lset|lsort|memory|msgcat|namespace|open|package|parray|pid|pkg::create|pkg_mkIndex|proc|puts|pwd|re_syntax|read|registry|rename|resource|scan|seek|set|socket|SafeBase|source|split|string|subst|Tcl|tcl_endOfWord|tcl_findLibrary|tcl_startOfNextWord|tcl_startOfPreviousWord|tcl_wordBreakAfter|tcl_wordBreakBefore|tcltest|tclvars|tell|time|trace|unknown|unset|update|uplevel|upvar|variable|vwait)\\b"},{begin:"(?<=^|[\\[{;])\\s*(regexp|regsub)\\b\\s*",beginCaptures:{"1":{name:"keyword.other.tcl"}},comment:"special-case regexp/regsub keyword in order to handle the expression",end:"[\\n;\\]]",patterns:[{match:"\\\\(?:.|\\n)",name:"constant.character.escape.tcl"},{comment:"switch for regexp",match:"-\\w+\\s*"},{applyEndPatternLast:1,begin:"--\\s*",comment:"end of switches",end:"",patterns:[{include:"#regexp"}]},{include:"#regexp"}]},{include:"#escape"},{include:"#variable"},{include:"#operator"},{include:"#numeric"},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.tcl"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.tcl"}},name:"string.quoted.double.tcl",patterns:[{include:"#escape"},{include:"#variable"},{include:"#embedded"}]}],repository:{"bare-string":{begin:"(?:^|(?<=\\s))\"",comment:"matches a single quote-enclosed word without scoping",end:"\"([^\\s\\]]*)",endCaptures:{"1":{name:"invalid.illegal.tcl"}},patterns:[{include:"#escape"},{include:"#variable"}]},braces:{begin:"(?:^|(?<=\\s))\\{",comment:"matches a single brace-enclosed word",end:"\\}([^\\s\\]]*)",endCaptures:{"1":{name:"invalid.illegal.tcl"}},patterns:[{match:"\\\\[{}\\n]",name:"constant.character.escape.tcl"},{include:"#inner-braces"}]},embedded:{begin:"\\[",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.tcl"}},end:"\\]",endCaptures:{"0":{name:"punctuation.section.embedded.end.tcl"}},name:"source.tcl.embedded",patterns:[{include:"source.tcl"}]},"escape":{match:"\\\\(\\d{1,3}|x[a-fA-F0-9]+|u[a-fA-F0-9]{1,4}|.|\\n)",name:"constant.character.escape.tcl"},"inner-braces":{begin:"\\{",comment:"matches a nested brace in a brace-enclosed word",end:"\\}",patterns:[{match:"\\\\[{}\\n]",name:"constant.character.escape.tcl"},{include:"#inner-braces"}]},regexp:{begin:"(?=\\S)(?![\\n;\\]])",comment:"matches a single word, named as a regexp, then swallows the rest of the command",end:"(?=[\\n;\\]])",patterns:[{begin:"(?=[^ \\t\\n;])",end:"(?=[ \\t\\n;])",name:"string.regexp.tcl",patterns:[{include:"#braces"},{include:"#bare-string"},{include:"#escape"},{include:"#variable"}]},{begin:"[ \\t]",comment:"swallow the rest of the command",end:"(?=[\\n;\\]])",patterns:[{include:"#variable"},{include:"#embedded"},{include:"#escape"},{include:"#braces"},{include:"#string"}]}]},string:{applyEndPatternLast:1,begin:"(?:^|(?<=\\s))(?=\")",comment:"matches a single quote-enclosed word with scoping",end:"",name:"string.quoted.double.tcl",patterns:[{include:"#bare-string"}]},variable:{captures:{"1":{name:"punctuation.definition.variable.tcl"}},match:"(\\$)((?:[a-zA-Z0-9_]|::)+(\\([^\\)]+\\))?|\\{[^\\}]*\\})",name:"support.function.tcl"},numeric:{match:"(?<![a-zA-Z])([+-]?([0-9]*[.])?[0-9]+f?)(?![\\.a-zA-Z])",name:"constant.numeric.tcl"},operator:{match:"(?<= |\\d)(-|\\+|~|&{1,2}|\\|{1,2}|<{1,2}|>{1,2}|\\*{1,2}|!|%|\\/|<=|>=|={1,2}|!=|\\^)(?= |\\d)",name:"keyword.operator.tcl"}},scopeName:"source.tcl",uuid:"62E11136-D9E5-461C-BE98-54E3A2A9E5E3"};

export { tcl_tmLanguage as default };
