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-->
135