Warning, /frameworks/syntax-highlighting/data/syntax/selinux.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0" encoding="UTF-8"?> 0002 <!DOCTYPE language 0003 [ 0004 <!ENTITY identifier "[a-zA-Z][\w\-]*(?:\.?[\w\-])*"> 0005 <!ENTITY versionIdentifier "\d+(?:\.[\d_\.]*)?"> 0006 <!-- Documentation --> 0007 <!ENTITY tagName "(?:[a-zA-Z_](?:[\w\-\.]*\w)?\:)?[a-zA-Z_](?:[\w\-\.]*\w)?"> 0008 <!-- PCRE 2 RegExp --> 0009 <!ENTITY specialChars "*?.+"> 0010 <!ENTITY capGroup "\?(?:<[\=!]|P?<\w+>|'\w+'|[\=!:>\|R&\-#])"> <!-- Capturing & Groups --> 0011 <!-- M4 Macros --> 0012 <!ENTITY m4Args "\$(?:[1-9]\d*|0|[\#\*\@]|\{(?:[1-9]\d*|0)\})"> 0013 <!ENTITY m4Quotes "`'‘’“”"> <!-- Default Quotes (`') & Other Common Quotes --> 0014 <!-- For File Contexts --> 0015 <!ENTITY identifierWithArg "(?:[a-zA-Z]|&m4Args;)(?:\.?(?:[\w\-]|&m4Args;))*"> 0016 <!ENTITY mlsLevel "&identifierWithArg;(?:\:&identifierWithArg;(?:\s*,\s*&identifierWithArg;)*)?"> 0017 0018 <!ENTITY url "\bhttps?://[^\s<>"'`]*[^\s<>"'`\}\)\]\.,;\|]"> 0019 <!ENTITY email "(?:(?:[^<>\(\)\[\]\\\.,;:\s@"]+(?:\.[^<>\(\)\[\]\\\.,;:\s@"]+)*)|(?:"[^"]+"))@(?:(?:\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}])|(?:(?:[a-zA-Z\-\d]+\.)+[a-zA-Z]{2,}))\b"> 0020 0021 <!ENTITY ipv4 "\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b"> 0022 <!-- IPv6 (Source: https://community.helpsystems.com/forums/intermapper/miscellaneous-topics/5acc4fcf-fa83-e511-80cf-0050568460e4 ) --> 0023 <!ENTITY ipv6 "(?:(?:\b(?:[0-9A-Fa-f]{1,4}\:){7}(?:[0-9A-Fa-f]{1,4}|\:))|(?:\b(?:[0-9A-Fa-f]{1,4}\:){6}(?:\:[0-9A-Fa-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|\:))|(?:\b(?:[0-9A-Fa-f]{1,4}\:){5}(?:(?:(?:\:[0-9A-Fa-f]{1,4}){1,2})|\:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|\:))|(?:\b(?:[0-9A-Fa-f]{1,4}\:){4}(?:(?:(?:\:[0-9A-Fa-f]{1,4}){1,3})|(?:(?:\:[0-9A-Fa-f]{1,4})?\:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|\:))|(?:\b(?:[0-9A-Fa-f]{1,4}\:){3}(?:(?:(?:\:[0-9A-Fa-f]{1,4}){1,4})|(?:(?:\:[0-9A-Fa-f]{1,4}){0,2}\:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|\:))|(?:\b(?:[0-9A-Fa-f]{1,4}\:){2}(?:(?:(?:\:[0-9A-Fa-f]{1,4}){1,5})|(?:(?:\:[0-9A-Fa-f]{1,4}){0,3}\:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|\:))|(?:\b(?:[0-9A-Fa-f]{1,4}\:){1}(?:(?:(?:\:[0-9A-Fa-f]{1,4}){1,6})|(?:(?:\:[0-9A-Fa-f]{1,4}){0,4}\:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|\:))|(?:\:(?:(?:(?:\:[0-9A-Fa-f]{1,4}){1,7})|(?:(?:\:[0-9A-Fa-f]{1,4}){0,5}\:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|\:)))"> <!-- End: (\%\w+\b)? --> 0024 0025 <!-- Hexadecimal --> 0026 <!ENTITY escape1 "\\x(?:\{[\da-fA-F]+\}|[\da-fA-F]{2})"> 0027 <!-- Octal. NOTE: only ASCII chars. for \ddd --> 0028 <!ENTITY escape2 "\\(?:o\{[0-7]+\}|[0-3][0-7]{0,2}|[4-7][0-7]?)"> 0029 <!-- References --> 0030 <!ENTITY escape3 "\\[kg](?:<\w+>|'\w+'|\{\w+\})"> 0031 <!ENTITY escape4 "\\g(?:<[\+\-]?\d+>|'[\+\-]?\d+'|\{[\+\-]?\d+\}|[\+\-]?\d)"> 0032 <!-- Category Properties --> 0033 <!ENTITY escape5 "\\[pP](?:C[cfnos]?|L[lmotu&]?|M[cen]?|N[dlo]?|P[cdefios]?|S[ckmo]?|Z[lps]?)"> 0034 <!ENTITY escape6 "\\[pP]\{(?:Xan|Xps|Xsp|Xuc|Xwd|C[cfnos]?|L[lmotu&]?|M[cen]?|N[dlo]?|P[cdefios]?|S[ckmo]?|Z[lps]?)\}"> 0035 <!-- Script Names --> 0036 <!ENTITY escape7 "\\[pP]\{(?:Ahom|Anatolian_Hieroglyphs|Arabic|Armenian|Avestan|Balinese|Bamum|Bassa_Vah|Batak|Bengali|Bopomofo|Brahmi|Braille|Buginese|Buhid|Canadian_Aboriginal|Carian|Caucasian_Albanian|Chakma|Cham|Cherokee|Common|Coptic|Cuneiform|Cypriot|Cyrillic|Deseret|Devanagari|Duployan|Egyptian_Hieroglyphs|Elbasan|Ethiopic|Georgian|Glagolitic|Gothic|Grantha|Greek|Gujarati|Gurmukhi|Han|Hangul|Hanunoo|Hatran|Hebrew|Hiragana|Imperial_Aramaic|Inherited|Inscriptional_Pahlavi|Inscriptional_Parthian|Javanese|Kaithi|Kannada|Katakana|Kayah_Li|Kharoshthi|Khmer|Khojki|Khudawadi|Lao|Latin|Lepcha|Limbu|Linear_A|Linear_B|Lisu|Lycian|Lydian|Mahajani|Malayalam|Mandaic|Manichaean|Meetei_Mayek|Mende_Kikakui|Meroitic_Cursive|Meroitic_Hieroglyphs|Miao|Modi|Mongolian|Mro|Multani|Myanmar|Nabataean|New_Tai_Lue|Nko|Ogham|Ol_Chiki|Old_Hungarian|Old_Italic|Old_North_Arabian|Old_Permic|Old_Persian|Old_South_Arabian|Old_Turkic|Oriya|Osmanya|Pahawh_Hmong|Palmyrene|Pau_Cin_Hau|Phags_Pa|Phoenician|Psalter_Pahlavi|Rejang|Runic|Samaritan|Saurashtra|Sharada|Shavian|Siddham|SignWriting|Sinhala|Sora_Sompeng|Sundanese|Syloti_Nagri|Syriac|Tagalog|Tagbanwa|Tai_Le|Tai_Tham|Tai_Viet|Takri|Tamil|Telugu|Thaana|Thai|Tibetan|Tifinagh|Tirhuta|Ugaritic|Vai|Warang_Citi|Yi)\}"> 0037 <!-- Escaped Characters --> 0038 <!ENTITY escape8 "\\(?:Q.*\\E|c[a-zA-Z])"> 0039 <!-- Reserved characters --> 0040 <!ENTITY escape9 "\\[\ssSdDwWbBAZcCtrnaefvxhGHKNQRVXpPz\d]"> 0041 <!-- Punctuation Characters --> 0042 <!ENTITY escape10 "\\[[:punct:]]"> 0043 <!ENTITY escape11 "\\[\041-\057\072-\100\133-\140\173-\176]"> 0044 0045 <!-- References & Option Settings --> 0046 <!ENTITY group_bracket1 "\?(?:&|P[>\=])\w+(?=\))"> 0047 <!ENTITY group_bracket2 "\?(?:xx|[iJmnsUxR]|C\d*|C"[^\s"]*"|[\-\+]?\d+)(?=\))"> 0048 <!-- Conditional Patterns --> 0049 <!ENTITY group_bracket3 "\?\((?:Rn?|R&\w+|[\+\-]?\d+|<\w+>|'\w+'|VERSION>?\=\d+(?:\.\d+)*|\w+)\)"> 0050 <!ENTITY group_bracket4 "\?(?=\()"> 0051 0052 <!ENTITY mls_level_range_ident "&identifierWithArg;(?:\s*\:\s*&identifierWithArg;(?:\s*,\s*&identifierWithArg;)*)?"> 0053 ]> 0054 0055 <!-- 0056 SELinux Security Policies Syntax Highlighting Definition 0057 =========================================================================== 0058 0059 This file is part of the KDE's KSyntaxHighlighting framework. 0060 0061 SPDX-FileCopyrightText: 2018-2020 Nibaldo González S. <nibgonz@gmail.com> 0062 0063 SPDX-License-Identifier: MIT 0064 0065 =========================================================================== 0066 0067 Last update: checkpolicy 3.0 0068 Obtained from the SELinux checkpolicy parser: 0069 https://github.com/SELinuxProject/selinux/blob/master/checkpolicy/policy_parse.y 0070 https://github.com/SELinuxProject/selinux/blob/master/checkpolicy/policy_scan.l 0071 More details: 0072 https://selinuxproject.org/page/PolicyLanguage#Kernel_Policy_Language 0073 https://selinuxproject.org/page/Category:Notebook 0074 0075 NOTE: 0076 - This file is required by "selinux-cil.xml" and "selinux-fc.xml". 0077 - This file depends on "m4.xml" and "apparmor.xml" (used only to include keywords). 0078 - About file extensions: Only the most relevant policy build files and config. files 0079 are highlighted by default, since some have very generic names. Files with 0080 definition of file contexts are highlighted by "selinux-fc.xml". 0081 0082 Change log: 0083 * Version 5 [30-Sep-2020]: Use include-keywods and other minor changes. 0084 * Version 4 [09-Feb-2020]: Use non-capturing groups in RegExpr. 0085 * Version 3 [10-Dec-2019]: 0086 - Add "glblub" keyword (default_range). 0087 - Update permissions list. 0088 * Version 2 [09-Sep-2018]: 0089 - Update itemData's style for the new Solarized color schemes. 0090 * Version 1 [28-Aug-2018, by Nibaldo González]: 0091 - Initial version. Syntax based on checkpolicy v2.8. 0092 --> 0093 0094 <language name="SELinux Policy" 0095 version="9" 0096 kateversion="5.53" 0097 section="Sources" 0098 extensions="*.te;*.if;*.spt;policy.conf;access_vectors;mls;mcs;mls_macros;te_macros;policy_capabilities;seapp_contexts;port_contexts" 0099 priority="6" 0100 mimetype="" 0101 author="Nibaldo González (nibgonz@gmail.com)" 0102 license="MIT"> 0103 0104 <highlighting> 0105 0106 <list name="self"> 0107 <item>SELF</item> 0108 <item>self</item> 0109 </list> 0110 <list name="booleans"> 0111 <item>FALSE</item> 0112 <item>false</item> 0113 <item>TRUE</item> 0114 <item>true</item> 0115 </list> 0116 0117 <!-- Statements --> 0118 <list name="statements_access"> 0119 <item>ALLOW</item> 0120 <item>allow</item> 0121 <item>NEVERALLOW</item> 0122 <item>neverallow</item> 0123 <item>AUDITALLOW</item> 0124 <item>auditallow</item> 0125 <item>AUDITDENY</item> 0126 <item>auditdeny</item> 0127 <item>DONTAUDIT</item> 0128 <item>dontaudit</item> 0129 <item>ALLOWXPERM</item> 0130 <item>allowxperm</item> 0131 <item>AUDITALLOWXPERM</item> 0132 <item>auditallowxperm</item> 0133 <item>DONTAUDITXPERM</item> 0134 <item>dontauditxperm</item> 0135 <item>NEVERALLOWXPERM</item> 0136 <item>neverallowxperm</item> 0137 </list> 0138 <list name="statements"> 0139 <item>ATTRIBUTE</item> 0140 <item>attribute</item> 0141 <item>ATTRIBUTE_ROLE</item> 0142 <item>attribute_role</item> 0143 <item>BOOL</item> 0144 <item>bool</item> 0145 <item>CATEGORY</item> 0146 <item>category</item> 0147 <item>COMMON</item> 0148 <item>common</item> 0149 <item>DOMINANCE</item> 0150 <item>dominance</item> 0151 <item>EXPANDATTRIBUTE</item> 0152 <item>expandattribute</item> 0153 <item>MODULE</item> 0154 <item>module</item> 0155 <item>PERMISSIVE</item> 0156 <item>permissive</item> 0157 <item>ROLE</item> 0158 <item>role</item> 0159 <item>ROLEATTRIBUTE</item> 0160 <item>roleattribute</item> 0161 <item>SENSITIVITY</item> 0162 <item>sensitivity</item> 0163 <item>TUNABLE</item> 0164 <item>tunable</item> 0165 <item>TYPE</item> 0166 <item>type</item> 0167 <item>TYPEALIAS</item> 0168 <item>typealias</item> 0169 <item>TYPEATTRIBUTE</item> 0170 <item>typeattribute</item> 0171 <item>TYPEBOUNDS</item> 0172 <item>typebounds</item> 0173 <item>USER</item> 0174 <item>user</item> 0175 <!-- Conditional --> 0176 <item>IF</item> 0177 <item>if</item> 0178 <item>ELSE</item> 0179 <item>else</item> 0180 <item>require</item> 0181 <item>REQUIRE</item> 0182 <item>optional</item> 0183 <item>OPTIONAL</item> 0184 </list> 0185 <!-- Statements that contain definition of file contexts --> 0186 <list name="statements_fc"> 0187 <item>DEVICETREECON</item> 0188 <item>devicetreecon</item> 0189 <item>FS_USE_TASK</item> 0190 <item>fs_use_task</item> 0191 <item>FS_USE_TRANS</item> 0192 <item>fs_use_trans</item> 0193 <item>FS_USE_XATTR</item> 0194 <item>fs_use_xattr</item> 0195 <item>FSCON</item> 0196 <item>fscon</item> 0197 <item>GENFSCON</item> 0198 <item>genfscon</item> 0199 <item>IBENDPORTCON</item> 0200 <item>ibendportcon</item> 0201 <item>IBPKEYCON</item> 0202 <item>ibpkeycon</item> 0203 <item>IOMEMCON</item> 0204 <item>iomemcon</item> 0205 <item>IOPORTCON</item> 0206 <item>ioportcon</item> 0207 <item>NETIFCON</item> 0208 <item>netifcon</item> 0209 <item>NODECON</item> 0210 <item>nodecon</item> 0211 <item>PCIDEVICECON</item> 0212 <item>pcidevicecon</item> 0213 <item>PIRQCON</item> 0214 <item>pirqcon</item> 0215 <item>PORTCON</item> 0216 <item>portcon</item> 0217 <item>SID</item> 0218 <item>sid</item> 0219 </list> 0220 <list name="statements_def"> 0221 <item>CLASS</item> 0222 <item>class</item> 0223 </list> 0224 <list name="statements_mls_level_def"> 0225 <item>LEVEL</item> 0226 <item>level</item> 0227 </list> 0228 <!-- Statements with special contexts --> 0229 <list name="statements_policycap"> 0230 <item>POLICYCAP</item> 0231 <item>policycap</item> 0232 </list> 0233 <list name="statements_type"> 0234 <item>TYPE_CHANGE</item> 0235 <item>type_change</item> 0236 <item>TYPE_MEMBER</item> 0237 <item>type_member</item> 0238 <item>TYPE_TRANSITION</item> 0239 <item>type_transition</item> 0240 </list> 0241 <list name="statements_role_transition"> 0242 <item>ROLE_TRANSITION</item> 0243 <item>role_transition</item> 0244 </list> 0245 <list name="statements_range_transition"> 0246 <item>RANGE_TRANSITION</item> 0247 <item>range_transition</item> 0248 </list> 0249 <list name="statements_default"> 0250 <item>DEFAULT_USER</item> 0251 <item>default_user</item> 0252 <item>DEFAULT_ROLE</item> 0253 <item>default_role</item> 0254 <item>DEFAULT_TYPE</item> 0255 <item>default_type</item> 0256 </list> 0257 <list name="statements_default_range"> 0258 <item>DEFAULT_RANGE</item> 0259 <item>default_range</item> 0260 </list> 0261 <list name="statements_cexpr"> 0262 <item>CONSTRAIN</item> 0263 <item>constrain</item> 0264 <item>VALIDATETRANS</item> 0265 <item>validatetrans</item> 0266 <item>MLSCONSTRAIN</item> 0267 <item>mlsconstrain</item> 0268 <item>MLSVALIDATETRANS</item> 0269 <item>mlsvalidatetrans</item> 0270 </list> 0271 0272 <!-- Other reserved keywords --> 0273 <list name="keywords"> 0274 <item>ALIAS</item> 0275 <item>alias</item> 0276 <item>CLONE</item> <!-- Deprecated --> 0277 <item>clone</item> 0278 <item>INHERITS</item> 0279 <item>inherits</item> 0280 <item>ROLES</item> 0281 <item>roles</item> 0282 <item>TYPES</item> 0283 <item>types</item> 0284 </list> 0285 <list name="mls_range_def"> 0286 <item>RANGE</item> 0287 <item>range</item> 0288 </list> 0289 0290 <list name="source_target"> 0291 <item>SOURCE</item> 0292 <item>source</item> 0293 <item>TARGET</item> 0294 <item>target</item> 0295 </list> 0296 <list name="sameuser"> 0297 <item>SAMEUSER</item> 0298 <item>sameuser</item> 0299 </list> 0300 <list name="range"> 0301 <item>low-high</item> 0302 <item>LOW-HIGH</item> 0303 <item>high</item> 0304 <item>HIGH</item> 0305 <item>low</item> 0306 <item>LOW</item> 0307 <item>glblub</item> 0308 <item>GLBLUB</item> 0309 </list> 0310 0311 <list name="cond_operators"> 0312 <item>OR</item> 0313 <item>or</item> 0314 <item>AND</item> 0315 <item>and</item> 0316 <item>NOT</item> 0317 <item>not</item> 0318 <item>xor</item> 0319 <item>XOR</item> 0320 <item>eq</item> 0321 <item>EQ</item> 0322 </list> 0323 <list name="cexpr_operators"> 0324 <item>eq</item> 0325 <item>EQ</item> 0326 <item>dom</item> 0327 <item>DOM</item> 0328 <item>domby</item> 0329 <item>DOMBY</item> 0330 <item>INCOMP</item> 0331 <item>incomp</item> 0332 </list> 0333 <list name="cexpr_keywords"> 0334 <item>r1</item> 0335 <item>R1</item> 0336 <item>r2</item> 0337 <item>R2</item> 0338 <item>r3</item> 0339 <item>R3</item> 0340 <item>u1</item> 0341 <item>U1</item> 0342 <item>u2</item> 0343 <item>U2</item> 0344 <item>u3</item> 0345 <item>U3</item> 0346 <item>t1</item> 0347 <item>T1</item> 0348 <item>t2</item> 0349 <item>T2</item> 0350 <item>t3</item> 0351 <item>T3</item> 0352 <item>l1</item> 0353 <item>L1</item> 0354 <item>l2</item> 0355 <item>L2</item> 0356 <item>h1</item> 0357 <item>H1</item> 0358 <item>h2</item> 0359 <item>H2</item> 0360 </list> 0361 0362 <!-- Policy Capabilities: /sys/fs/selinux/policy_capabilities/ 0363 More details: https://selinuxproject.org/page/NB_LSM#SELinux_Filesystem --> 0364 <list name="policy_capabilities"> 0365 <item>always_check_network</item> 0366 <item>always_use_network</item> 0367 <item>cgroup_seclabel</item> 0368 <item>extended_socket_class</item> 0369 <item>network_peer_controls</item> 0370 <item>nnp_nosuid_transition</item> 0371 <item>open_perms</item> 0372 <item>redhat1</item> 0373 </list> 0374 0375 <!-- Access Vectors Permissions. 0376 More details: 0377 https://selinuxproject.org/page/ObjectClassesPerms 0378 Permissions & Classes: 0379 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/security/selinux/include/classmap.h 0380 https://github.com/SELinuxProject/refpolicy/blob/master/policy/flask/access_vectors --> 0381 <list name="av_permissions"> 0382 <item>accept</item> 0383 <item>acceptfrom</item> 0384 <item>access</item> 0385 <item>acquire_svc</item> 0386 <item>add</item> 0387 <item>add_child</item> 0388 <item>add_color</item> 0389 <item>add_glyph</item> 0390 <item>add_name</item> 0391 <item>admin</item> 0392 <item>append</item> 0393 <item>associate</item> 0394 <item>association</item> 0395 <item>attach_queue</item> 0396 <item>audit_access</item> 0397 <item>audit_control</item> 0398 <item>audit_read</item> 0399 <item>audit_write</item> 0400 <item>bell</item> 0401 <item>bind</item> 0402 <item>blend</item> 0403 <item>block_suspend</item> 0404 <item>call</item> 0405 <item>check_context</item> 0406 <item>chfn</item> 0407 <item>chown</item> 0408 <item>chsh</item> 0409 <item>compute_av</item> 0410 <item>compute_create</item> 0411 <item>compute_member</item> 0412 <item>compute_relabel</item> 0413 <item>compute_user</item> 0414 <item>connect</item> 0415 <item>connectto</item> 0416 <item>contains</item> 0417 <item>copy</item> 0418 <item>create</item> 0419 <item>create_files_as</item> 0420 <item>crontab</item> 0421 <item>dac_override</item> 0422 <item>dac_read_search</item> 0423 <item>dccp_recv</item> 0424 <item>dccp_send</item> 0425 <item>debug</item> 0426 <item>delete</item> 0427 <item>destroy</item> 0428 <item>disable</item> 0429 <item>drop</item> 0430 <item>dyntransition</item> 0431 <item>egress</item> 0432 <item>enable</item> 0433 <item>enforce_dest</item> 0434 <item>enqueue</item> 0435 <item>entrypoint</item> 0436 <item>execheap</item> 0437 <item>execmem</item> 0438 <item>execmod</item> 0439 <item>execstack</item> 0440 <item>execute</item> 0441 <item>execute_no_trans</item> 0442 <item>expand</item> 0443 <item>export</item> 0444 <item>force_cursor</item> 0445 <item>fork</item> 0446 <item>forward_in</item> 0447 <item>forward_out</item> 0448 <item>fowner</item> 0449 <item>freeze</item> 0450 <item>fsetid</item> 0451 <item>get_property</item> 0452 <item>get_value</item> 0453 <item>getattr</item> 0454 <item>getcap</item> 0455 <item>getfocus</item> 0456 <item>getgrp</item> 0457 <item>gethost</item> 0458 <item>getopt</item> 0459 <item>getpgid</item> 0460 <item>getpwd</item> 0461 <item>getrlimit</item> 0462 <item>getsched</item> 0463 <item>getserv</item> 0464 <item>getsession</item> 0465 <item>getstat</item> 0466 <item>grab</item> 0467 <item>halt</item> 0468 <item>hide</item> 0469 <item>hide_cursor</item> 0470 <item>impersonate</item> 0471 <item>implement</item> 0472 <item>import</item> 0473 <item>ingress</item> 0474 <item>insert</item> 0475 <item>install</item> 0476 <item>install_module</item> 0477 <item>ioctl</item> 0478 <item>ipc_info</item> 0479 <item>ipc_lock</item> 0480 <item>ipc_owner</item> 0481 <item>kill</item> 0482 <item>lease</item> 0483 <item>link</item> 0484 <item>linux_immutable</item> 0485 <item>list_child</item> 0486 <item>list_property</item> 0487 <item>listen</item> 0488 <item>load_module</item> 0489 <item>load_policy</item> 0490 <item>lock</item> 0491 <item>mac_admin</item> 0492 <item>mac_override</item> <!-- Unused by SELinux --> 0493 <item>manage</item> 0494 <item>manage_subnet</item> 0495 <item>map</item> 0496 <item>map_create</item> 0497 <item>map_read</item> 0498 <item>map_write</item> 0499 <item>mknod</item> 0500 <item>mmap_zero</item> 0501 <item>module_load</item> 0502 <item>module_request</item> 0503 <item>mount</item> 0504 <item>mounton</item> 0505 <item>name_bind</item> 0506 <item>name_connect</item> 0507 <item>net_admin</item> 0508 <item>net_bind_service</item> 0509 <item>net_broadcast</item> 0510 <item>net_raw</item> 0511 <item>newconn</item> 0512 <item>next_value</item> 0513 <item>nlmsg_read</item> 0514 <item>nlmsg_readpriv</item> 0515 <item>nlmsg_relay</item> 0516 <item>nlmsg_tty_audit</item> 0517 <item>nlmsg_write</item> 0518 <item>nnp_transition</item> 0519 <item>noatsecure</item> 0520 <item>node_bind</item> 0521 <item>nosuid_transition</item> 0522 <item>open</item> 0523 <item>override</item> 0524 <item>passwd</item> 0525 <item>paste</item> 0526 <item>paste_after_confirm</item> 0527 <item>polmatch</item> 0528 <item>prog_load</item> 0529 <item>prog_run</item> 0530 <item>ptrace</item> 0531 <item>query</item> 0532 <item>quotaget</item> 0533 <item>quotamod</item> 0534 <item>quotaon</item> 0535 <item>rawip_recv</item> 0536 <item>rawip_send</item> 0537 <item>read</item> 0538 <item>read_policy</item> 0539 <item>reboot</item> 0540 <item>receive</item> 0541 <item>record</item> 0542 <item>recv</item> 0543 <item>recv_msg</item> 0544 <item>recvfrom</item> 0545 <item>relabelfrom</item> 0546 <item>relabelto</item> 0547 <item>reload</item> 0548 <item>remount</item> 0549 <item>remove</item> 0550 <item>remove_child</item> 0551 <item>remove_color</item> 0552 <item>remove_glyph</item> 0553 <item>remove_name</item> 0554 <item>rename</item> 0555 <item>reparent</item> 0556 <item>rlimitinh</item> 0557 <item>rmdir</item> 0558 <item>rootok</item> 0559 <item>saver_getattr</item> 0560 <item>saver_hide</item> 0561 <item>saver_setattr</item> 0562 <item>saver_show</item> 0563 <item>search</item> 0564 <item>select</item> 0565 <item>send</item> 0566 <item>send_msg</item> 0567 <item>sendto</item> 0568 <item>set_context_mgr</item> 0569 <item>set_property</item> 0570 <item>set_value</item> 0571 <item>setattr</item> 0572 <item>setbool</item> 0573 <item>setcap</item> 0574 <item>setcheckreqprot</item> 0575 <item>setcontext</item> 0576 <item>setcurrent</item> 0577 <item>setenforce</item> 0578 <item>setexec</item> 0579 <item>setfcap</item> 0580 <item>setfocus</item> 0581 <item>setfscreate</item> 0582 <item>setgid</item> 0583 <item>setkeycreate</item> 0584 <item>setopt</item> 0585 <item>setpcap</item> 0586 <item>setpgid</item> 0587 <item>setrlimit</item> 0588 <item>setsched</item> 0589 <item>setsecparam</item> 0590 <item>setsockcreate</item> 0591 <item>setuid</item> 0592 <item>share</item> 0593 <item>shmemgrp</item> 0594 <item>shmemhost</item> 0595 <item>shmempwd</item> 0596 <item>shmemserv</item> 0597 <item>show</item> 0598 <item>show_cursor</item> 0599 <item>shutdown</item> 0600 <item>sigchld</item> 0601 <item>siginh</item> 0602 <item>sigkill</item> 0603 <item>signal</item> 0604 <item>signull</item> 0605 <item>sigstop</item> 0606 <item>start</item> 0607 <item>status</item> 0608 <item>stop</item> 0609 <item>swapon</item> 0610 <item>sys_admin</item> 0611 <item>sys_boot</item> 0612 <item>sys_chroot</item> 0613 <item>sys_module</item> 0614 <item>sys_nice</item> 0615 <item>sys_pacct</item> 0616 <item>sys_ptrace</item> 0617 <item>sys_rawio</item> 0618 <item>sys_resource</item> 0619 <item>sys_time</item> 0620 <item>sys_tty_config</item> 0621 <item>syslog</item> 0622 <item>syslog_console</item> 0623 <item>syslog_mod</item> 0624 <item>syslog_read</item> 0625 <item>tcp_recv</item> 0626 <item>tcp_send</item> 0627 <item>transfer</item> 0628 <item>transition</item> 0629 <item>udp_recv</item> 0630 <item>udp_send</item> 0631 <item>uninstall</item> 0632 <item>unix_read</item> 0633 <item>unix_write</item> 0634 <item>unlink</item> 0635 <item>unmount</item> 0636 <item>unused_perm</item> 0637 <item>update</item> 0638 <item>use</item> 0639 <item>use_as_override</item> 0640 <item>validate_trans</item> 0641 <item>view</item> 0642 <item>wake_alarm</item> 0643 <item>watch</item> 0644 <item>watch_mount</item> 0645 <item>watch_reads</item> 0646 <item>watch_sb</item> 0647 <item>watch_with_perm</item> 0648 <item>write</item> 0649 <!-- Deprecated: flow_in, flow_out, get_param, set_param --> 0650 </list> 0651 0652 <!-- Additional AV Permissions for Android. 0653 Permissions & Classes: 0654 https://android.googlesource.com/platform/system/sepolicy/+/master/private/access_vectors 0655 https://android.googlesource.com/platform/system/security/+/master/keystore/permissions.cpp 0656 More details: 0657 https://selinuxproject.org/page/NB_SEforAndroid_1#Android_Classes_and_Permissions --> 0658 <list name="av_permissions_android"> 0659 <item>add_auth</item> 0660 <item>clear_uid</item> 0661 <item>closeDecryptSession</item> 0662 <item>consumeRights</item> 0663 <item>decrypt</item> 0664 <item>duplicate</item> 0665 <item>exist</item> 0666 <item>finalizeDecryptUnit</item> 0667 <item>find</item> 0668 <item>gen_unique_id</item> 0669 <item>get</item> 0670 <item>get_state</item> 0671 <item>grant</item> 0672 <item>initializeDecryptUnit</item> 0673 <item>is_empty</item> 0674 <item>list</item> 0675 <item>openDecryptSession</item> 0676 <item>password</item> 0677 <item>pread</item> 0678 <item>reset</item> 0679 <item>set</item> 0680 <item>setPlaybackStatus</item> 0681 <item>sign</item> 0682 <item>unlock</item> 0683 <item>user_changed</item> 0684 <item>verify</item> 0685 </list> 0686 0687 <!-- FS & VFS Types --> 0688 <list name="filesystem"> 0689 <include>rule_mount_fstypes##AppArmor Security Profile</include> 0690 </list> 0691 0692 <!-- Keywords/Functions provided by SELinux Reference Policy --> 0693 <list name="refpolicy_keywords"> 0694 <item>policy_module</item> 0695 <item>gen_require</item> 0696 <item>template</item> 0697 <item>interface</item> 0698 <item>optional_policy</item> 0699 <item>gen_tunable</item> 0700 <item>tunable_policy</item> 0701 <item>gen_user</item> 0702 <item>gen_context</item> 0703 <item>gen_bool</item> 0704 <item>gen_cats</item> 0705 <item>gen_sens</item> 0706 <item>gen_levels</item> 0707 <item>mls_systemlow</item> 0708 <item>mls_systemhigh</item> 0709 <item>mcs_systemlow</item> 0710 <item>mcs_systemhigh</item> 0711 <item>mcs_allcats</item> 0712 <item>ifndef</item> 0713 </list> 0714 0715 <!-- M4 Built-in Keywords (obtained from "m4.xml") --> 0716 <list name="m4_builtin"> 0717 <include>builtins##GNU M4</include> 0718 <include>m4_builtins##GNU M4</include> 0719 </list> 0720 <list name="m4_builtin_regexp"> 0721 <item>regexp</item> 0722 <item>patsubst</item> 0723 <item>m4_regexp</item> 0724 <item>m4_patsubst</item> 0725 </list> 0726 0727 <contexts> 0728 0729 <context name="_normal" attribute="Normal Text" lineEndContext="#stay"> 0730 <IncludeRules context="_m4_preprocessor"/> 0731 <IncludeRules context="_find_all_comments"/> 0732 <IncludeRules context="_m4_special_arguments"/> 0733 0734 <!-- Content Quoted (M4). 0735 NOTE: The default quotes (`text') are highlighted, 0736 but another type of quotation mark can be used. --> 0737 <IncludeRules context="_m4_string_simple"/> <!-- `simple text' --> 0738 <IncludeRules context="_m4_quotes"/> <!-- &m4Quotes; --> 0739 0740 <DetectChar context="_quoted" attribute="Text Quoted" char="""/> 0741 <DetectChar context="_path" attribute="Path" char="/"/> 0742 <RegExpr context="_input_sel" attribute="Input Selector" String="\b&identifier;(?=\s*\=\s*[^\s\=,;\}\)\]#!\^:])"/> 0743 0744 <!-- Keywords & Statements --> 0745 <keyword context="#stay" attribute="Booleans" String="booleans"/> 0746 <keyword context="#stay" attribute="Special Keys" String="self"/> 0747 <keyword context="_statement_policycap" attribute="Policy Config. Statements" String="statements_policycap"/> 0748 <!-- Highlight class --> 0749 <keyword context="_statement_find_class" attribute="Access Keys" String="statements_access"/> 0750 <keyword context="_statement_find_class" attribute="Statements" String="statements_type"/> 0751 <keyword context="_statement_find_class" attribute="Statements" String="statements_role_transition"/> 0752 <!-- Special contexts in statements --> 0753 <keyword context="_statement_range_transition" attribute="Statements" String="statements_range_transition"/> 0754 <keyword context="_statement_default" attribute="Statements" String="statements_default"/> 0755 <keyword context="_statement_default_range" attribute="Statements" String="statements_default_range"/> 0756 <keyword context="_statement_cexpr" attribute="Statements" String="statements_cexpr"/> 0757 <!-- Detect identifier after statement --> 0758 <keyword context="_find_identifier" attribute="Statements" String="statements_def"/> 0759 <keyword context="_find_mls_level" attribute="Statements" String="statements_mls_level_def"/> 0760 <keyword context="_find_mls_level_range" attribute="Statements" String="mls_range_def"/> 0761 0762 <keyword context="#stay" attribute="Statements" String="statements"/> 0763 <keyword context="#stay" attribute="Statements" String="statements_fc"/> 0764 <keyword context="#stay" attribute="Statements" String="keywords"/> 0765 <keyword context="#stay" attribute="Expression Keys" String="cond_operators"/> 0766 0767 <!-- Keywords/Functions of M4 & Reference Policy --> 0768 <WordDetect context="_function_gen_context" attribute="Refpolicy Keywords" String="gen_context"/> 0769 <keyword context="#stay" attribute="Refpolicy Keywords" String="refpolicy_keywords"/> 0770 <IncludeRules context="_m4_builtin_keywords"/> 0771 <RegExpr context="#stay" attribute="Function" String="\b&identifier;(?=\()"/> 0772 0773 <!-- IP Addresses --> 0774 <IncludeRules context="_ip_addr"/> 0775 0776 <!-- Keywords: Access Vectors Permissions & Filesystem --> 0777 <IncludeRules context="_av_permissions"/> 0778 <keyword context="#stay" attribute="Filesystem" String="filesystem"/> 0779 0780 <!-- Boolean Operators --> 0781 <Detect2Chars context="#stay" attribute="Boolean Operators" char="=" char1="="/> 0782 <Detect2Chars context="#stay" attribute="Boolean Operators" char="!" char1="="/> 0783 <Detect2Chars context="#stay" attribute="Boolean Operators" char="&" char1="&"/> 0784 <Detect2Chars context="#stay" attribute="Boolean Operators" char="|" char1="|"/> 0785 <AnyChar context="#stay" attribute="Boolean Operators" String="!^"/> 0786 0787 <!-- Symbols/Operators --> 0788 <DetectChar context="#stay" attribute="Operator" char="{" beginRegion="Bracket"/> 0789 <DetectChar context="#stay" attribute="Operator" char="}" endRegion="Bracket"/> 0790 <DetectChar context="#stay" char="(" beginRegion="ParenthesesBlock"/> 0791 <DetectChar context="#stay" char=")" endRegion="ParenthesesBlock"/> 0792 0793 <Detect2Chars context="#stay" attribute="Operator" char="-" char1=">"/> 0794 <AnyChar context="#stay" attribute="Operator" String="~[]"/> 0795 <AnyChar context="#stay" attribute="Symbol" String=",;:-"/> 0796 0797 <IncludeRules context="_common_special_char"/> 0798 <IncludeRules context="_line_continue_escape"/> 0799 0800 <!-- File Contexts --> 0801 <RegExpr context="_file_contexts" attribute="File Contexts" String="\b&identifierWithArg;(?:\:&identifierWithArg;){2}(?:\:&mlsLevel;(?:\s*\-\s*&mlsLevel;)?)?\b" lookAhead="true"/> 0802 0803 <!-- This avoids highlighting numbers in identifiers --> 0804 <RegExpr context="#stay" String="&identifier;"/> 0805 <!-- Numbers --> 0806 <RegExpr context="#stay" attribute="Number" String="\b&versionIdentifier;"/> 0807 <HlCHex context="#stay" attribute="Hexadecimal"/> 0808 <Float context="#stay" attribute="Number"/> 0809 <Int context="#stay" attribute="Number"/> 0810 0811 <RegExpr context="#stay" attribute="Reserved Keywords" String="(?:\s|^)\-[bcdpls\-](?=\s|$)"/> 0812 <DetectChar context="#stay" attribute="Symbol" char="."/> 0813 </context> 0814 0815 <!-- Statements --> 0816 0817 <!-- Highlight class after ":", in some statements --> 0818 <context name="_statement_find_class" attribute="Normal Text" lineEndContext="#stay"> 0819 <DetectChar context="#pop!_class" attribute="Symbol" char=":"/> 0820 <DetectChar context="#pop" attribute="Symbol" char=";" lookAhead="true"/> <!-- End rule --> 0821 <IncludeRules context="_normal"/> 0822 </context> 0823 <context name="_class" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 0824 <!-- Class --> 0825 <RegExpr context="#pop" attribute="Class" String="\s*&identifier;(?=[^:\w\-\.,]|$)"/> 0826 </context> 0827 0828 <!-- Special keywords in some statements --> 0829 <context name="_statement_default" attribute="Normal Text" lineEndContext="#stay"> 0830 <keyword context="#stay" attribute="Reserved Keywords" String="source_target"/> 0831 <DetectChar context="#pop" attribute="Symbol" char=";" lookAhead="true"/> 0832 <IncludeRules context="_normal"/> 0833 </context> 0834 <context name="_statement_default_range" attribute="Normal Text" lineEndContext="#stay"> 0835 <keyword context="#stay" attribute="Range" String="range"/> 0836 <IncludeRules context="_statement_default"/> 0837 </context> 0838 <context name="_statement_cexpr" attribute="Normal Text" lineEndContext="#stay"> 0839 <keyword context="#stay" attribute="Expression Keys" String="cexpr_operators"/> 0840 <keyword context="#stay" attribute="Special Keys" String="cexpr_keywords"/> 0841 <keyword context="#stay" attribute="Reserved Keywords" String="source_target"/> 0842 <keyword context="#stay" attribute="Reserved Keywords" String="sameuser"/> 0843 <DetectChar context="#pop" attribute="Symbol" char=";" lookAhead="true"/> 0844 <IncludeRules context="_normal"/> 0845 </context> 0846 <context name="_statement_policycap" attribute="Normal Text" lineEndContext="#stay"> 0847 <keyword context="#stay" attribute="Policy Capability" String="policy_capabilities"/> 0848 <DetectChar context="#pop" attribute="Symbol" char=";" lookAhead="true"/> 0849 <IncludeRules context="_normal"/> 0850 </context> 0851 0852 <!-- RANGE_TRANSITION: Highlight level/range and fix class after ":" --> 0853 <context name="_statement_range_transition" attribute="Normal Text" lineEndContext="#stay"> 0854 <DetectChar context="#pop" attribute="Symbol" char=";" lookAhead="true"/> 0855 <RegExpr context="_class_range_transition_statement" String="&identifierWithArg;\s*:\s*&identifierWithArg;\s+[a-zA-Z\$]" lookAhead="true"/> 0856 0857 <RegExpr context="#pop!_mls_level_range" String="&mls_level_range_ident;\s+\-\s+&identifierWithArg;|&mls_level_range_ident;(?:\s*\-\s*&mls_level_range_ident;)?(?=\s*;)" lookAhead="true" minimal="1"/> 0858 <IncludeRules context="_normal"/> 0859 </context> 0860 <context name="_class_range_transition_statement" attribute="Normal Text" lineEndContext="#pop"> 0861 <DetectChar context="#pop!_class" attribute="Symbol" char=":"/> 0862 <IncludeRules context="_m4_special_arguments"/> 0863 <keyword context="#stay" attribute="Special Keys" String="self"/> 0864 </context> 0865 0866 <!-- Detect identifier (highlight it as "Normal Text") --> 0867 <context name="_find_identifier" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop"> 0868 <IncludeRules context="_default_find_identifier"/> 0869 <RegExpr context="#pop" attribute="Normal Text" String="&identifier;"/> 0870 </context> 0871 <context name="_default_find_identifier" attribute="Normal Text" lineEndContext="#stay"> 0872 <DetectSpaces context="#stay"/> 0873 <IncludeRules context="_m4_preprocessor"/> 0874 <IncludeRules context="_find_all_comments"/> 0875 <RegExpr context="#pop" attribute="Function" String="\b&identifier;(?=\()" lookAhead="true"/> 0876 </context> 0877 0878 <!-- Detect MLS/MCS Level (s0.s1:c0,c1) --> 0879 <context name="_find_mls_level" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop"> 0880 <IncludeRules context="_default_find_identifier"/> 0881 <RegExpr context="#pop!_mls_level" String="&identifierWithArg;" lookAhead="true" minimal="1"/> 0882 </context> 0883 <!-- Detect MLS/MCS Range (s0:c0 - s1:c1) --> 0884 <context name="_find_mls_level_range" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop"> 0885 <IncludeRules context="_default_find_identifier"/> 0886 <RegExpr context="#pop!_mls_level_range" String="&identifierWithArg;" lookAhead="true" minimal="1"/> 0887 </context> 0888 <!-- MLS/MCS Range: Sensitivity:Category - Sensitivity:Category --> 0889 <context name="_mls_level_range" attribute="MLS/MCS Level/Range" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 0890 <RegExpr context="#pop!_mls_level_range_cat" attribute="Symbol" String=":(?=&identifierWithArg;)"/> <!-- Find Category --> 0891 <RegExpr context="#pop!_mls_level" attribute="Symbol" String="\s*\-\s*(?=&mlsLevel;)"/> <!-- Find Range --> 0892 <RegExpr context="#stay" attribute="Symbol" String="\.(?=&identifierWithArg;)"/> 0893 <IncludeRules context="_default_mls_level"/> 0894 </context> 0895 <context name="_mls_level_range_cat" attribute="MLS/MCS Level/Range" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 0896 <RegExpr context="#pop!_mls_level" attribute="Symbol" String="\s*\-\s*(?=&mlsLevel;)"/> <!-- Find Range --> 0897 <RegExpr context="#stay" attribute="Symbol" String="(?:\.|\s*,\s*)(?=&identifierWithArg;)"/> 0898 <IncludeRules context="_default_mls_level"/> 0899 </context> 0900 <!-- MLS/MCS Level: Sensitivity:Category --> 0901 <context name="_mls_level" attribute="MLS/MCS Level/Range" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 0902 <RegExpr context="#pop!_mls_level_cat" attribute="Symbol" String=":(?=&identifierWithArg;)"/> <!-- Find Category --> 0903 <RegExpr context="#stay" attribute="Symbol" String="\.(?=&identifierWithArg;)"/> 0904 <IncludeRules context="_default_mls_level"/> 0905 </context> 0906 <context name="_mls_level_cat" attribute="MLS/MCS Level/Range" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 0907 <RegExpr context="#stay" attribute="Symbol" String="(?:\.|\s*,\s*)(?=&identifierWithArg;)"/> 0908 <IncludeRules context="_default_mls_level"/> 0909 </context> 0910 <context name="_default_mls_level" attribute="MLS/MCS Level/Range" lineEndContext="#pop"> 0911 <RegExpr context="#stay" attribute="MLS/MCS Level/Range" String="\w+"/> 0912 <DetectChar context="#stay" attribute="MLS/MCS Level/Range" char="-"/> 0913 <IncludeRules context="_m4_special_arguments"/> 0914 </context> 0915 0916 <!-- Double Quotes String (does not support line breaks and line continuation escape) --> 0917 <context name="_quoted" attribute="Text Quoted" 0918 lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!_filename_quoted"> 0919 <RegExpr context="#pop!_path_quoted" attribute="Text Quoted" String="[^"/]*/" lookAhead="true"/> <!-- Find path --> 0920 </context> 0921 <context name="_filename_quoted" attribute="Text Quoted" lineEndContext="#pop"> 0922 <DetectChar context="#pop" attribute="Text Quoted" char="""/> 0923 <IncludeRules context="_m4_special_arguments"/> 0924 <RegExpr context="#stay" attribute="Text Quoted Open" String="[^\s"\\](?=\s*$)"/> 0925 </context> 0926 <context name="_path_quoted" attribute="Text Quoted" lineEndContext="#pop"> 0927 <DetectChar context="#pop" attribute="Text Quoted" char="""/> 0928 <!-- Quote escaped is not allowed? (see line 260-261 in "selinux/checkpolicy/policy_scan.l") --> 0929 <IncludeRules context="_m4_special_arguments"/> 0930 <IncludeRules context="_regex_quoted"/> 0931 <RegExpr context="#stay" attribute="Text Quoted Open" String="[^\s"\[\(\\](?=\s*$)"/> 0932 </context> 0933 0934 <!-- Path --> 0935 <context name="_path" attribute="Path" lineEndContext="#pop"> 0936 <DetectSpaces context="#pop" lookAhead="true"/> 0937 <IncludeRules context="_m4_special_arguments"/> 0938 <IncludeRules context="_regex"/> 0939 </context> 0940 0941 <!-- Input Selectors: selector=value 0942 NOTE: "seapp_contexts" in the Android policy use this. --> 0943 <context name="_input_sel" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 0944 <DetectSpaces context="#stay"/> 0945 <DetectChar context="#stay" attribute="Symbol" char="="/> 0946 <keyword context="#pop" attribute="Booleans" String="booleans"/> 0947 <keyword context="#pop" attribute="Special Keys" String="self"/> 0948 <DetectChar context="#pop" char=""" lookAhead="true"/> 0949 <RegExpr context="#pop" attribute="Normal Text" String="&identifier;(?=[,;]?(?:\s|$))"/> 0950 <!-- Find RegExp --> 0951 <AnyChar context="#pop!_path" String="[(" lookAhead="true"/> 0952 <RegExpr context="#pop!_path" String="[^\=\s"\{\}\[\]\(\);#]+[\{\[\(\*\+\?]|[^\=\s"\{\}\[\]\(\);#\d]+\." lookAhead="true"/> 0953 </context> 0954 0955 <!-- Special functions of Refpolicy --> 0956 <context name="_function_gen_context" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 0957 <DetectChar context="#pop!_function_gen_context_find_fc" attribute="Normal Text" char="(" beginRegion="ParenthesesBlock"/> 0958 </context> 0959 <context name="_function_gen_context_find_fc" attribute="File Contexts" 0960 lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!_function_gen_context_content"> 0961 <RegExpr context="_file_contexts" String="&identifierWithArg;(?:\:&identifierWithArg;){2}\b" lookAhead="true"/> 0962 <DetectSpaces context="#stay"/> 0963 </context> 0964 <context name="_function_gen_context_content" attribute="File Contexts" lineEndContext="#pop"> 0965 <DetectChar context="#pop" attribute="Normal Text" char=")" endRegion="ParenthesesBlock"/> 0966 <AnyChar context="#stay" attribute="Normal Text" String=".:-"/> 0967 <AnyChar context="#stay" attribute="Symbol" String=",;"/> 0968 <IncludeRules context="_m4_special_arguments"/> 0969 <IncludeRules context="_find_all_comments"/> 0970 <IncludeRules context="_common_special_char"/> 0971 <IncludeRules context="_line_continue_escape"/> 0972 </context> 0973 0974 <!-- File Contexts. 0975 NOTE: File contexts with spaces before and after each ":" are not highlighted. --> 0976 <!-- user:role:type --> 0977 <context name="_file_contexts" attribute="File Contexts" lineEndContext="#pop"> 0978 <DetectChar context="#pop!_fc_role" attribute="Symbol" char=":"/> 0979 <IncludeRules context="_m4_special_arguments"/> 0980 </context> 0981 <context name="_fc_role" attribute="File Contexts" lineEndContext="#pop"> 0982 <DetectChar context="#pop!_fc_type" attribute="Symbol" char=":"/> 0983 <IncludeRules context="_m4_special_arguments"/> 0984 </context> 0985 <context name="_fc_type" attribute="File Contexts (Type Enforcement)" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!_after_fc"> 0986 <RegExpr context="#pop!_fc_level_range" attribute="Symbol" String=":(?=&mlsLevel;)"/> <!-- Find Level/Range --> 0987 <RegExpr context="#stay" attribute="File Contexts (Type Enforcement)" String="\.?[\w\-]+|\.(?=\$)"/> 0988 <IncludeRules context="_m4_special_arguments"/> 0989 </context> 0990 <!-- (MLS/MCS) user:role:type:level --> 0991 <context name="_fc_level_range" attribute="File Contexts" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!_after_fc"> 0992 <RegExpr context="#pop!_fc_level_range_cat" attribute="Symbol" String=":(?=&identifierWithArg;)"/> <!-- Find Category --> 0993 <RegExpr context="#pop!_fc_level" attribute="Symbol" String="\s*\-\s*(?=&mlsLevel;)"/> <!-- Find Range --> 0994 <RegExpr context="#stay" attribute="Symbol" String="\.(?=&identifierWithArg;)"/> 0995 <IncludeRules context="_default_fc_level"/> 0996 </context> 0997 <context name="_fc_level_range_cat" attribute="File Contexts" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!_after_fc"> 0998 <RegExpr context="#pop!_fc_level" attribute="Symbol" String="\s*\-\s*(?=&mlsLevel;)"/> <!-- Find Range --> 0999 <RegExpr context="#stay" attribute="Symbol" String="(?:\.|\s*,\s*)(?=&identifierWithArg;)"/> 1000 <IncludeRules context="_default_fc_level"/> 1001 </context> 1002 <!-- (MLS/MCS) user:role:type:level-level --> 1003 <context name="_fc_level" attribute="File Contexts" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!_after_fc"> 1004 <RegExpr context="#pop!_fc_level_cat" attribute="Symbol" String=":(?=&identifierWithArg;)"/> <!-- Find Category --> 1005 <RegExpr context="#stay" attribute="Symbol" String="\.(?=&identifierWithArg;)"/> 1006 <IncludeRules context="_default_fc_level"/> 1007 </context> 1008 <context name="_fc_level_cat" attribute="File Contexts" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!_after_fc"> 1009 <RegExpr context="#stay" attribute="Symbol" String="(?:\.|\s*,\s*)(?=&identifierWithArg;)"/> 1010 <IncludeRules context="_default_fc_level"/> 1011 </context> 1012 <context name="_default_fc_level" attribute="File Contexts" lineEndContext="#pop"> 1013 <RegExpr context="#stay" attribute="File Contexts" String="\w+"/> 1014 <DetectChar context="#stay" attribute="File Contexts" char="-"/> 1015 <IncludeRules context="_m4_special_arguments"/> 1016 </context> 1017 1018 <context name="_after_fc" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 1019 <RegExpr context="#stay" attribute="Symbol" String=":(?=&identifierWithArg;)"/> 1020 <RegExpr context="#stay" attribute="Normal Text" String="&identifier;"/> 1021 <IncludeRules context="_m4_special_arguments"/> 1022 </context> 1023 1024 <!-- 1025 ======================================== 1026 Comments & Documentation 1027 ======================================== --> 1028 1029 <context name="_find_comments" attribute="Normal Text" lineEndContext="#stay"> 1030 <Detect2Chars context="_doc_comment" attribute="Documentation" char="#" char1="#"/> 1031 <DetectChar context="_comment" attribute="Comment" char="#"/> 1032 </context> 1033 <context name="_find_all_comments" attribute="Normal Text" lineEndContext="#stay"> 1034 <IncludeRules context="_find_comments"/> 1035 <!-- For Macros --> 1036 <RegExpr context="_comment" attribute="Comment" String="\bdnl(?!\.?[\w\-])"/> 1037 </context> 1038 1039 <context name="_comment" attribute="Comment" lineEndContext="#pop"> 1040 <DetectSpaces /> 1041 <LineContinue context="#pop" attribute="Comment"/> 1042 <IncludeRules context="##Comments"/> 1043 <IncludeRules context="_default_comment"/> 1044 </context> 1045 <context name="_doc_comment" attribute="Documentation" lineEndContext="#pop"> 1046 <IncludeRules context="_find_tags"/> 1047 <IncludeRules context="_find_entityrefs"/> 1048 <LineContinue context="#pop" attribute="Documentation"/> 1049 <IncludeRules context="_comment"/> 1050 </context> 1051 1052 <context name="_find_tags" attribute="Documentation" lineEndContext="#pop"> 1053 <RegExpr context="_element_tag" attribute="Doc. Element Tag" String="<\s*&tagName;" beginRegion="DocElement"/> 1054 <RegExpr context="#stay" attribute="Doc. Element Tag" String="</\s*&tagName;\s*>" endRegion="DocElement"/> 1055 </context> 1056 <context name="_find_entityrefs" attribute="Documentation" lineEndContext="#pop"> 1057 <RegExpr context="#stay" attribute="Doc. EntityRef" String="&(?:#[0-9]+|#[xX][0-9A-Fa-f]+|[a-zA-Z_](?:[\w\-]*\w)?);"/> 1058 </context> 1059 1060 <context name="_element_tag" attribute="Documentation" lineEndContext="#pop"> 1061 <Detect2Chars context="#pop" attribute="Doc. Element Tag" char="/" char1=">" endRegion="DocElement"/> 1062 <DetectChar context="#pop" attribute="Doc. Element Tag" char=">"/> 1063 <RegExpr context="_attribute" attribute="Doc. Attribute" String="\s&tagName;"/> 1064 <RegExpr context="#pop" attribute="Error" String="\S"/> 1065 </context> 1066 <context name="_attribute" attribute="Documentation" lineEndContext="#pop"> 1067 <DetectChar context="#pop!_value" attribute="Documentation" char="="/> 1068 <RegExpr context="#stay" attribute="Doc. Attribute" String="\s&tagName;"/> 1069 <RegExpr context="#pop" attribute="Error" String="\S"/> 1070 </context> 1071 <context name="_value" attribute="Documentation" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 1072 <RegExpr context="#pop!_value_dq" attribute="Doc. Value" String="\s*""/> 1073 <RegExpr context="#pop!_value_sq" attribute="Doc. Value" String="\s*'"/> 1074 <RegExpr context="#stay" attribute="Error" String="\s*\S+"/> 1075 </context> 1076 <context name="_value_dq" attribute="Doc. Value" lineEndContext="#pop"> 1077 <RegExpr context="#pop" attribute="Error" String="\S(?=\s*$)"/> 1078 <DetectChar context="#pop" attribute="Doc. Value" char="""/> 1079 <IncludeRules context="_find_entityrefs"/> 1080 </context> 1081 <context name="_value_sq" attribute="Doc. Value" lineEndContext="#pop"> 1082 <RegExpr context="#pop" attribute="Error" String="\S(?=\s*$)"/> 1083 <DetectChar context="#pop" attribute="Doc. Value" char="'"/> 1084 <IncludeRules context="_find_entityrefs"/> 1085 </context> 1086 1087 <!-- 1088 ==================================================================== 1089 Common Rules for Syntax Highlighting of SELinux Policies 1090 ==================================================================== 1091 NOTE: The following contexts are also used by "selinux-fc.xml" 1092 and "selinux-cil.xml". --> 1093 1094 <!-- Default Comment (only for single line comments!) --> 1095 <context name="_default_comment" attribute="Normal Text" lineEndContext="#pop"> 1096 <RegExpr context="#stay" attribute="URL in Comment" String="&url;|&email;"/> 1097 </context> 1098 1099 <!-- IP Addresses --> 1100 <context name="_ip_addr" attribute="Normal Text" lineEndContext="#stay"> 1101 <RegExpr context="#stay" attribute="IP Address" String="&ipv4;|&ipv6;"/> 1102 <!-- NOTE: IPv6 in the SELinux parser ("selinux/checkpolicy/policy_scan.l"): "(?:[\da-fA-F]{0,4}\:){2}[\da-fA-F:\.]*" --> 1103 </context> 1104 1105 <!-- AV Permissions Keywords --> 1106 <context name="_av_permissions" attribute="Normal Text" lineEndContext="#stay"> 1107 <keyword context="#stay" attribute="AV Permissions" String="av_permissions"/> 1108 <keyword context="#stay" attribute="Android AV Permissions" String="av_permissions_android"/> 1109 </context> 1110 1111 <!-- Special Characters --> 1112 <context name="_common_special_char" attribute="Normal Text" lineEndContext="#stay"> 1113 <DetectChar context="#stay" attribute="Special Char" char="*"/> 1114 </context> 1115 <!-- Line-Continuation Escape --> 1116 <context name="_line_continue_escape" attribute="Normal Text" lineEndContext="#stay"> 1117 <LineContinue context="#stay" attribute="Escape Char"/> 1118 </context> 1119 1120 <!-- SELinux M4 Macros --> 1121 1122 <context name="_m4_special_arguments" attribute="Normal Text" lineEndContext="#stay"> 1123 <RegExpr context="#stay" attribute="M4 Special Arguments" String="&m4Args;"/> 1124 </context> 1125 <context name="_m4_quotes" attribute="Normal Text" lineEndContext="#stay"> 1126 <AnyChar context="#stay" attribute="Default M4 Quote" String="&m4Quotes;"/> 1127 </context> 1128 1129 <context name="_m4_builtin_keywords" attribute="Normal Text" lineEndContext="#stay"> 1130 <keyword context="_function_regexp" attribute="M4 Built-in Keywords" String="m4_builtin_regexp"/> 1131 <keyword context="#stay" attribute="M4 Built-in Keywords" String="m4_builtin"/> 1132 </context> 1133 1134 <!-- #line --> 1135 <context name="_m4_preprocessor" attribute="Normal Text" lineEndContext="#stay"> 1136 <RegExpr context="_m4_preprocessor_line_num" attribute="M4 Preprocessor" String="#line[ ](?=\d)"/> 1137 </context> 1138 <context name="_m4_preprocessor_line_num" attribute="M4 Preprocessor" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 1139 <!-- #line 1 "source" --> 1140 <Detect2Chars context="_m4_preprocessor_line_source_file" attribute="M4 Preprocessor" char="1" char1=" "/> 1141 <Int context="#pop" attribute="M4 Preprocessor"/> 1142 </context> 1143 <context name="_m4_preprocessor_line_source_file" attribute="M4 Preprocessor" 1144 lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop"> 1145 <RangeDetect context="#pop#pop" attribute="M4 Preprocessor" char=""" char1="""/> 1146 </context> 1147 1148 <!-- "regexp" function in M4 --> 1149 <context name="_function_regexp" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 1150 <DetectChar context="#pop!_function_regexp_content" attribute="Normal Text" char="(" beginRegion="ParenthesesBlock"/> 1151 </context> 1152 <context name="_function_regexp_content" attribute="Normal Text" lineEndContext="#stay"> 1153 <DetectChar context="#pop" attribute="Normal Text" char=")" endRegion="ParenthesesBlock"/> 1154 <DetectChar context="#stay" attribute="Normal Text" char=","/> 1155 <!-- Default Quote: `text' --> 1156 <RegExpr context="_simple_string_regexp" attribute="Text Quoted" String="`(?=(?:&m4Args;|[\w\-\s])*')"/> 1157 <IncludeRules context="_m4_quotes"/> 1158 1159 <IncludeRules context="_m4_special_arguments"/> 1160 <IncludeRules context="_regex_general_otherquote"/> 1161 <IncludeRules context="_find_all_comments"/> 1162 </context> 1163 <context name="_simple_string_regexp" attribute="Text Quoted" lineEndContext="#pop"> 1164 <DetectChar context="#pop" attribute="Text Quoted" char="'"/> 1165 <IncludeRules context="_m4_special_arguments"/> 1166 </context> 1167 1168 <!-- Highlight simple string using the default quotes: `text' --> 1169 <context name="_m4_string_simple" attribute="Normal Text" lineEndContext="#stay"> 1170 <DetectChar context="_find_m4_string_simple" char="`" lookAhead="true"/> 1171 </context> 1172 <context name="_find_m4_string_simple" attribute="Text Quoted" lineEndContext="#pop"> 1173 <RegExpr context="#pop!_block_quoted_simple" attribute="Text Quoted" String="`(?=(?:&m4Args;|[\w\-\.\s]|\(\))*')"/> 1174 <DetectChar context="#pop" attribute="Default M4 Quote" char="`"/> <!-- &m4Quotes; --> 1175 </context> 1176 <context name="_block_quoted_simple" attribute="Text Quoted" lineEndContext="#pop"> 1177 <DetectChar context="#pop" attribute="Text Quoted" char="'"/> 1178 <IncludeRules context="_m4_special_arguments"/> 1179 </context> 1180 1181 <!-- 1182 ================================= 1183 PCRE2 RegExp 1184 ================================= --> 1185 1186 <context name="_default_regex" attribute="Normal Text" lineEndContext="#stay"> 1187 <IncludeRules context="_special_chars"/> 1188 <IncludeRules context="_brackets_error"/> 1189 <IncludeRules context="_quantification_brackets"/> 1190 </context> 1191 1192 <!-- SELinux RegExp --> 1193 <!-- For paths: not allow spaces & line breaks --> 1194 <context name="_regex" attribute="Normal Text" lineEndContext="#stay"> 1195 <IncludeRules context="_default_regex"/> 1196 <DetectChar context="_square_brackets" attribute="RegExp Brackets" char="["/> 1197 <DetectChar context="_round_brackets" attribute="RegExp Brackets" char="("/> 1198 </context> 1199 <!-- For double quote string ("str"): allow spaces, but not line breaks --> 1200 <context name="_regex_quoted" attribute="Normal Text" lineEndContext="#stay"> 1201 <IncludeRules context="_default_regex"/> 1202 <DetectChar context="_square_brackets_quoted" attribute="RegExp Brackets" char="["/> 1203 <DetectChar context="_round_brackets_quoted" attribute="RegExp Brackets" char="("/> 1204 </context> 1205 1206 <!-- General RegExp: 1207 - Allow escapes unsupported by SELinux. 1208 - Do not end with a quote. 1209 - Allow spaces & line breaks. 1210 - Allow comments in round brackets. --> 1211 <context name="_regex_general_otherquote" attribute="Normal Text" lineEndContext="#stay"> 1212 <IncludeRules context="_line_continue_escape"/> 1213 <IncludeRules context="_fix_escape"/> 1214 <IncludeRules context="_default_regex"/> 1215 <DetectChar context="_square_brackets_otherquote" attribute="RegExp Brackets" char="["/> 1216 <DetectChar context="_round_brackets_otherquote" attribute="RegExp Brackets" char="("/> 1217 </context> 1218 1219 <context name="_special_chars" attribute="Normal Text" lineEndContext="#stay"> 1220 <AnyChar context="#stay" attribute="Special Char" String="&specialChars;"/> 1221 <IncludeRules context="_escape"/> 1222 </context> 1223 1224 <!-- Escapes --> 1225 <context name="_escape" attribute="Normal Text" lineEndContext="#stay"> 1226 <!-- Escapes Not Supported by SELinux --> 1227 <RegExpr context="#stay" attribute="Error" String="\\(?:[LlUu]|N\{\w+\})"/> 1228 <RegExpr context="#stay" attribute="Escape Char" String="&escape1;|&escape2;|&escape3;|&escape4;|&escape5;|&escape6;|&escape7;|&escape8;|&escape9;|&escape10;|&escape11;"/> 1229 </context> 1230 <context name="_fix_escape" attribute="Normal Text" lineEndContext="#stay"> 1231 <AnyChar context="#stay" attribute="Special Char" String="^$"/> 1232 <RegExpr context="#stay" attribute="Escape Char" String="\\(?:u[\da-fA-F]{4}|[LlUu]|N\{\w+\}|[0-7]{1,3})"/> 1233 </context> 1234 1235 <!-- Special Characters in Groups: (?...). Also see: &capGroup; --> 1236 <context name="_special_group_round_brackets" attribute="Normal Text" lineEndContext="#stay"> 1237 <RegExpr context="#stay" attribute="Special Char of Brackets" String="&group_bracket1;|&group_bracket2;|&group_bracket3;|&group_bracket4;"/> 1238 </context> 1239 1240 <!-- {n} {min,} {,max} {min,max} --> 1241 <context name="_quantification_brackets" attribute="Normal Text" lineEndContext="#stay"> 1242 <RegExpr context="_quantification_brackets_content" attribute="RegExp Brackets" String="\{(?=(?:\d+(?:,\d*)?|,\d+)\})"/> 1243 </context> 1244 <context name="_quantification_brackets_content" attribute="RegExp Brackets Content" lineEndContext="#pop"> 1245 <DetectChar context="#stay" attribute="Special Char of Brackets" char=","/> 1246 <DetectChar context="#pop" attribute="RegExp Brackets" char="}"/> 1247 </context> 1248 1249 <!-- Groups: [ ] and ( ) --> 1250 <context name="_default_square_brackets" attribute="RegExp Brackets Content" lineEndContext="#stay"> 1251 <DetectChar context="#stay" attribute="Error" char="["/> 1252 <IncludeRules context="_special_chars"/> 1253 </context> 1254 <context name="_default_round_brackets" attribute="RegExp Brackets Content" lineEndContext="#stay"> 1255 <DetectChar context="#stay" attribute="Special Char of Brackets" char="|"/> 1256 <IncludeRules context="_default_regex"/> 1257 </context> 1258 <context name="_brackets_error" attribute="Normal Text" lineEndContext="#stay"> 1259 <Detect2Chars context="#stay" attribute="Error" char="[" char1="]"/> 1260 </context> 1261 1262 <!-- Groups Brackets in Paths (do not allow spaces and line breaks) --> 1263 <context name="_square_brackets" attribute="RegExp Brackets Content" 1264 lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!_square_brackets_content"> 1265 <!-- Negative Characters --> 1266 <RegExpr context="#pop!_square_brackets_content" attribute="Special Char of Brackets" String="\^(?=[^\s\]])"/> 1267 </context> 1268 <context name="_square_brackets_content" attribute="RegExp Brackets Content" lineEndContext="#pop"> 1269 <DetectChar context="#pop" attribute="RegExp Brackets" char="]"/> 1270 <DetectSpaces context="#pop" lookAhead="true"/> 1271 <RegExpr context="#stay" attribute="Open RegExp Brackets" String="[^\s\[\]\\](?=\s|$)"/> 1272 <IncludeRules context="_default_square_brackets"/> 1273 </context> 1274 1275 <context name="_round_brackets" attribute="RegExp Brackets Content" 1276 lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!_round_brackets_content"> 1277 <IncludeRules context="_special_group_round_brackets"/> 1278 <RegExpr context="#pop!_round_brackets_content" attribute="Special Char of Brackets" String="&capGroup;(?=[^\)\s])"/> 1279 <DetectChar context="#pop!_round_brackets_content" char="?"/> 1280 </context> 1281 <context name="_round_brackets_content" attribute="RegExp Brackets Content" lineEndContext="#pop"> 1282 <DetectChar context="#pop" attribute="RegExp Brackets" char=")"/> 1283 <DetectSpaces context="#pop" lookAhead="true"/> 1284 <RegExpr context="#stay" attribute="Open RegExp Brackets" String="[^\s\[\(\)\\](?=\s|$)"/> 1285 <IncludeRules context="_default_round_brackets"/> 1286 <DetectChar context="_square_brackets" attribute="RegExp Brackets" char="["/> 1287 <DetectChar context="_round_brackets" attribute="RegExp Brackets" char="("/> 1288 </context> 1289 1290 <!-- Groups Brackets in Double Quoted Strings (allow spaces, but not line breaks) --> 1291 <context name="_square_brackets_quoted" attribute="RegExp Brackets Content" 1292 lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!_square_brackets_quoted_content"> 1293 <RegExpr context="#pop!_square_brackets_quoted_content" attribute="Special Char of Brackets" String="\^(?=[^\]])"/> 1294 </context> 1295 <context name="_square_brackets_quoted_content" attribute="RegExp Brackets Content" lineEndContext="#pop"> 1296 <DetectChar context="#pop" attribute="RegExp Brackets" char="]"/> 1297 <DetectChar context="#pop" char=""" lookAhead="true"/> 1298 <RegExpr context="#stay" attribute="Open RegExp Brackets" String="[^\s\[\]"\\](?=\s*(?:"|$))"/> 1299 <IncludeRules context="_default_square_brackets"/> 1300 </context> 1301 1302 <context name="_round_brackets_quoted" attribute="RegExp Brackets Content" 1303 lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!_round_brackets_quoted_content"> 1304 <IncludeRules context="_special_group_round_brackets"/> 1305 <RegExpr context="#pop!_round_brackets_quoted_content" attribute="Special Char of Brackets" String="&capGroup;(?=[^\)])"/> 1306 <DetectChar context="#pop!_round_brackets_quoted_content" char="?"/> 1307 </context> 1308 <context name="_round_brackets_quoted_content" attribute="RegExp Brackets Content" lineEndContext="#pop"> 1309 <DetectChar context="#pop" attribute="RegExp Brackets" char=")"/> 1310 <DetectChar context="#pop" char=""" lookAhead="true"/> 1311 <RegExpr context="#stay" attribute="Open RegExp Brackets" String="[^\s\[\(\)"\\](?=\s*(?:"|$))"/> 1312 <IncludeRules context="_default_round_brackets"/> 1313 <DetectChar context="_square_brackets_quoted" attribute="RegExp Brackets" char="["/> 1314 <DetectChar context="_round_brackets_quoted" attribute="RegExp Brackets" char="("/> 1315 </context> 1316 1317 <!-- Groups Brackets in Unknown Quotes (allow spaces and line breaks) --> 1318 <context name="_square_brackets_otherquote" attribute="RegExp Brackets Content" 1319 lineEndContext="#pop!_square_brackets_otherquote_content" fallthrough="true" fallthroughContext="#pop!_square_brackets_otherquote_content"> 1320 <RegExpr context="#pop!_square_brackets_otherquote_content" attribute="Special Char of Brackets" String="\^(?=[^\]]|$)"/> 1321 </context> 1322 <context name="_square_brackets_otherquote_content" attribute="RegExp Brackets Content" lineEndContext="#stay"> 1323 <DetectChar context="#pop" attribute="RegExp Brackets" char="]"/> 1324 <IncludeRules context="_default_square_brackets"/> 1325 </context> 1326 1327 <context name="_round_brackets_otherquote" attribute="RegExp Brackets Content" 1328 lineEndContext="#pop!_round_brackets_otherquote_content" fallthrough="true" fallthroughContext="#pop!_round_brackets_otherquote_content"> 1329 <IncludeRules context="_special_group_round_brackets"/> 1330 <RegExpr context="#pop!_round_brackets_otherquote_content" attribute="Special Char of Brackets" String="&capGroup;(?=[^\)]|$)"/> 1331 <DetectChar context="#pop!_round_brackets_otherquote_content" char="?"/> 1332 </context> 1333 <context name="_round_brackets_otherquote_content" attribute="RegExp Brackets Content" lineEndContext="#stay"> 1334 <DetectChar context="#pop" attribute="RegExp Brackets" char=")"/> 1335 <IncludeRules context="_fix_escape"/> 1336 <IncludeRules context="_default_round_brackets"/> 1337 <IncludeRules context="_line_continue_escape"/> 1338 <DetectChar context="_square_brackets_otherquote" attribute="RegExp Brackets" char="["/> 1339 <DetectChar context="_round_brackets_otherquote" attribute="RegExp Brackets" char="("/> 1340 <RegExpr context="_comment" attribute="Comment" String="(?:^|\s)\#"/> 1341 </context> 1342 1343 </contexts> 1344 1345 <itemDatas> 1346 <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/> 1347 <itemData name="Comment" defStyleNum="dsComment"/> 1348 <itemData name="URL in Comment" defStyleNum="dsComment" underline="1" spellChecking="false"/> 1349 <itemData name="Path" defStyleNum="dsNormal" spellChecking="false"/> 1350 <itemData name="Text Quoted" defStyleNum="dsString" spellChecking="false"/> 1351 1352 <itemData name="IP Address" defStyleNum="dsFloat" spellChecking="false"/> 1353 <itemData name="AV Permissions" defStyleNum="dsVerbatimString" spellChecking="false"/> 1354 <itemData name="Android AV Permissions" defStyleNum="dsVerbatimString" italic="1" spellChecking="false"/> 1355 <itemData name="Policy Capability" defStyleNum="dsPreprocessor" bold="0" italic="0" underline="0" spellChecking="false"/> 1356 <itemData name="Filesystem" defStyleNum="dsNormal" italic="1" spellChecking="false"/> 1357 1358 <itemData name="Statements" defStyleNum="dsKeyword" bold="1" spellChecking="false"/> 1359 <itemData name="Policy Config. Statements" defStyleNum="dsPreprocessor" bold="1" italic="0" underline="0" spellChecking="false"/> 1360 <itemData name="Access Keys" defStyleNum="dsWarning" bold="1" italic="0" underline="0" spellChecking="false"/> 1361 <itemData name="Expression Keys" defStyleNum="dsVariable" bold="1" italic="0" underline="0" spellChecking="false"/> 1362 <itemData name="Boolean Operators" defStyleNum="dsVariable" bold="1" italic="0" underline="0" spellChecking="false"/> 1363 <itemData name="Special Keys" defStyleNum="dsOthers" spellChecking="false"/> 1364 <itemData name="Reserved Keywords" defStyleNum="dsKeyword" spellChecking="false"/> 1365 1366 <itemData name="Booleans" defStyleNum="dsExtension" bold="1" underline="0" spellChecking="false"/> 1367 <itemData name="Range" defStyleNum="dsDecVal" bold="1" spellChecking="false"/> 1368 <itemData name="Class" defStyleNum="dsDataType" bold="0" underline="0" spellChecking="false"/> 1369 <itemData name="MLS/MCS Level/Range" defStyleNum="dsDocumentation" bold="0" italic="0" underline="0" spellChecking="false"/> 1370 <itemData name="File Contexts" defStyleNum="dsPreprocessor" bold="0" italic="0" underline="0" spellChecking="false"/> 1371 <itemData name="File Contexts (Type Enforcement)" defStyleNum="dsChar" bold="0" italic="0" underline="0" spellChecking="false"/> 1372 <itemData name="Input Selector" defStyleNum="dsAttribute" spellChecking="false"/> 1373 <itemData name="Operator" defStyleNum="dsKeyword" spellChecking="false"/> 1374 <itemData name="Symbol" defStyleNum="dsOperator" spellChecking="false"/> 1375 <itemData name="Number" defStyleNum="dsDecVal" spellChecking="false"/> 1376 <itemData name="Hexadecimal" defStyleNum="dsBaseN" spellChecking="false"/> 1377 1378 <!-- Documentation --> 1379 <itemData name="Documentation" defStyleNum="dsComment"/> 1380 <itemData name="Doc. Element Tag" defStyleNum="dsAnnotation" bold="1" spellChecking="false"/> 1381 <itemData name="Doc. EntityRef" defStyleNum="dsInformation" spellChecking="false"/> 1382 <itemData name="Doc. Attribute" defStyleNum="dsAttribute" spellChecking="false"/> 1383 <itemData name="Doc. Value" defStyleNum="dsString" spellChecking="false"/> 1384 1385 <!-- Reference Policy --> 1386 <itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/> 1387 <itemData name="Refpolicy Keywords" defStyleNum="dsFunction" italic="1" spellChecking="false"/> 1388 <!-- M4 Macros --> 1389 <itemData name="M4 Built-in Keywords" defStyleNum="dsBuiltIn" spellChecking="false"/> 1390 <itemData name="M4 Special Arguments" defStyleNum="dsVariable" spellChecking="false"/> 1391 <itemData name="M4 Preprocessor" defStyleNum="dsPreprocessor" spellChecking="false"/> 1392 <itemData name="Default M4 Quote" defStyleNum="dsString" bold="1" spellChecking="false"/> 1393 1394 <!-- RegExp --> 1395 <itemData name="Escape Char" defStyleNum="dsChar" spellChecking="false"/> 1396 <itemData name="Special Char" defStyleNum="dsSpecialChar" spellChecking="false"/> 1397 <itemData name="Special Char of Brackets" defStyleNum="dsAnnotation" bold="0" italic="0" underline="0" spellChecking="false"/> 1398 <itemData name="RegExp Brackets" defStyleNum="dsSpecialString" spellChecking="false"/> 1399 <itemData name="RegExp Brackets Content" defStyleNum="dsSpecialString" spellChecking="false"/> 1400 <itemData name="Open RegExp Brackets" defStyleNum="dsSpecialString" underline="1" spellChecking="false"/> 1401 <itemData name="Text Quoted Open" defStyleNum="dsString" underline="1" spellChecking="false"/> 1402 1403 <itemData name="Error" defStyleNum="dsError" spellChecking="false"/> 1404 </itemDatas> 1405 1406 </highlighting> 1407 1408 <general> 1409 <keywords casesensitive="true" additionalDeliminator=""'`" weakDeliminator="-"/> 1410 <comments> 1411 <comment name="singleLine" start="#"/> 1412 </comments> 1413 </general> 1414 1415 </language> 1416 <!-- kate: replace-tabs off; tab-width 3; indent-width 3; remove-trailing-spaces mod; dynamic-word-wrap off; -->