xref: /llvm-project/llvm/utils/kate/llvm-tablegen.xml (revision 416884544e0210c32c113f02c3d3881e78aac6a4)
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      <item> if </item>
9      <item> then </item>
10      <item> else </item>
11    </list>
12    <list name="operator-keywords">
13      <item> in </item>
14    </list>
15    <list name="bang-operators">
16      <item> !eq </item>
17      <item> !if </item>
18      <item> !head </item>
19      <item> !tail </item>
20      <item> !con </item>
21      <item> !add </item>
22      <item> !mul </item>
23      <item> !shl </item>
24      <item> !sra </item>
25      <item> !srl </item>
26      <item> !and </item>
27      <item> !or </item>
28      <item> !empty </item>
29      <item> !subst </item>
30      <item> !foreach </item>
31      <item> !strconcat </item>
32      <item> !cast </item>
33      <item> !listconcat </item>
34      <item> !listremove </item>
35      <item> !listsplat </item>
36      <item> !size </item>
37      <item> !foldl </item>
38      <item> !isa </item>
39      <item> !dag </item>
40      <item> !le </item>
41      <item> !lt </item>
42      <item> !ge </item>
43      <item> !gt </item>
44      <item> !ne </item>
45      <item> !tolower </item>
46      <item> !toupper </item>
47      <item> !repr </item>
48    </list>
49    <list name="objects">
50      <item> class </item>
51      <item> def </item>
52      <item> defm </item>
53      <item> defset </item>
54      <item> let </item>
55      <item> defvar </item>
56      <item> multiclass </item>
57      <item> assert </item>
58      <item> dump </item>
59    </list>
60    <list name="class-like">
61      <item> class </item>
62      <item> def </item>
63      <item> defm </item>
64      <item> defset </item>
65      <item> multiclass </item>
66    </list>
67    <list name="variable-like">
68      <item> let </item>
69    </list>
70    <list name="types">
71      <item> string </item>
72      <item> code </item>
73      <item> bit </item>
74      <item> int </item>
75      <item> dag </item>
76      <item> bits </item>
77      <item> list </item>
78    </list>
79    <contexts>
80      <context name="llvm tablegen" attribute="Normal Text" lineEndContext="#stay">
81        <DetectSpaces/>
82        <Detect2Chars attribute="Comment" context="Single-line comment" char="/" char1="/"/>
83        <Detect2Chars attribute="Comment" context="Multi-line comment" char="/" char1="*" beginRegion="Comment"/>
84        <keyword attribute="Keyword" context="Definition" String="class-like"/>
85        <keyword attribute="Keyword" context="Let expression" String="variable-like"/>
86        <keyword attribute="Keyword" String="objects"/>
87        <keyword attribute="Keyword" String="keywords"/>
88        <keyword attribute="Keyword" String="operator-keywords"/>
89        <keyword attribute="Keyword" String="bang-operators"/>
90        <keyword attribute="Data Type" String="types"/>
91        <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1"/>
92        <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1"/>
93        <Int attribute="Int" context="#stay"/>
94        <RegExpr attribute="Normal Text" String="[a-zA-Z_][a-zA-Z_0-9]{2,}" context="#stay"/>
95      </context>
96      <context attribute="Comment" lineEndContext="#pop" name="Single-line comment">
97        <IncludeRules context="##Alerts"/>
98        <LineContinue attribute="Comment" context="#stay"/>
99      </context>
100      <context attribute="Comment" lineEndContext="#stay" name="Multi-line comment">
101        <Detect2Chars attribute="Comment" context="Multi-line comment" char="/" char1="*" beginRegion="Comment"/>
102        <IncludeRules context="##Alerts"/>
103        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
104      </context>
105      <context attribute="Normal Text" lineEndContext="#stay" name="Definition">
106        <DetectSpaces/>
107        <RegExpr attribute="Type" context="#stay" String="[a-zA-Z0-9_]+"/>
108        <DetectSpaces/>
109        <DetectChar char=":" />
110        <DetectSpaces/>
111        <RegExpr attribute="Type" context="#stay" String="[a-zA-Z0-9_]+"/>
112        <AnyChar context="#pop" lookAhead="true" String=" :;{&lt;" />
113      </context>
114      <context attribute="Normal Text" lineEndContext="#stay" name="Let expression">
115        <DetectSpaces/>
116        <RegExpr attribute="Variable" context="#pop" String="[a-zA-Z0-9_]+"/>
117      </context>
118    </contexts>
119    <itemDatas>
120      <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
121      <itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/>
122      <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
123      <itemData name="Data Type" defStyleNum="dsDataType" spellChecking="false"/>
124      <itemData name="Type" defStyleNum="dsDataType" spellChecking="false"/>
125      <itemData name="Variable" defStyleNum="dsVariable" spellChecking="false"/>
126      <itemData name="Int" defStyleNum="dsDecVal"/>
127      <itemData name="Hex" defStyleNum="dsBaseN"/>
128      <itemData name="Float" defStyleNum="dsFloat"/>
129      <itemData name="String" defStyleNum="dsString"/>
130      <itemData name="Comment" defStyleNum="dsComment"/>
131      <itemData name="Function" defStyleNum="dsFunction"/>
132      <itemData name="Symbol" defStyleNum="dsNormal" spellChecking="false"/>
133      <itemData name="SPECIAL" defStyleNum="dsAlert" strikeout="true" bold="true" underline="true" italic="true"/>
134    </itemDatas>
135  </highlighting>
136  <general>
137    <comments>
138      <comment name="singleLine" start="//"/>
139      <comment name="multiLine" start="/*" end="*/"/>
140    </comments>
141    <keywords casesensitive="1" weakDeliminator=".!"/>
142  </general>
143</language>
144<!--
145// kate: space-indent on; indent-width 2; replace-tabs on;
146-->
147