tm-grammars
Version:
Collecton of TextMate grammars in JSON
1,465 lines • 95.3 kB
JSON
{
"displayName": "Stata",
"fileTypes": [
"do",
"ado",
"mata"
],
"foldingStartMarker": "\\{\\s*$",
"foldingStopMarker": "^\\s*}",
"name": "stata",
"patterns": [
{
"include": "#ascii-regex-functions"
},
{
"include": "#unicode-regex-functions"
},
{
"include": "#constants"
},
{
"include": "#functions"
},
{
"include": "#comments"
},
{
"include": "#subscripts"
},
{
"include": "#operators"
},
{
"include": "#macro-local"
},
{
"include": "#macro-global"
},
{
"include": "#string-compound"
},
{
"include": "#string-regular"
},
{
"include": "#builtin_variables"
},
{
"include": "#macro-commands"
},
{
"match": "\\b(if|else if|else)\\b",
"name": "keyword.control.conditional.stata"
},
{
"captures": {
"1": {
"name": "storage.type.scalar.stata"
}
},
"match": "^\\s*(sca(l(?:ar|a|))?(\\s+de(f(?:ine|in|i|))?)?)\\s+(?!(drop|dir?|l(i(?:st|s|))?)\\s+)"
},
{
"begin": "\\b(mer(g(?:e|))?)\\s+([1mn])(:)([1mn])",
"beginCaptures": {
"1": {
"name": "keyword.control.flow.stata"
},
"3": {
"patterns": [
{
"include": "#constants"
},
{
"match": "[mn]",
"name": ""
}
]
},
"4": {
"name": "punctuation.separator.key-value"
},
"5": {
"patterns": [
{
"include": "#constants"
},
{
"match": "[mn]",
"name": ""
}
]
}
},
"end": "using",
"patterns": [
{
"include": "#builtin_variables"
},
{
"include": "#macro-local"
},
{
"include": "#macro-global"
},
{
"include": "#comments"
}
]
},
{
"captures": {
"1": {
"name": "keyword.control.flow.stata"
},
"2": {
"patterns": [
{
"include": "#macro-local-identifiers"
},
{
"include": "#macro-local"
},
{
"include": "#macro-global"
}
]
},
"3": {
"name": "keyword.control.flow.stata"
}
},
"match": "\\b(foreach)\\s+((?!in|of).+)\\s+(in|of var(l(?:ist|is|i|))?|of new(l(?:ist|is|i|))?|of num(l(?:ist|is|i|))?)\\b"
},
{
"begin": "\\b(foreach)\\s+((?!in|of).+)\\s+(of (?:loc(a(?:l|))?|glo(b(?:al|a|))?))\\b\\s*",
"beginCaptures": {
"1": {
"name": "keyword.control.flow.stata"
},
"2": {
"patterns": [
{
"include": "#macro-local-identifiers"
},
{
"include": "#macro-local"
},
{
"include": "#macro-global"
}
]
},
"3": {
"name": "keyword.control.flow.stata"
}
},
"end": "(?=\\s*\\{)",
"patterns": [
{
"include": "#macro-local-identifiers"
},
{
"include": "#macro-local"
},
{
"include": "#macro-global"
}
]
},
{
"begin": "\\b(forv(?:alues|alue|alu|al|a|))\\s*",
"beginCaptures": {
"1": {
"name": "keyword.control.flow.stata"
}
},
"end": "\\s*(=)\\s*([^{]+)\\s*|(?=\\n)",
"endCaptures": {
"1": {
"name": "keyword.operator.assignment.stata"
},
"2": {
"patterns": [
{
"include": "#constants"
},
{
"include": "#operators"
},
{
"include": "#macro-local"
},
{
"include": "#macro-global"
}
]
}
},
"patterns": [
{
"include": "#macro-local-identifiers"
},
{
"include": "#macro-local"
},
{
"include": "#macro-global"
}
]
},
{
"match": "\\b(while|continue)\\b",
"name": "keyword.control.flow.stata"
},
{
"captures": {
"1": {
"name": "keyword.other.stata"
}
},
"match": "\\b(as(?:|s|se|ser|sert))\\b"
},
{
"match": "\\b(by(s(?:ort|or|o|))?|statsby|rolling|bootstrap|jackknife|permute|simulate|svy|mi est(i(?:mate|mat|ma|m|))?|nestreg|stepwise|xi|fp|mfp|vers(i(?:on|o|))?)\\b",
"name": "storage.type.function.stata"
},
{
"match": "\\b(qui(e(?:tly|tl|t|))?|n(o(?:isily|isil|isi|is|i|))?|cap(t(?:ure|ur|u|))?)\\b:?",
"name": "keyword.control.flow.stata"
},
{
"captures": {
"1": {
"name": "storage.type.function.stata"
},
"3": {
"name": "storage.type.function.stata"
},
"7": {
"name": "entity.name.function.stata"
}
},
"match": "\\s*(pr(o(?:gram|gra|gr|g|))?)\\s+((di(r)?|drop|l(i(?:st|s|))?)\\s+)([\\w&&[^0-9]]\\w{0,31})"
},
{
"begin": "^\\s*(pr(o(?:gram|gra|gr|g|))?)\\s+(de(f(?:ine|in|i|))?\\s+)?",
"beginCaptures": {
"1": {
"name": "storage.type.function.stata"
},
"3": {
"name": "storage.type.function.stata"
}
},
"end": "(?=[\\n,/])",
"patterns": [
{
"include": "#macro-local"
},
{
"include": "#macro-global"
},
{
"match": "[\\w&&[^0-9]]\\w{0,31}",
"name": "entity.name.function.stata"
},
{
"match": "[^\\n ,/-9A-z]+",
"name": "invalid.illegal.name.stata"
}
]
},
{
"captures": {
"1": "keyword.functions.data.stata.test"
},
"match": "\\b(form(a(?:t|))?)\\s*([\\w&&[^0-9]]\\w{0,31})*\\s*(%)(-)?(0)?([0-9]+)(.)([0-9]+)([efg])(c)?"
},
{
"include": "#braces-with-error"
},
{
"begin": "(?=syntax)",
"end": "\\n",
"patterns": [
{
"begin": "syntax",
"beginCaptures": {
"0": {
"name": "keyword.functions.program.stata"
}
},
"end": "(?=[\\n,])",
"patterns": [
{
"begin": "///",
"end": "\\n",
"name": "comment.block.stata"
},
{
"match": "\\[",
"name": "punctuation.definition.parameters.begin.stata"
},
{
"match": "]",
"name": "punctuation.definition.parameters.end.stata"
},
{
"match": "\\b(varlist|varname|newvarlist|newvarname|namelist|name|anything)\\b",
"name": "entity.name.type.class.stata"
},
{
"captures": {
"2": {
"name": "entity.name.type.class.stata"
},
"3": {
"name": "keyword.operator.arithmetic.stata"
}
},
"match": "\\b((if|in|using|fweight|aweight|pweight|iweight))\\b(/)?"
},
{
"captures": {
"1": {
"name": "keyword.operator.arithmetic.stata"
},
"2": {
"name": "entity.name.type.class.stata"
}
},
"match": "(/)?(exp)"
},
{
"include": "#constants"
},
{
"include": "#operators"
},
{
"include": "#string-compound"
},
{
"include": "#string-regular"
},
{
"include": "#macro-local"
},
{
"include": "#macro-global"
},
{
"include": "#builtin_variables"
}
]
},
{
"begin": ",",
"beginCaptures": {
"0": {
"name": "punctuation.definition.variable.begin.stata"
}
},
"end": "(?=\\n)",
"patterns": [
{
"begin": "///",
"end": "\\n",
"name": "comment.block.stata"
},
{
"begin": "([^]\\[\\s]+)(\\()",
"beginCaptures": {
"1": {
"patterns": [
{
"include": "#macro-local-identifiers"
},
{
"include": "#macro-local"
},
{
"include": "#macro-global"
}
]
},
"2": {
"name": "keyword.operator.parentheses.stata"
}
},
"end": "\\)",
"endCaptures": {
"0": {
"name": "keyword.operator.parentheses.stata"
}
},
"patterns": [
{
"captures": {
"0": {
"name": "support.type.stata"
}
},
"match": "\\b(integer|intege|integ|inte|int|real|string|strin|stri|str)\\b"
},
{
"include": "#constants"
},
{
"include": "#operators"
},
{
"include": "#string-compound"
},
{
"include": "#string-regular"
},
{
"include": "#macro-local"
},
{
"include": "#macro-global"
},
{
"include": "#builtin_variables"
}
]
},
{
"include": "#macro-local-identifiers"
},
{
"include": "#constants"
},
{
"include": "#operators"
},
{
"include": "#string-compound"
},
{
"include": "#string-regular"
},
{
"include": "#macro-local"
},
{
"include": "#macro-global"
},
{
"include": "#builtin_variables"
}
]
}
]
},
{
"captures": {
"1": {
"name": "keyword.functions.data.stata"
}
},
"match": "\\b(sa(v(?:|e))|saveold|destring|tostring|u(s(?:e|))?|note(s)?|form(a(?:t|))?)\\b"
},
{
"match": "\\b(e(?:xit|nd))\\b",
"name": "keyword.functions.data.stata"
},
{
"captures": {
"1": {
"name": "keyword.functions.data.stata"
},
"2": {
"patterns": [
{
"include": "#macro-local"
}
]
},
"4": {
"name": "invalid.illegal.name.stata"
},
"5": {
"name": "keyword.operator.assignment.stata"
}
},
"match": "\\b(replace)\\s+([^=]+)\\s*((==)|(=))"
},
{
"captures": {
"1": {
"name": "keyword.functions.data.stata"
},
"3": {
"name": "support.type.stata"
},
"5": {
"patterns": [
{
"include": "#reserved-names"
},
{
"include": "#macro-local"
}
]
},
"7": {
"name": "invalid.illegal.name.stata"
},
"8": {
"name": "keyword.operator.assignment.stata"
}
},
"match": "\\b(g(e(?:nerate|nerat|nera|ner|ne|n|))?|egen)\\s+((byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)\\s+)?([^=\\s]+)\\s*((==)|(=))"
},
{
"captures": {
"1": {
"name": "keyword.functions.data.stata"
},
"3": {
"name": "support.type.stata"
}
},
"match": "\\b(set ty(p(?:e|))?)\\s+((byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)?\\s+)\\b"
},
{
"captures": {
"1": {
"name": "keyword.functions.data.stata"
},
"3": {
"name": "keyword.functions.data.stata"
},
"6": {
"name": "punctuation.definition.string.begin.stata"
},
"7": {
"patterns": [
{
"include": "#string-compound"
},
{
"include": "#macro-local-escaped"
},
{
"include": "#macro-global-escaped"
},
{
"include": "#macro-local"
},
{
"include": "#macro-global"
},
{
"match": "[^$`]{81,}",
"name": "invalid.illegal.name.stata"
},
{
"match": ".",
"name": "string.quoted.double.compound.stata"
}
]
},
"8": {
"name": "punctuation.definition.string.begin.stata"
}
},
"match": "\\b(la(b(?:el|e|))?)\\s+(var(i(?:able|abl|ab|a|))?)\\s+([\\w&&[^0-9]]\\w{0,31})\\s+(`\")(.+)(\"')"
},
{
"captures": {
"1": {
"name": "keyword.functions.data.stata"
},
"3": {
"name": "keyword.functions.data.stata"
},
"6": {
"name": "punctuation.definition.string.begin.stata"
},
"7": {
"patterns": [
{
"include": "#macro-local-escaped"
},
{
"include": "#macro-global-escaped"
},
{
"include": "#macro-local"
},
{
"include": "#macro-global"
},
{
"match": "[^$`]{81,}",
"name": "invalid.illegal.name.stata"
},
{
"match": ".",
"name": "string.quoted.double.stata"
}
]
},
"8": {
"name": "punctuation.definition.string.begin.stata"
}
},
"match": "\\b(la(b(?:el|e|))?)\\s+(var(i(?:able|abl|ab|a|))?)\\s+([\\w&&[^0-9]]\\w{0,31})\\s+(\")(.+)(\")"
},
{
"captures": {
"1": {
"name": "keyword.functions.data.stata"
},
"3": {
"name": "keyword.functions.data.stata"
}
},
"match": "\\b(la(b(?:el|e|))?)\\s+(da(t(?:a|))?|var(i(?:able|abl|ab|a|))?|de(f(?:|i|in|ine))?|val(u(?:es|e|))?|di(r)?|l(i(?:st|s|))?|copy|drop|save|lang(u(?:age|ag|a|))?)\\b"
},
{
"begin": "\\b(drop|keep)\\b(?!\\s+(i[fn])\\b)",
"beginCaptures": {
"1": {
"name": "keyword.functions.data.stata"
}
},
"end": "\\n",
"patterns": [
{
"match": "\\b(i[fn])\\b",
"name": "invalid.illegal.name.stata"
},
{
"include": "#comments"
},
{
"include": "#macro-local"
},
{
"include": "#macro-global"
},
{
"include": "#operators"
}
]
},
{
"captures": {
"1": {
"name": "keyword.functions.data.stata"
},
"2": {
"name": "keyword.functions.data.stata"
}
},
"match": "\\b(drop|keep)\\s+(i[fn])\\b"
},
{
"begin": "^\\s*mata:?\\s*$",
"end": "^\\s*end\\s*$\\n?",
"name": "meta.embedded.block.mata",
"patterns": [
{
"match": "(?<![^$\\s])(version|pragma|if|else|for|while|do|break|continue|goto|return)(?=\\s)",
"name": "keyword.control.mata"
},
{
"captures": {
"1": {
"name": "storage.type.eltype.mata"
},
"4": {
"name": "storage.type.orgtype.mata"
}
},
"match": "\\b(transmorphic|string|numeric|real|complex|(pointer(\\([^)]+\\))?))\\s+(matrix|vector|rowvector|colvector|scalar)\\b",
"name": "storage.type.mata"
},
{
"match": "\\b(transmorphic|string|numeric|real|complex|(pointer(\\([^)]+\\))?))\\s",
"name": "storage.type.eltype.mata"
},
{
"match": "\\b(matrix|vector|rowvector|colvector|scalar)\\b",
"name": "storage.type.orgtype.mata"
},
{
"match": "!|\\+\\+|--|[\\&'?\\\\]|::|,|\\.\\.|[=|]|==|>=|<=|[<>]|!=|[-#*+/^]",
"name": "keyword.operator.mata"
},
{
"include": "$self"
}
]
},
{
"begin": "\\b(odbc)\\b",
"beginCaptures": {
"0": {
"name": "keyword.control.flow.stata"
}
},
"end": "\\n",
"patterns": [
{
"begin": "///",
"end": "\\n",
"name": "comment.block.stata"
},
{
"begin": "(exec?)(\\(\")",
"beginCaptures": {
"1": {
"name": "support.function.builtin.stata"
},
"2": {
"name": "punctuation.definition.parameters.begin.stata"
}
},
"end": "\"\\)",
"endCaptures": {
"0": {
"name": "punctuation.definition.parameters.end.stata"
}
},
"patterns": [
{
"include": "source.sql"
}
]
},
{
"include": "$self"
}
]
},
{
"include": "#commands-other"
}
],
"repository": {
"ascii-regex-character-class": {
"patterns": [
{
"match": "\\\\[-$(-+.?\\[-^|]",
"name": "constant.character.escape.backslash.stata"
},
{
"match": "\\.",
"name": "constant.character.character-class.stata"
},
{
"match": "\\\\.",
"name": "illegal.invalid.character-class.stata"
},
{
"begin": "(\\[)(\\^)?",
"beginCaptures": {
"1": {
"name": "punctuation.definition.character-class.stata"
},
"2": {
"name": "keyword.operator.negation.stata"
}
},
"end": "(])",
"endCaptures": {
"1": {
"name": "punctuation.definition.character-class.stata"
}
},
"name": "constant.other.character-class.set.stata",
"patterns": [
{
"include": "#ascii-regex-character-class"
},
{
"captures": {
"2": {
"name": "constant.character.escape.backslash.stata"
},
"4": {
"name": "constant.character.escape.backslash.stata"
}
},
"match": "((\\\\.)|.)-((\\\\.)|[^]])",
"name": "constant.other.character-class.range.stata"
}
]
}
]
},
"ascii-regex-functions": {
"patterns": [
{
"captures": {
"1": {
"name": "support.function.builtin.stata"
},
"2": {
"name": "punctuation.definition.parameters.begin.stata"
},
"3": {
"patterns": [
{
"include": "#string-compound"
},
{
"include": "#string-regular"
},
{
"include": "#macro-local"
},
{
"include": "#macro-global"
},
{
"include": "#functions"
},
{
"match": "[\\w&&[^0-9]]\\w{0,31}",
"name": "variable.parameter.function.stata"
},
{
"include": "#comments-triple-slash"
}
]
},
"4": {
"name": "punctuation.definition.variable.begin.stata"
},
"5": {
"name": "punctuation.definition.string.begin.stata"
},
"6": {
"patterns": [
{
"include": "#ascii-regex-internals"
}
]
},
"7": {
"name": "punctuation.definition.string.end.stata"
},
"8": {
"name": "invalid.illegal.punctuation.stata"
},
"9": {
"name": "punctuation.definition.parameters.end.stata"
}
},
"match": "\\b(regexm)(\\()([^,]+)(,)\\s*(\")([^\"]+)(\"(')?)\\s*(\\))"
},
{
"captures": {
"1": {
"name": "support.function.builtin.stata"
},
"2": {
"name": "punctuation.definition.parameters.begin.stata"
},
"3": {
"patterns": [
{
"include": "#string-compound"
},
{
"include": "#string-regular"
},
{
"include": "#macro-local"
},
{
"include": "#macro-global"
},
{
"include": "#functions"
},
{
"match": "[\\w&&[^0-9]]\\w{0,31}",
"name": "variable.parameter.function.stata"
},
{
"include": "#comments-triple-slash"
}
]
},
"4": {
"name": "punctuation.definition.variable.begin.stata"
},
"5": {
"name": "punctuation.definition.string.begin.stata"
},
"6": {
"patterns": [
{
"include": "#ascii-regex-internals"
}
]
},
"7": {
"name": "punctuation.definition.string.end.stata"
},
"8": {
"name": "punctuation.definition.parameters.end.stata"
}
},
"match": "\\b(regexm)(\\()([^,]+)(,)\\s*(`\")([^\"]+)(\"')\\s*(\\))"
},
{
"captures": {
"1": {
"name": "support.function.builtin.stata"
},
"10": {
"name": "punctuation.definition.parameters.end.stata"
},
"2": {
"name": "punctuation.definition.parameters.begin.stata"
},
"3": {
"patterns": [
{
"include": "#string-compound"
},
{
"include": "#string-regular"
},
{
"include": "#macro-local"
},
{
"include": "#macro-global"
},
{
"include": "#functions"
},
{
"match": "[\\w&&[^0-9]]\\w{0,31}",
"name": "variable.parameter.function.stata"
},
{
"include": "#comments"
}
]
},
"4": {
"name": "punctuation.definition.variable.begin.stata"
},
"5": {
"name": "punctuation.definition.string.begin.stata"
},
"6": {
"patterns": [
{
"include": "#ascii-regex-internals"
}
]
},
"7": {
"name": "punctuation.definition.string.end.stata"
},
"8": {
"name": "invalid.illegal.punctuation.stata"
},
"9": {
"patterns": [
{
"match": ",",
"name": "punctuation.definition.variable.begin.stata"
},
{
"include": "#string-compound"
},
{
"include": "#string-regular"
},
{
"include": "#macro-local"
},
{
"include": "#macro-global"
},
{
"include": "#functions"
},
{
"match": "[\\w&&[^0-9]]\\w{0,31}",
"name": "variable.parameter.function.stata"
},
{
"include": "#comments-triple-slash"
}
]
}
},
"match": "\\b(regexr)(\\()([^,]+)(,)\\s*(\")([^\"]+)(\"(')?)\\s*([^)]*)(\\))"
},
{
"captures": {
"1": {
"name": "support.function.builtin.stata"
},
"2": {
"name": "punctuation.definition.parameters.begin.stata"
},
"3": {
"patterns": [
{
"include": "#string-compound"
},
{
"include": "#string-regular"
},
{
"include": "#macro-local"
},
{
"include": "#macro-global"
},
{
"include": "#functions"
},
{
"match": "[\\w&&[^0-9]]\\w{0,31}",
"name": "variable.parameter.function.stata"
},
{
"include": "#comments"
}
]
},
"4": {
"name": "punctuation.definition.variable.begin.stata"
},
"5": {
"name": "punctuation.definition.string.begin.stata"
},
"6": {
"patterns": [
{
"include": "#ascii-regex-internals"
}
]
},
"7": {
"name": "punctuation.definition.string.end.stata"
},
"8": {
"patterns": [
{
"match": ",",
"name": "punctuation.definition.variable.begin.stata"
},
{
"include": "#string-compound"
},
{
"include": "#string-regular"
},
{
"include": "#macro-local"
},
{
"include": "#macro-global"
},
{
"include": "#functions"
},
{
"match": "[\\w&&[^0-9]]\\w{0,31}",
"name": "variable.parameter.function.stata"
},
{
"include": "#comments-triple-slash"
}
]
},
"9": {
"name": "punctuation.definition.parameters.end.stata"
}
},
"match": "\\b(regexr)(\\()([^,]+)(,)\\s*(`\")([^\"]+)(\"')\\s*([^)]*)(\\))"
}
]
},
"ascii-regex-internals": {
"patterns": [
{
"match": "\\^",
"name": "keyword.control.anchor.stata"
},
{
"match": "\\$(?![A-Z_a-{])",
"name": "keyword.control.anchor.stata"
},
{
"match": "[*+?]",
"name": "keyword.control.quantifier.stata"
},
{
"match": "\\|",
"name": "keyword.control.or.stata"
},
{
"begin": "(\\()(?=[*+?])",
"beginCaptures": {
"1": {
"name": "keyword.operator.group.stata"
}
},
"contentName": "invalid.illegal.regexm.stata",
"end": "\\)",
"endCaptures": {
"0": {
"name": "keyword.operator.group.stata"
}
}
},
{
"begin": "(\\()",
"beginCaptures": {
"1": {
"name": "keyword.operator.group.stata"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "keyword.operator.group.stata"
}
},
"patterns": [
{
"include": "#ascii-regex-internals"
}
]
},
{
"include": "#ascii-regex-character-class"
},
{
"include": "#macro-local"
},
{
"include": "#macro-global"
},
{
"match": ".",
"name": "string.quoted.stata"
}
]
},
"braces-with-error": {
"patterns": [
{
"begin": "(\\{)\\s*([^\\n]*)(?=\\n)",
"beginCaptures": {
"1": {
"name": "keyword.control.block.begin.stata"
},
"2": {
"patterns": [
{
"include": "#comments"
},
{
"match": "[^\\n]+",
"name": "illegal.invalid.name.stata"
}
]
}
},
"end": "^\\s*(})\\s*$|^\\s*([^\"*}]+)\\s+(})\\s*([^\\n\"*/}]+)|^\\s*([^\"*}]+)\\s+(})|\\s*(})\\s*([^\\n\"*/}]+)|(})$",
"endCaptures": {
"1": {
"name": "keyword.control.block.end.stata"
},
"2": {
"name": "invalid.illegal.name.stata"
},
"3": {
"name": "keyword.control.block.end.stata"
},
"4": {
"name": "invalid.illegal.name.stata"
},
"5": {
"name": "invalid.illegal.name.stata"
},
"6": {
"name": "keyword.control.block.end.stata"
},
"7": {
"name": "keyword.control.block.end.stata"
},
"8": {
"name": "invalid.illegal.name.stata"
},
"9": {
"name": "keyword.control.block.end.stata"
}
},
"patterns": [
{
"include": "$self"
}
]
}
]
},
"braces-without-error": {
"patterns": [
{
"begin": "\\{",
"beginCaptures": {
"0": {
"name": "keyword.control.block.begin.stata"
}
},
"end": "}",
"endCaptures": {
"0": {
"name": "keyword.control.block.end.stata"
}
}
}
]
},
"builtin_types": {
"patterns": [
{
"match": "\\b(byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)\\b",
"name": "support.type.stata"
}
]
},
"builtin_variables": {
"patterns": [
{
"match": "\\b(_(?:b|coef|cons|[Nn]|rc|se))\\b",
"name": "variable.object.stata"
}
]
},
"commands-other": {
"patterns": [
{
"match": "\\b(reghdfe|ivreghdfe|ivreg2|outreg|gcollapse|gcontract|gegen|gisid|glevelsof|gquantiles)\\b",
"name": "keyword.control.flow.stata"
},
{
"match": "\\b(about|ac|acprplot|ado|adopath|adoupdate|alpha|ameans|an|ano|anov|anova|anova_terms|anovadef|aorder|ap|app|appe|appen|append|arch|arch_dr|arch_estat|arch_p|archlm|areg|areg_p|args|arima|arima_dr|arima_estat|arima_p|asmprobit|asmprobit_estat|asmprobit_lf|asmprobit_mfx__dlg|asmprobit_p|avplot|avplots|bcskew0|bgodfrey|binreg|bip0_lf|biplot|bipp_lf|bipr_lf|bipr_p|biprobit|bitest|bitesti|bitowt|blogit|bmemsize|boot|bootsamp|boxco_l|boxco_p|boxcox|boxcox_p|bprobit|br|break|brier|bro|brow|brows|browse|brr|brrstat|bs|bsampl_w|bsample|bsqreg|bstat|bstrap|ca|ca_estat|ca_p|cabiplot|camat|canon|canon_estat|canon_p|caprojection|cat|cc|cchart|cci|cd|censobs_table|centile|cf|char|chdir|checkdlgfiles|checkestimationsample|checkhlpfiles|checksum|chelp|ci|cii|cl|class|classutil|clear|cli|clis|clist|clog|clog_lf|clog_p|clogi|clogi_sw|clogit|clogit_lf|clogit_p|clogitp|clogl_sw|cloglog|clonevar|clslistarray|cluster|cluster_measures|cluster_stop|cluster_tree|cluster_tree_8|clustermat|cmdlog|cnr|cnre|cnreg|cnreg_p|cnreg_sw|cnsreg|codebook|collaps4|collapse|colormult_nb|colormult_nw|compare|compress|conf|confi|confir|confirm|conren|cons|const|constr|constra|constrai|constrain|constraint|contract|copy|copyright|copysource|cor|corc|corr|corr2data|corr_anti|corr_kmo|corr_smc|corre|correl|correla|correlat|correlate|corrgram|cou|coun|count|cprplot|crc|cret|cretu|cretur|creturn|cross|cs|cscript|cscript_log|csi|ct|ct_is|ctset|ctst_st|cttost|cumsp|cumul|cusum|cutil|d|datasig|datasign|datasigna|datasignat|datasignatu|datasignatur|datasignature|datetof|db|dbeta|de|dec|deco|decod|decode|deff|des|desc|descr|descri|describ|describe|dfbeta|dfgls|dfuller|di|di_g|dir|dirstats|dis|discard|disp|disp_res|disp_s|displ|displa|display|do|doe|doed|doedi|doedit|dotplot|dprobit|drawnorm|ds|ds_util|dstdize|duplicates|durbina|dwstat|dydx|ed|edi|edit|eivreg|emdef|en|enc|enco|encod|encode|eq|erase|ereg|ereg_lf|ereg_p|ereg_sw|ereghet|ereghet_glf|ereghet_glf_sh|ereghet_gp|ereghet_ilf|ereghet_ilf_sh|ereghet_ip|eret|eretu|eretur|ereturn|err|erro|error|est|est_cfexist|est_cfname|est_clickable|est_expand|est_hold|est_table|est_unhold|est_unholdok|estat|estat_default|estat_summ|estat_vce_only|esti|estimates|etodow|etof|etomdy|expand|expandcl|fac|fact|facto|factor|factor_estat|factor_p|factor_pca_rotated|factor_rotate|factormat|fcast|fcast_compute|fcast_graph|fdades|fdadesc|fdadescr|fdadescri|fdadescrib|fdadescribe|fdasav|fdasave|fdause|fh_st|file|filefilter|fillin|find_hlp_file|findfile|findit|fit|fl|fli|flis|flist|fpredict|frac_adj|frac_chk|frac_cox|frac_ddp|frac_dis|frac_dv|frac_in|frac_mun|frac_pp|frac_pq|frac_pv|frac_wgt|frac_xo|fracgen|fracplot|fracpoly|fracpred|fron_ex|fron_hn|fron_p|fron_tn|fron_tn2|frontier|ftodate|ftoe|ftomdy|ftowdate|gamhet_glf|gamhet_gp|gamhet_ilf|gamhet_ip|gamma|gamma_d2|gamma_p|gamma_sw|gammahet|gdi_hexagon|gdi_spokes|genrank|genstd|genvmean|gettoken|gladder|glim_l01|glim_l02|glim_l03|glim_l04|glim_l05|glim_l06|glim_l07|glim_l08|glim_l09|glim_l10|glim_l11|glim_l12|glim_lf|glim_mu|glim_nw1|glim_nw2|glim_nw3|glim_p|glim_v1|glim_v2|glim_v3|glim_v4|glim_v5|glim_v6|glim_v7|glm|glm_p|glm_sw|glmpred|glogit|glogit_p|gmeans|gnbre_lf|gnbreg|gnbreg_p|gomp_lf|gompe_sw|gomper_p|gompertz|gompertzhet|gomphet_glf|gomphet_glf_sh|gomphet_gp|gomphet_ilf|gomphet_ilf_sh|gomphet_ip|gphdot|gphpen|gphprint|gprefs|gprobi_p|gprobit|gr|gr7|gr_copy|gr_current|gr_db|gr_describe|gr_dir|gr_draw|gr_draw_replay|gr_drop|gr_edit|gr_editviewopts|gr_example|gr_example2|gr_export|gr_print|gr_qscheme|gr_query|gr_read|gr_rename|gr_replay|gr_save|gr_set|gr_setscheme|gr_table|gr_undo|gr_use|graph|grebar|greigen|grmeanby|gs_fileinfo|gs_filetype|gs_graphinfo|gs_stat|gsort|gwood|h|hareg|hausman|haver|he|heck_d2|heckma_p|heckman|heckp_lf|heckpr_p|heckprob|hel|help|hereg|hetpr_lf|hetpr_p|hetprob|hettest|hexdump|hilite|hist|histogram|hlogit|hlu|hmeans|hotel|hotelling|hprobit|hreg|hsearch|icd9|icd9_ff|icd9p|iis|impute|imtest|inbase|include|inf|infi|infil|infile|infix|inp|inpu|input|ins|insheet|insp|inspe|inspec|inspect|integ|inten|intreg|intreg_p|intrg2_ll|intrg_ll|intrg_ll2|ipolate|iqreg|ir|irf|irf_create|irfm|iri|is_svy|is_svysum|isid|istdize|ivprobit|ivprobit_p|ivreg|ivreg_footnote|ivtob_lf|ivtobit|ivtobit_p|jacknife|jknife|jkstat|joinby|kalarma1|kap|kapmeier|kappa|kapwgt|kdensity|ksm|ksmirnov|ktau|kwallis|labelbook|ladder|levelsof|leverage|lfit|lfit_p|li|lincom|line|linktest|lis|list|lloghet_glf|lloghet_glf_sh|lloghet_gp|lloghet_ilf|lloghet_ilf_sh|lloghet_ip|llogi_sw|llogis_p|llogist|llogistic|llogistichet|lnorm_lf|lnorm_sw|lnorma_p|lnormal|lnormalhet|lnormhet_glf|lnormhet_glf_sh|lnormhet_gp|lnormhet_ilf|lnormhet_ilf_sh|lnormhet_ip|lnskew0|loadingplot|(?<!\\.)log|logi|logis_lf|logistic|logistic_p|logit|logit_estat|logit_p|loglogs|logrank|loneway|lookfor|lookup|lowess|lpredict|lrecomp|lroc|lrtest|ls|lsens|lsens_x|lstat|ltable|ltriang|lv|lvr2plot|m|ma|mac|macr|macro|makecns|man|manova|manovatest|mantel|mark|markin|markout|marksample|mat|mat_capp|mat_order|mat_put_rr|mat_rapp|mata|mata_clear|mata_describe|mata_drop|mata_matdescribe|mata_matsave|mata_matuse|mata_memory|mata_mlib|mata_mosave|mata_rename|mata_which|matalabel|matcproc|matlist|matname|matr|matri|matrix|matrix_input__dlg|matstrik|mcc|mcci|md0_|md1_|md1debug_|md2_|md2debug_|mds|mds_estat|mds_p|mdsconfig|mdslong|mdsmat|mdsshepard|mdytoe|mdytof|me_derd|mean|means|median|memory|memsize|mfp|mfx|mhelp|mhodds|minbound|mixed_ll|mixed_ll_reparm|mkassert|mkdir|mkmat|mkspline|ml|ml_adjs|ml_bhhhs|ml_c_d|ml_check|ml_clear|ml_cnt|ml_debug|ml_defd|ml_e0|ml_e0_bfgs|ml_e0_cycle|ml_e0_dfp|ml_e0i|ml_e1|ml_e1_bfgs|ml_e1_bhhh|ml_e1_cycle|ml_e1_dfp|ml_e2|ml_e2_cycle|ml_ebfg0|ml_ebfr0|ml_ebfr1|ml_ebh0q|ml_ebhh0|ml_ebhr0|ml_ebr0i|ml_ecr0i|ml_edfp0|ml_edfr0|ml_edfr1|ml_edr0i|ml_eds|ml_eer0i|ml_egr0i|ml_elf|ml_elf_bfgs|ml_elf_bhhh|ml_elf_cycle|ml_elf_dfp|ml_elfi|ml_elfs|ml_enr0i|ml_enrr0|ml_erdu0|ml_erdu0_bfgs|ml_erdu0_bhhh|ml_erdu0_bhhhq|ml_erdu0_cycle|ml_erdu0_dfp|ml_erdu0_nrbfgs|ml_exde|ml_footnote|ml_geqnr|ml_grad0|ml_graph|ml_hbhhh|ml_hd0|ml_hold|ml_init|ml_inv|ml_log|ml_max|ml_mlout|ml_mlout_8|ml_model|ml_nb0|ml_opt|ml_p|ml_plot|ml_query|ml_rdgrd|ml_repor|ml_s_e|ml_score|ml_searc|ml_technique|ml_unhold|mleval|mlf_|mlmatbysum|mlmatsum|mlog|mlogi|mlogit|mlogit_footnote|mlogit_p|mlopts|mlsum|mlvecsum|mnl0_|mor|more|mov|move|mprobit|mprobit_lf|mprobit_p|mrdu0_|mrdu1_|mvdecode|mvencode|mvreg|mvreg_estat|nbreg|nbreg_al|nbreg_lf|nbreg_p|nbreg_sw|nestreg|net|newey|newey_p|news|nl|nlcom|nlcom_p|nlexp2|nlexp2a|nlexp3|nlgom3|nlgom4|nlinit|nllog3|nllog4|nlog_rd|nlogit|nlogit_p|nlogitgen|nlogittree|nlpred|nobreak|notes_dlg|nptrend|numlabel|numlist|old_ver|olo|olog|ologi|ologi_sw|ologit|ologit_p|ologitp|on|one|onew|onewa|oneway|op_colnm|op_comp|op_diff|op_inv|op_str|opr|opro|oprob|oprob_sw|oprobi|oprobi_p|oprobit|oprobitp|opts_exclusive|order|orthog|orthpoly|ou|out|outf|outfi|outfil|outfile|outs|outsh|outshe|outshee|outsheet|ovtest|pac|palette|parse_dissim|pause|pca|pca_display|pca_estat|pca_p|pca_rotate|pcamat|pchart|pchi|pcorr|pctile|pentium|pergram|personal|peto_st|pkcollapse|pkcross|pkequiv|pkexamine|pkshape|pksumm|plugin|pnorm|poisgof|poiss_lf|poiss_sw|poisso_p|poisson|poisson_estat|post|postclose|postfile|postutil|pperron|prais|prais_e|prais_e2|prais_p|predict|predictnl|preserve|print|prob|probi|probit|probit_estat|probit_p|proc_time|procoverlay|procrustes|procrustes_estat|procrustes_p|profiler|prop|proportion|prtest|prtesti|pwcorr|pwd|qs|qby|qbys|qchi|qladder|qnorm|qqplot|qreg|qreg_c|qreg_p|qreg_sw|qu|quadchk|quantile|que|quer|query|range|ranksum|ratio|rchart|rcof|recast|recode|reg|reg3|reg3_p|regdw|regr|regre|regre_p2|regres|regres_p|regress|regress_estat|regriv_p|remap|ren|rena|renam|rename|renpfix|repeat|reshape|restore|ret|retu|retur|return|rmdir|robvar|roccomp|rocf_lf|rocfit|rocgold|rocplot|roctab|rologit|rologit_p|rot|rota|rotat|rotate|rotatemat|rreg|rreg_p|ru|run|runtest|rvfplot|rvpplot|safesum|sample|sampsi|savedresults|sc|scatter|scm_mine|sco|scob_lf|scob_p|scobi_sw|scobit|scor|score|scoreplot|scoreplot_help|scree|screeplot|screeplot_help|sdtest|sdtesti|se|search|separate|seperate|serrbar|serset|set|set_defaults|sfrancia|sh|she|shel|shell|shewhart|signestimationsample|signrank|signtest|simul|sktest|sleep|slogit|slogit_d2|slogit_p|smooth|snapspan|so|sor|sort|spearman|spikeplot|spikeplt|spline_x|split|sqreg|sqreg_p|sret|sretu|sretur|sreturn|ssc|st|st_ct|st_hc|st_hcd|st_hcd_sh|st_is|st_issys|st_note|st_promo|st_set|st_show|st_smpl|st_subid|stack|stbase|stci|stcox|stcox_estat|stcox_fr|stcox_fr_ll|stcox_p|stcox_sw|stcoxkm|stcstat|stcurv|stcurve|stdes|stem|stepwise|stfill|stgen|stir|stjoin|stmc|stmh|stphplot|stphtest|stptime|strate|streg|streg_sw|streset|sts|stset|stsplit|stsum|sttocc|sttoct|stvary|su|suest|sum|summ|summa|summar|summari|summariz|summarize|sunflower|sureg|survcurv|survsum|svar|svar_p|svmat|svy_disp|svy_dreg|svy_est|svy_est_7|svy_estat|svy_get|svy_gnbreg_p|svy_head|svy_header|svy_heckman_p|svy_heckprob_p|svy_intreg_p|svy_ivreg_p|svy_logistic_p|svy_logit_p|svy_mlogit_p|svy_nbreg_p|svy_ologit_p|svy_oprobit_p|svy_poisson_p|svy_probit_p|svy_regress_p|svy_sub|svy_sub_7|svy_x|svy_x_7|svy_x_p|svydes|svygen|svygnbreg|svyheckman|svyheckprob|svyintreg|svyintrg|svyivreg|svylc|svylog_p|svylogit|svymarkout|svymean|svymlog|svymlogit|svynbreg|svyolog|svyologit|svyoprob|svyoprobit|svyopts|svypois|svypoisson|svyprobit|svyprobt|svyprop|svyratio|svyreg|svyreg_p|svyregress|svyset|svytab|svytest|svytotal|sw|swilk|symmetry|symmi|symplot|sysdescribe|sysdir|sysuse|szroeter|ta|tab|tab1|tab2|tab_or|tabd|tabdi|tabdis|tabdisp|tabi|table|tabodds|tabstat|tabu|tabul|tabula|tabulat|tabulate|te|tes|test|testnl|testparm|teststd|tetrachoric|time_it|timer|tis|tob|tobi|tobit|tobit_p|tobit_sw|token|tokeni|tokeniz|tokenize|total|translate|translator|transmap|treat_ll|treatr_p|treatreg|trim|trnb_cons|trnb_mean|trpoiss_d2|trunc_ll|truncr_p|truncreg|tsappend|tset|tsfill|tsline|tsline_ex|tsreport|tsrevar|tsrline|tsset|tssmooth|tsunab|ttest|ttesti|tut_chk|tut_wait|tutorial|tw|tware_st|two|twoway|twoway__fpfit_serset|twoway__function_gen|twoway__histogram_gen|twoway__ipoint_serset|twoway__ipoints_serset|twoway__kdensity_gen|twoway__lfit_serset|twoway__normgen_gen|twoway__pci_serset|twoway__qfit_serset|twoway__scatteri_serset|twoway__sunflower_gen|twoway_ksm_serset|ty|typ|type|typeof|unab|unabbrev|unabcmd|update|uselabel|var|var_mkcompanion|var_p|varbasic|varfcast|vargranger|varirf|varirf_add|varirf_cgraph|varirf_create|varirf_ctable|varirf_describe|varirf_dir|varirf_drop|varirf_erase|varirf_graph|varirf_ograph|varirf_rename|varirf_set|varirf_table|varlmar|varnorm|varsoc|varstable|varstable_w|varstable_w2|varwle|vec|vec_fevd|vec_mkphi|vec_p|vec_p_w|vecirf_create|veclmar|veclmar_w|vecnorm|vecnorm_w|vecrank|vecstable|verinst|vers|versi|versio|version|view|viewsource|vif|vwls|wdatetof|webdescribe|webseek|webuse|wh|whelp|whi|which|wilc_st|wilcoxon|win|wind|windo|window|winexec|wntestb|wntestq|xchart|xcorr|xi|xmlsav|xmlsave|xmluse|xpose|xsh|xshe|xshel|xshell|xt_iis|xt_tis|xtab_p|xtabond|xtbin_p|xtclog|xtcloglog|xtcloglog_d2|xtcloglog_pa_p|xtcloglog_re_p|xtcnt_p|xtcorr|xtdata|xtdes|xtfront_p|xtfrontier|xtgee|xtgee_elink|xtgee_estat|xtgee_makeivar|xtgee_p|xtgee_plink|xtgls|xtgls_p|xthaus|xthausman|xtht_p|xthtaylor|xtile|xtint_p|xtintreg|xtintreg_d2|xtintreg_p|xtivreg|xtline|xtline_ex|xtlogit|xtlogit_d2|xtlogit_fe_p|xtlogit_pa_p|xtlogit_re_p|xtmixed|xtmixed_estat|xtmixed_p|xtnb_fe|xtnb_lf|xtnbreg|xtnbreg_pa_p|xtnbreg_refe_p|xtpcse|xtpcse_p|xtpois|xtpoisson|xtpoisson_d2|xtpoisson_pa_p|xtpoisson_refe_p|xtpred|xtprobit|xtprobit_d2|xtprobit_re_p|xtps_fe|xtps_lf|xtps_ren|xtps_ren_8|xtrar_p|xtrc|xtrc_p|xtrchh|xtrefe_p|yx|yxview__barlike_draw|yxview_area_draw|yxview_bar_draw|yxview_dot_draw|yxview_dropline_draw|yxview_function_draw|yxview_iarrow_draw|yxview_ilabels_draw|yxview_normal_draw|yxview_pcarrow_draw|yxview_pcbarrow_draw|yxview_pccapsym_draw|yxview_pcscatter_draw|yxview_pcspike_draw|yxview_rarea_draw|yxview_rbar_draw|yxview_rbarm_draw|yxview_rcap_draw|yxview_rcapsym_draw|yxview_rconnected_draw|yxview_rline_draw|yxview_rscatter_draw|yxview_rspike_draw|yxview_spike_draw|yxview_sunflower_draw|zap_s|zinb|zinb_llf|zinb_plf|zip|zip_llf|zip_p|zip_plf|zt_ct_5|zt_hc_5|zt_hcd_5|zt_is_5|zt_iss_5|zt_sho_5|zt_smp_5|ztnb|ztnb_p|ztp|ztp_p|prtab|prchange|eststo|estout|esttab|estadd|estpost|ivregress|xtreg|xtreg_be|xtreg_fe|xtreg_ml|xtreg_pa_p|xtreg_re|xtregar|xtrere_p|xtset|xtsf_ll|xtsf_llti|xtsum|xttab|xttest0|xttobit|xttobit_p|xttrans)\\b",
"name": "keyword.control.flow.stata"
}
]
},
"comments": {
"patterns": [
{
"include": "#comments-double-slash"
},
{
"include": "#comments-star"
},
{
"include": "#comments-block"
},
{
"include": "#comments-triple-slash"
}
]
},
"comments-block": {
"patterns": [
{
"begin": "/\\*",
"beginCaptures": {
"0": {
"name": "punctuation.definition.comment.begin.stata"
}
},
"end": "(\\*/\\s+\\*[^\\n]*)|(\\*/(?!\\*))",
"endCaptures": {
"0": {
"name": "punctuation.definition.comment.end.stata"
}
},
"name": "comment.block.stata",
"patterns": [
{
"match": "\\*/\\*"
},
{
"include": "#docblockr-comment"
},
{
"include": "#comments-block"
},
{
"include": "#docstring"
}
]
}
]
},
"comments-double-slash": {
"patterns": [
{
"begin": "((?:^|(?<=\\s))//)(?!/)",
"captures": {
"0": {
"name": "punctuation.definition.comment.stata"
}
},
"end": "(?=\\n)",
"name": "comment.line.double-slash.stata",
"patterns": [
{
"include": "#docblockr-comment"
}
]
}
]
},
"comments-star": {
"patterns": [
{
"begin": "^\\s*(\\*)",
"captures": {
"0": {
"name": "punctuation.definition.comment.stata"
}
},
"end": "(?=\\n)",
"name": "comment.line.star.stata",
"patterns": [
{
"include": "#docblockr-comment"
},
{
"begin": "///",
"end": "\\n",
"name": "comment.line-continuation.stata"
},
{
"include": "#comments"
}
]
}
]
},
"comments-triple-slash": {
"patterns": [
{
"begin": "((?:^|(?<=\\s))///)",
"captures": {
"0": {
"name": "punctuation.definition.comment.stata"
}
},
"end": "(?=\\n)",
"name": "comment.line.triple-slash.stata",
"patterns": [
{
"include": "#docblockr-comment"
}
]
}
]
},
"constants": {
"patterns": [
{
"include": "#factorvariables"
},
{
"match": "\\b(?i:(\\d+\\.\\d*(e[-+]?\\d+)?))(?=[^A-Z_a-z])",
"name": "constant.numeric.float.stata"
},
{
"match": "(?<=[^0-9A-Z_a-z])(?i:(\\.\\d+(e[-+]?\\d+)?))",
"name": "constant.numeric.float.stata"
},
{
"match": "\\b(?i:(\\d+e[-+]?\\d+))",
"name": "constant.numeric.float.stata"
},
{
"match": "\\b(\\d+)\\b",
"name": "constant.numeric.integer.decimal.stata"
},
{
"match": "(?<!\\w)(\\.(?![./]))(?!\\w)",
"name": "constant.language.missing.stata"
},
{
"match": "\\b_all\\b",
"name": "constant.language.allvars.stata"
}
]
},
"docblockr-comment": {
"patterns": [
{
"captures": {
"1": {
"name": "invalid.illegal.name.stata"
}
},
"match": "(?<!\\w)(@(error|ERROR|Error))\\b"
},
{
"captures": {
"1": {
"name": "keyword.docblockr.stata"
}
},
"match": "(?<!\\w)(@\\w+)\\b"
}
]
},
"docstring": {
"patterns": [
{
"begin": "'''",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.stata"
}
},
"end": "'''",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.begin.stata"
}
},
"name": "string.quoted.docstring.stata"
},
{
"begin": "\"\"\"",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.stata"
}
},
"end": "\"\"\"",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.begin.stata"
}
},
"name": "string.quoted.docstring.stata"
}
]
},
"factorvariables": {
"patterns": [
{
"match": "\\b([cio])\\.(?=[\\w&&[^0-9]]|\\([\\w&&[