• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<?xml version="1.0" encoding="UTF-8"?>
2<!-- https://docs.kde.org/trunk5/en/applications/katepart/highlight.html#katehighlight-xml-format -->
3<!DOCTYPE language SYSTEM "language.dtd">
4<language name="secil" section="Sources" extensions="*.cil" version="1" kateversion="2.4">
5    <!--
6        The keywords where extracted from libsepol/cil/src/cil.c sorted into the
7        right lists and sorted alphabetically
8    -->
9    <list name="keywords_blockstart">
10        <item>allow</item>
11        <item>allowx</item>
12        <item>auditallow</item>
13        <item>auditallowx</item>
14        <item>block</item>
15        <item>blockabstract</item>
16        <item>boolean</item>
17        <item>booleanif</item>
18        <item>category</item>
19        <item>categoryalias</item>
20        <item>categoryaliasactual</item>
21        <item>categoryorder</item>
22        <item>categoryset</item>
23        <item>class</item>
24        <item>classcommon</item>
25        <item>classmap</item>
26        <item>classmapping</item>
27        <item>classorder</item>
28        <item>classpermission</item>
29        <item>classpermissionset</item>
30        <item>common</item>
31        <item>constrain</item>
32        <item>context</item>
33        <item>defaultrange</item>
34        <item>defaultrole</item>
35        <item>defaulttype</item>
36        <item>defaultuser</item>
37        <item>devicetreecon</item>
38        <item>dontaudit</item>
39        <item>dontauditx</item>
40        <item>expandtypeattribute</item>
41        <item>false</item>
42        <item>filecon</item>
43        <item>fsuse</item>
44        <item>genfscon</item>
45        <item>handleunknown</item>
46        <item>ibendportcon</item>
47        <item>ibpkeycon</item>
48        <item>ioctl</item>
49        <item>iomemcon</item>
50        <item>ioportcon</item>
51        <item>ipaddr</item>
52        <item>level</item>
53        <item>levelrange</item>
54        <item>mls</item>
55        <item>mlsconstrain</item>
56        <item>mlsvalidatetrans</item>
57        <item>netifcon</item>
58        <item>neverallow</item>
59        <item>neverallowx</item>
60        <item>nodecon</item>
61        <item>optional</item>
62        <item>pcidevicecon</item>
63        <item>perm</item>
64        <item>permissionx</item>
65        <item>pirqcon</item>
66        <item>policycap</item>
67        <item>portcon</item>
68        <item>rangetransition</item>
69        <item>role</item>
70        <item>roleallow</item>
71        <item>roleattribute</item>
72        <item>roleattributeset</item>
73        <item>rolebounds</item>
74        <item>roletransition</item>
75        <item>roletype</item>
76        <item>selinuxuser</item>
77        <item>selinuxuserdefault</item>
78        <item>sensitivity</item>
79        <item>sensitivityalias</item>
80        <item>sensitivityaliasactual</item>
81        <item>sensitivitycategory</item>
82        <item>sensitivityorder</item>
83        <item>sid</item>
84        <item>sidcontext</item>
85        <item>sidorder</item>
86        <item>true</item>
87        <item>tunable</item>
88        <item>tunableif</item>
89        <item>type</item>
90        <item>typealias</item>
91        <item>typealiasactual</item>
92        <item>typeattribute</item>
93        <item>typeattributeset</item>
94        <item>typebounds</item>
95        <item>typechange</item>
96        <item>typemember</item>
97        <item>typepermissive</item>
98        <item>typetransition</item>
99        <item>unordered</item>
100        <item>user</item>
101        <item>userattribute</item>
102        <item>userattributeset</item>
103        <item>userbounds</item>
104        <item>userlevel</item>
105        <item>userprefix</item>
106        <item>userrange</item>
107        <item>userrole</item>
108        <item>validatetrans</item>
109    </list>
110
111    <list name="function">
112        <item>blockinherit</item>
113        <item>call</item>
114        <item>in</item>
115        <item>macro</item>
116    </list>
117
118    <list name="operators">
119        <item>and</item>
120        <item>dom</item>
121        <item>domby</item>
122        <item>eq</item>
123        <item>incomp</item>
124        <item>neq</item>
125        <item>not</item>
126        <item>or</item>
127        <item>range</item>
128        <item>xor</item>
129    </list>
130
131    <!-- list of "magic" functions or values -->
132    <list name="builtins">
133        <item>*</item>
134        <item>all</item>
135        <item>dccp</item>
136        <item>false</item>
137        <item>h1</item>
138        <item>h2</item>
139        <item>l1</item>
140        <item>l2</item>
141        <item>object_r</item>
142        <item>r1</item>
143        <item>r2</item>
144        <item>r3</item>
145        <item>sctp</item>
146        <item>self</item>
147        <item>t1</item>
148        <item>t2</item>
149        <item>t3</item>
150        <item>tcp</item>
151        <item>true</item>
152        <item>u1</item>
153        <item>u2</item>
154        <item>u3</item>
155        <item>udp</item>
156
157        <!--
158            Excluded because they lead to a lot of false-positives
159        <item>allow</item>
160        <item>any</item>
161        <item>char</item>
162        <item>deny</item>
163        <item>dir</item>
164        <item>file</item>
165        <item>glblub</item>
166        <item>high</item>
167        <item>low-high</item>
168        <item>low</item>
169        <item>pipe</item>
170        <item>reject</item>
171        <item>socket</item>
172        <item>source</item>
173        <item>symlink</item>
174        <item>target</item>
175        <item>task</item>
176        <item>trans</item>
177        <item>xattr</item>
178        -->
179    </list>
180    <highlighting>
181        <contexts>
182            <context name="Normal" attribute="Normal" lineEndContext="#stay">
183                <DetectChar attribute="Brackets" context="BlockStart" char="("/>
184
185                <DetectChar attribute="Comment" context="Comment" char=";"/>
186            </context>
187            <context name="BlockStart" attribute="Normal" lineEndContext="#stay">
188                <keyword attribute="Keyword" context="Block" String="keywords_blockstart"/>
189                <keyword attribute="Function" context="Block" String="function"/>
190                <keyword attribute="Operator" context="Block" String="operators"/>
191
192                <DetectChar attribute="Comment" context="Comment" char=";"/>
193            </context>
194            <context name="Block" attribute="Normal" lineEndContext="#stay">
195                <keyword attribute="Builtin" context="#stay" String="builtins"/>
196
197                <DetectChar attribute="Comment" context="Comment" char=";"/>
198                <DetectChar attribute="String" context="String" char="&quot;"/>
199
200                <DetectChar attribute="Brackets" context="BlockStart" char="("/>
201                <DetectChar attribute="Brackets" context="#pop" char=")"/>
202            </context>
203
204            <!-- single line comment -->
205            <context name="Comment" attribute="Comment" lineEndContext="#pop"></context>
206
207            <!-- string / name -->
208            <context name="String" attribute="String" lineEndContext="#stay">
209                <RegExpr attribute="Char" context="#stay" String="#\\."/>
210
211                <!-- allow escaping " or similar -->
212                <HlCStringChar attribute="String Char" context="#stay"/>
213
214                <DetectChar attribute="String" context="#pop" char="&quot;"/>
215            </context>
216        </contexts>
217        <itemDatas>
218            <itemData name="Normal" defStyleNum="dsNormal" />
219            <itemData name="Keyword" defStyleNum="dsKeyword"/>
220            <itemData name="Function" defStyleNum="dsFunction"/>
221            <itemData name="Operator" defStyleNum="dsOperator"/>
222            <itemData name="Builtin" defStyleNum="dsBuiltIn"/>
223
224            <itemData name="Comment" defStyleNum="dsComment"/>
225
226            <itemData name="String" defStyleNum="dsString"/>
227            <itemData name="String Char" defStyleNum="dsSpecialChar"/>
228        </itemDatas>
229    </highlighting>
230    <general>
231        <comments>
232            <comment name="singleLine" start=";"/>
233        </comments>
234        <keywords casesensitive="1" weakDeliminator="."/>
235    </general>
236</language>
237