Skip to content
This repository was archived by the owner on Feb 5, 2019. It is now read-only.

Commit ca59332

Browse files
committed
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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@337415 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 1b4d218 commit ca59332

File tree

1 file changed

+134
-0
lines changed

1 file changed

+134
-0
lines changed

utils/kate/llvm-tablegen.xml

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE language SYSTEM "language.dtd">
3+
<language name="LLVM TableGen" section="Sources" version="1.00" kateversion="3.4.4" extensions="*.td" mimetype="" author="LLVM Team" license="LLVM Release License">
4+
<highlighting>
5+
<list name="keywords">
6+
<item> foreach </item>
7+
<item> field </item>
8+
</list>
9+
<list name="operator-keywords">
10+
<item> in </item>
11+
</list>
12+
<list name="bang-operators">
13+
<item> !eq </item>
14+
<item> !if </item>
15+
<item> !head </item>
16+
<item> !tail </item>
17+
<item> !con </item>
18+
<item> !add </item>
19+
<item> !shl </item>
20+
<item> !sra </item>
21+
<item> !srl </item>
22+
<item> !and </item>
23+
<item> !or </item>
24+
<item> !empty </item>
25+
<item> !subst </item>
26+
<item> !foreach </item>
27+
<item> !strconcat </item>
28+
<item> !cast </item>
29+
<item> !listconcat </item>
30+
<item> !size </item>
31+
<item> !foldl </item>
32+
<item> !isa </item>
33+
<item> !dag </item>
34+
<item> !le </item>
35+
<item> !lt </item>
36+
<item> !ge </item>
37+
<item> !gt </item>
38+
<item> !ne </item>
39+
</list>
40+
<list name="objects">
41+
<item> class </item>
42+
<item> def </item>
43+
<item> defm </item>
44+
<item> defset </item>
45+
<item> let </item>
46+
<item> multiclass </item>
47+
</list>
48+
<list name="class-like">
49+
<item> class </item>
50+
<item> def </item>
51+
<item> defm </item>
52+
<item> defset </item>
53+
<item> multiclass </item>
54+
</list>
55+
<list name="variable-like">
56+
<item> let </item>
57+
</list>
58+
<list name="types">
59+
<item> string </item>
60+
<item> code </item>
61+
<item> bit </item>
62+
<item> int </item>
63+
<item> dag </item>
64+
<item> bits </item>
65+
<item> list </item>
66+
</list>
67+
<contexts>
68+
<context name="llvm tablegen" attribute="Normal Text" lineEndContext="#stay">
69+
<DetectSpaces/>
70+
<Detect2Chars attribute="Comment" context="Single-line comment" char="/" char1="/"/>
71+
<Detect2Chars attribute="Comment" context="Multi-line comment" char="/" char1="*" beginRegion="Comment"/>
72+
<keyword attribute="Keyword" context="Definition" String="class-like"/>
73+
<keyword attribute="Keyword" context="Let expression" String="variable-like"/>
74+
<keyword attribute="Keyword" String="objects"/>
75+
<keyword attribute="Keyword" String="keywords"/>
76+
<keyword attribute="Keyword" String="operator-keywords"/>
77+
<keyword attribute="Keyword" String="bang-operators"/>
78+
<keyword attribute="Data Type" String="types"/>
79+
<DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1"/>
80+
<DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1"/>
81+
<Int attribute="Int" context="#stay"/>
82+
<RegExpr attribute="Normal Text" String="[a-zA-Z_][a-zA-Z_0-9]{2,}" context="#stay"/>
83+
</context>
84+
<context attribute="Comment" lineEndContext="#pop" name="Single-line comment">
85+
<IncludeRules context="##Alerts"/>
86+
<LineContinue attribute="Comment" context="#stay"/>
87+
</context>
88+
<context attribute="Comment" lineEndContext="#stay" name="Multi-line comment">
89+
<Detect2Chars attribute="Comment" context="Multi-line comment" char="/" char1="*" beginRegion="Comment"/>
90+
<IncludeRules context="##Alerts"/>
91+
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
92+
</context>
93+
<context attribute="Normal Text" lineEndContext="#stay" name="Definition">
94+
<DetectSpaces/>
95+
<RegExpr attribute="Type" context="#stay" String="[a-zA-Z0-9_]+"/>
96+
<DetectSpaces/>
97+
<DetectChar char=":" />
98+
<DetectSpaces/>
99+
<RegExpr attribute="Type" context="#stay" String="[a-zA-Z0-9_]+"/>
100+
<AnyChar context="#pop" lookAhead="true" String=" :;{&lt;" />
101+
</context>
102+
<context attribute="Normal Text" lineEndContext="#stay" name="Let expression">
103+
<DetectSpaces/>
104+
<RegExpr attribute="Variable" context="#pop" String="[a-zA-Z0-9_]+"/>
105+
</context>
106+
</contexts>
107+
<itemDatas>
108+
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
109+
<itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/>
110+
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
111+
<itemData name="Data Type" defStyleNum="dsDataType" spellChecking="false"/>
112+
<itemData name="Type" defStyleNum="dsDataType" spellChecking="false"/>
113+
<itemData name="Variable" defStyleNum="dsVariable" spellChecking="false"/>
114+
<itemData name="Int" defStyleNum="dsDecVal"/>
115+
<itemData name="Hex" defStyleNum="dsBaseN"/>
116+
<itemData name="Float" defStyleNum="dsFloat"/>
117+
<itemData name="String" defStyleNum="dsString"/>
118+
<itemData name="Comment" defStyleNum="dsComment"/>
119+
<itemData name="Function" defStyleNum="dsFunction"/>
120+
<itemData name="Symbol" defStyleNum="dsNormal" spellChecking="false"/>
121+
<itemData name="SPECIAL" defStyleNum="dsAlert" strikeout="true" bold="true" underline="true" italic="true"/>
122+
</itemDatas>
123+
</highlighting>
124+
<general>
125+
<comments>
126+
<comment name="singleLine" start="//"/>
127+
<comment name="multiLine" start="/*" end="*/"/>
128+
</comments>
129+
<keywords casesensitive="1" weakDeliminator=".!"/>
130+
</general>
131+
</language>
132+
<!--
133+
// kate: space-indent on; indent-width 2; replace-tabs on;
134+
-->

0 commit comments

Comments
 (0)