[llvm] r337415 - Add (very partial) Kate syntax highlighting definition for TableGen

Roman Lebedev via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 18 11:35:27 PDT 2018


Author: lebedevri
Date: Wed Jul 18 11:35:27 2018
New Revision: 337415

URL: http://llvm.org/viewvc/llvm-project?rev=337415&view=rev
Log:
Add (very partial) Kate syntax highlighting definition for TableGen

This is very clearly not very good, and is very partial.
But this is better than nothing at all, and shouldn't
hurt those who don't need it.

If there are others interested in this functionality,
it will be great to further improve this.

{F6253091}

Reviewed By: Bigcheese

Differential Revision: https://reviews.llvm.org/D47080

Added:
    llvm/trunk/utils/kate/llvm-tablegen.xml

Added: llvm/trunk/utils/kate/llvm-tablegen.xml
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/kate/llvm-tablegen.xml?rev=337415&view=auto
==============================================================================
--- llvm/trunk/utils/kate/llvm-tablegen.xml (added)
+++ llvm/trunk/utils/kate/llvm-tablegen.xml Wed Jul 18 11:35:27 2018
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="LLVM TableGen" section="Sources" version="1.00" kateversion="3.4.4" extensions="*.td" mimetype="" author="LLVM Team" license="LLVM Release License">
+  <highlighting>
+    <list name="keywords">
+      <item> foreach </item>
+      <item> field </item>
+    </list>
+    <list name="operator-keywords">
+      <item> in </item>
+    </list>
+    <list name="bang-operators">
+      <item> !eq </item>
+      <item> !if </item>
+      <item> !head </item>
+      <item> !tail </item>
+      <item> !con </item>
+      <item> !add </item>
+      <item> !shl </item>
+      <item> !sra </item>
+      <item> !srl </item>
+      <item> !and </item>
+      <item> !or </item>
+      <item> !empty </item>
+      <item> !subst </item>
+      <item> !foreach </item>
+      <item> !strconcat </item>
+      <item> !cast </item>
+      <item> !listconcat </item>
+      <item> !size </item>
+      <item> !foldl </item>
+      <item> !isa </item>
+      <item> !dag </item>
+      <item> !le </item>
+      <item> !lt </item>
+      <item> !ge </item>
+      <item> !gt </item>
+      <item> !ne </item>
+    </list>
+    <list name="objects">
+      <item> class </item>
+      <item> def </item>
+      <item> defm </item>
+      <item> defset </item>
+      <item> let </item>
+      <item> multiclass </item>
+    </list>
+    <list name="class-like">
+      <item> class </item>
+      <item> def </item>
+      <item> defm </item>
+      <item> defset </item>
+      <item> multiclass </item>
+    </list>
+    <list name="variable-like">
+      <item> let </item>
+    </list>
+    <list name="types">
+      <item> string </item>
+      <item> code </item>
+      <item> bit </item>
+      <item> int </item>
+      <item> dag </item>
+      <item> bits </item>
+      <item> list </item>
+    </list>
+    <contexts>
+      <context name="llvm tablegen" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <Detect2Chars attribute="Comment" context="Single-line comment" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="Multi-line comment" char="/" char1="*" beginRegion="Comment"/>
+        <keyword attribute="Keyword" context="Definition" String="class-like"/>
+        <keyword attribute="Keyword" context="Let expression" String="variable-like"/>
+        <keyword attribute="Keyword" String="objects"/>
+        <keyword attribute="Keyword" String="keywords"/>
+        <keyword attribute="Keyword" String="operator-keywords"/>
+        <keyword attribute="Keyword" String="bang-operators"/>
+        <keyword attribute="Data Type" String="types"/>
+        <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1"/>
+        <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1"/>
+        <Int attribute="Int" context="#stay"/>
+        <RegExpr attribute="Normal Text" String="[a-zA-Z_][a-zA-Z_0-9]{2,}" context="#stay"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="Single-line comment">
+        <IncludeRules context="##Alerts"/>
+        <LineContinue attribute="Comment" context="#stay"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="Multi-line comment">
+        <Detect2Chars attribute="Comment" context="Multi-line comment" char="/" char1="*" beginRegion="Comment"/>
+        <IncludeRules context="##Alerts"/>
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Definition">
+        <DetectSpaces/>
+        <RegExpr attribute="Type" context="#stay" String="[a-zA-Z0-9_]+"/>
+        <DetectSpaces/>
+        <DetectChar char=":" />
+        <DetectSpaces/>
+        <RegExpr attribute="Type" context="#stay" String="[a-zA-Z0-9_]+"/>
+        <AnyChar context="#pop" lookAhead="true" String=" :;{<" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Let expression">
+        <DetectSpaces/>
+        <RegExpr attribute="Variable" context="#pop" String="[a-zA-Z0-9_]+"/>
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/>
+      <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Data Type" defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="Type" defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="Variable" defStyleNum="dsVariable" spellChecking="false"/>
+      <itemData name="Int" defStyleNum="dsDecVal"/>
+      <itemData name="Hex" defStyleNum="dsBaseN"/>
+      <itemData name="Float" defStyleNum="dsFloat"/>
+      <itemData name="String" defStyleNum="dsString"/>
+      <itemData name="Comment" defStyleNum="dsComment"/>
+      <itemData name="Function" defStyleNum="dsFunction"/>
+      <itemData name="Symbol" defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="SPECIAL" defStyleNum="dsAlert" strikeout="true" bold="true" underline="true" italic="true"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="//"/>
+      <comment name="multiLine" start="/*" end="*/"/>
+    </comments>
+    <keywords casesensitive="1" weakDeliminator=".!"/>
+  </general>
+</language>
+<!--
+// kate: space-indent on; indent-width 2; replace-tabs on;
+-->




More information about the llvm-commits mailing list