diff --git a/llvm/utils/textmate/TableGen.tmbundle/info.plist b/llvm/utils/textmate/TableGen.tmbundle/Info.plist rename from llvm/utils/textmate/TableGen.tmbundle/info.plist rename to llvm/utils/textmate/TableGen.tmbundle/Info.plist diff --git a/llvm/utils/textmate/TableGen.tmbundle/Syntaxes/TableGen.tmLanguage b/llvm/utils/textmate/TableGen.tmbundle/Syntaxes/TableGen.tmLanguage --- a/llvm/utils/textmate/TableGen.tmbundle/Syntaxes/TableGen.tmLanguage +++ b/llvm/utils/textmate/TableGen.tmbundle/Syntaxes/TableGen.tmLanguage @@ -17,31 +17,197 @@ #comments - match - \b(def|let|in|code|dag|string|list|bits|bit|field|include|defm|foreach|class|multiclass|int)\b - name - keyword.control.tablegen + include + #preprocessor - begin - " - end - " - name - string.quoted.double.untitled + include + #strings + + + include + #integer + + + include + #builtin_types + + + include + #keywords + + + include + #classes + + + include + #defs + + + include + #values + + + repository + + bang_operators + patterns + + begin + (\!cast|\!getdagop|\!isa)\< + beginCaptures + + 1 + + name + entity.name.function + + + end + \> + patterns + + + include + #types + + + match - \\. + (\!\w+)\b name - constant.character.escape.tablegen + entity.name.function + + + + builtin_types + + patterns + + + match + \b(?:bit|code|dag|int|string)\b + name + entity.name.type.tablegen + + + begin + \b(bits)\< + beginCaptures + + 1 + + name + entity.name.type.tablegen + + + end + \> + patterns + + + include + #integer + + + + + begin + \b(list)\< + beginCaptures + + 1 + + name + entity.name.type.tablegen + + + end + \> + patterns + + + include + #types + + + + + + classes + + begin + \b(multiclass|class)\b\s+(\w+)\b + beginCaptures + + 1 + + name + keyword.other.class.tablegen + + 2 + + name + entity.name.type.tablegen + + + end + (\;|\}) + patterns + + + begin + \< + end + \> + patterns + + + include + #builtin_types + + + captures + + 1 + + name + entity.name.type.tablegen + + 2 + + name + variable.other.tablegen + + + match + \b(\w+\s+)?\b(\w+)\b + + + begin + = + end + (?=\>|\,) + patterns + + + include + #values + + + + + + + include + #record_body - - repository - comments patterns @@ -123,6 +289,433 @@ + defs + + begin + \b(defm|def)\b + beginCaptures + + 1 + + name + keyword.other.def.tablegen + + + end + (\;|\}) + patterns + + + include + #record_body + + + include + #values + + + + integer + + patterns + + + match + \b\d+\b + name + constant.numeric.tablegen + + + match + \b0[xX][a-fA-F0-9]+\b + name + constant.numeric.hex.tablegen + + + match + \b0b[01]+\b + name + constant.numeric.binary.tablegen + + + + keywords + + patterns + + + match + \b(assert|else|foreach|defset|defvar|field|if|in|let|then)\b + name + keyword.other.tablegen + + + + preprocessor + + patterns + + + captures + + 1 + + name + entity.name.function.preprocessor.tablegen + + + match + ^#ifdef\s+(\w+) + name + keyword.control.ifdef.tablegen + + + captures + + 1 + + name + entity.name.function.preprocessor.tablegen + + + match + ^#ifndef\s+(\w+) + name + keyword.control.ifndef.tablegen + + + match + ^#else + name + keyword.control.else.tablegen + + + match + #endif + name + keyword.control.endif.tablegen + + + captures + + 1 + + name + entity.name.function.preprocessor.tablegen + + + match + #define\s+(\w+) + name + keyword.control.ifndef.tablegen + + + match + ^include\s+ + name + keyword.control.include.tablegen + + + + record_body + + patterns + + + begin + \: + end + (?=\;|\{) + patterns + + + match + \b(\w+)\b + name + entity.name.type.tablegen + + + begin + \< + end + \> + patterns + + + include + #values + + + + + + + begin + \{ + end + (?=\}) + patterns + + + include + #keywords + + + include + #builtin_types + + + captures + + 1 + + name + entity.name.type.tablegen + + 2 + + name + variable.other.tablegen + + + match + \b(\w+\s+)?\b(\w+)\b\s+\= + + + include + #values + + + + + + strings + + patterns + + + begin + " + beginCaptures + + 0 + + name + punctuation.definition.string.begin.tablegen + + + end + " + endCaptures + + 0 + + name + punctuation.definition.string.end.tablegen + + + name + string.quoted.double.tablegen + patterns + + + match + \\['nt"] + name + constant.character.escape.tablegen + + + + + begin + \[{ + beginCaptures + + 0 + + name + punctuation.definition.string.begin.tablegen + + + end + }] + endCaptures + + 0 + + name + punctuation.definition.string.end.tablegen + + + name + string.quoted.triple.tablegen + patterns + + + match + \\[nt"] + name + constant.character.escape.tablegen + + + + + + types + + patterns + + + include + #builtin_types + + + match + \b(\w+)\b + name + entity.name.type.tablegen + + + + values + + patterns + + + include + #builtin_types + + + include + #bang_operators + + + include + #classes + + + include + #defs + + + include + #comments + + + include + #integer + + + include + #strings + + + match + \b(?:false|true)\b + name + keyword.other.tablegen + + + match + (\?) + name + keyword.other.tablegen + + + begin + \{ + end + \} + patterns + + + include + #values + + + + + begin + \[ + end + (?=\]) + patterns + + + include + #values + + + + + begin + \]\s*\< + end + \> + patterns + + + include + #types + + + + + begin + \( + end + \) + patterns + + + include + #values + + + + + include + #keywords + + + begin + \b(\w+)\< + beginCaptures + + 1 + + name + entity.name.type.tablegen + + + end + \> + patterns + + + include + #values + + + + + match + (\$\w+)\b + name + variable.other.enummember.tablegen + + + match + \b(\w+)\b + name + variable.other.tablegen + + + include + #preprocessor + + + scopeName source.tablegen