Warning, /frameworks/syntax-highlighting/data/syntax/selinux-cil.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 symbol "\w\[\]\.@\=/\*\-$%\+!\|&\^:~`#\{\}'<>\?,\\"> <!-- [].@=/*-_$%+!|&^:~`#{}'<>?,\ --> 0005 <!ENTITY identifier "[a-zA-Z][\w\-]*"> 0006 <!ENTITY statementchar "[a-z_\-]"> 0007 0008 <!ENTITY fullIdentifier "[a-zA-Z][\w\-]*(?:\.?[\w\-])*"> 0009 <!ENTITY mlsLevel "&fullIdentifier;(?:\:&fullIdentifier;(?:\s*,\s*&fullIdentifier;)*)?"> 0010 ]> 0011 0012 <!-- 0013 SELinux CIL (Common Interface Language) Policy Syntax Highlighting Definition 0014 =============================================================================== 0015 0016 This file is part of the KDE's KSyntaxHighlighting framework. 0017 0018 SPDX-FileCopyrightText: 2018-2020 Nibaldo González S. <nibgonz@gmail.com> 0019 0020 SPDX-License-Identifier: MIT 0021 0022 =============================================================================== 0023 0024 Based on the Scheme syntax highlighting file (scheme.xml), 0025 created by Dominik Haumann (dhaumann@kde.org). 0026 0027 Last update: secilc 3.0 0028 More details about CIL: 0029 https://github.com/SELinuxProject/selinux/tree/master/secilc/docs 0030 0031 Change log: 0032 * Version 7 [30-Sep-2020]: Use include-keywods and other minor changes. 0033 * Version 6 [25-Aug-2020]: Update colors in brackets. 0034 * Version 5 [10-Dec-2019]: Add "glblub" keyword (defaultrange). 0035 * Version 4 [03-Oct-2019]: Replace unnecessary WordDetect rules. 0036 * Version 3 [02-Apr-2019]: Remove one indentation. 0037 * Version 2 [28-Aug-2018]: 0038 - Implement "selinux.xml": some rules and keywords are moved there. Improve RegExp 0039 highlighting, add Android permissions and BPF permissions, improve IPv6 0040 detection and others improvements. 0041 - Fix permissions list in "ioctl" kind and "call" statements. 0042 - Add "sctp" protocol keyword and policy capabilities keywords. 0043 * Version 1 [26-Jan-2018, by Nibaldo González]: 0044 - Initial version. 0045 --> 0046 0047 <language name="SELinux CIL Policy" 0048 version="10" 0049 kateversion="5.53" 0050 section="Sources" 0051 extensions="*.cil" 0052 priority="9" 0053 mimetype="" 0054 author="Nibaldo González (nibgonz@gmail.com)" 0055 license="MIT"> 0056 0057 <highlighting> 0058 0059 <list name="expr_keys"> 0060 <item>and</item> 0061 <item>or</item> 0062 <item>xor</item> 0063 <item>not</item> 0064 <item>all</item> 0065 <item>eq</item> 0066 <item>ne</item> 0067 <item>neq</item> 0068 <item>dom</item> 0069 <item>domby</item> 0070 <item>incomp</item> 0071 <item>range</item> 0072 </list> 0073 0074 <!-- Access Vector Rules --> 0075 <list name="access"> 0076 <item>allow</item> 0077 <item>auditallow</item> 0078 <item>dontaudit</item> 0079 <item>neverallow</item> 0080 <item>auditdeny</item> 0081 <item>allowx</item> 0082 <item>auditallowx</item> 0083 <item>dontauditx</item> 0084 <item>neverallowx</item> 0085 </list> 0086 0087 <list name="booleans"> 0088 <item>true</item> 0089 <item>false</item> 0090 </list> 0091 0092 <list name="file_types"> 0093 <item>file</item> 0094 <item>dir</item> 0095 <item>char</item> 0096 <item>block</item> 0097 <item>socket</item> 0098 <item>pipe</item> 0099 <item>symlink</item> 0100 <item>any</item> 0101 </list> 0102 <list name="fs_types"> 0103 <item>task</item> 0104 <item>trans</item> 0105 <item>xattr</item> 0106 </list> 0107 <list name="protocols"> 0108 <item>tcp</item> 0109 <item>udp</item> 0110 <item>dccp</item> 0111 <item>sctp</item> 0112 </list> 0113 0114 <list name="special_keys"> 0115 <item>self</item> 0116 </list> 0117 <list name="classorder_keys"> 0118 <item>unordered</item> 0119 </list> 0120 <list name="handleunknown_keys"> 0121 <item>allow</item> 0122 <item>deny</item> 0123 <item>reject</item> 0124 </list> 0125 0126 <list name="type_statements"> 0127 <item>block</item> 0128 <item>optional</item> 0129 <item>common</item> 0130 <item>class</item> 0131 <item>classmap</item> 0132 <item>classmapping</item> 0133 <item>sid</item> 0134 <item>user</item> 0135 <item>role</item> 0136 <item>roleattribute</item> 0137 <item>type</item> 0138 <item>classpermission</item> 0139 <item>typeattribute</item> 0140 <item>typealias</item> 0141 <item>tunable</item> 0142 <item>sensitivity</item> 0143 <item>sensitivityalias</item> 0144 <item>category</item> 0145 <item>categoryalias</item> 0146 <item>categoryset</item> 0147 <item>level</item> 0148 <item>levelrange</item> 0149 <item>context</item> 0150 <item>ipaddr</item> 0151 <item>macro</item> 0152 <item>boolean</item> 0153 <!-- policycap, classpermissionset --> 0154 </list> 0155 <list name="policy_config_statements"> 0156 <item>policycap</item> 0157 <item>mls</item> 0158 <item>handleunknown</item> 0159 </list> 0160 <list name="statements"> 0161 <!-- Container Statements. 0162 Also: block, optional, macro --> 0163 <item>blockabstract</item> 0164 <item>blockinherit</item> 0165 <item>in</item> 0166 <item>call</item> 0167 0168 <!-- Default Object Statements --> 0169 <item>defaultuser</item> 0170 <item>defaultrole</item> 0171 <item>defaulttype</item> 0172 <item>defaultrange</item> 0173 0174 <!-- User Statements. 0175 Also: user --> 0176 <item>userrole</item> 0177 <item>userattribute</item> 0178 <item>userattributeset</item> 0179 <item>userlevel</item> 0180 <item>userrange</item> 0181 <item>userbounds</item> 0182 <item>userprefix</item> 0183 <item>selinuxuser</item> 0184 <item>selinuxuserdefault</item> 0185 0186 <!-- Role Statements. 0187 Also: role, roleattribute --> 0188 <item>roletype</item> 0189 <item>roleattributeset</item> 0190 <item>roleallow</item> 0191 <item>roletransition</item> 0192 <item>rolebounds</item> 0193 0194 <!-- Type Statements. 0195 Also: type, typeattribute, typealias --> 0196 <item>typealiasactual</item> 0197 <item>typeattributeset</item> 0198 <item>typebounds</item> 0199 <item>typechange</item> 0200 <item>typemember</item> 0201 <item>typetransition</item> 0202 <item>typepermissive</item> 0203 <item>attributetype</item> 0204 0205 <item>expandtypeattribute</item> 0206 <item>nametypetransition</item> 0207 0208 <!-- Class and Permission Statements. 0209 Also: common, class, classmap, classmapping, classpermission --> 0210 <item>classcommon</item> 0211 <item>classorder</item> 0212 <item>permission</item> 0213 <item>permissionset</item> 0214 <item>classpermissionset</item> 0215 <item>permissionx</item> 0216 0217 <!-- Conditional Statements. 0218 Also: tunable, boolean --> 0219 <item>booleanif</item> 0220 <item>tunableif</item> 0221 0222 <!-- Constraint Statements --> 0223 <item>constrain</item> 0224 <item>validatetrans</item> 0225 <item>mlsconstrain</item> 0226 <item>mlsvalidatetrans</item> 0227 0228 <!-- Multi-Level Security Labeling Statements. 0229 Also: sensitivity, sensitivityalias, category, categoryalias, categoryset, level, levelrange --> 0230 <item>sensitivityaliasactual</item> 0231 <item>sensitivityorder</item> 0232 <item>categoryaliasactual</item> 0233 <item>categoryorder</item> 0234 <item>sensitivitycategory</item> 0235 <item>rangetransition</item> 0236 <item>categoryrange</item> 0237 0238 <!-- Context Statement: context --> 0239 <!-- SID Statements. 0240 Also: sid --> 0241 <item>sidorder</item> 0242 <item>sidcontext</item> 0243 0244 <!-- File Labeling Statements --> 0245 <item>filecon</item> 0246 <item>fsuse</item> 0247 <item>genfscon</item> 0248 <item>fscon</item> 0249 <item>fsusexattr</item> 0250 <item>fsusetask</item> 0251 <item>fsusetrans</item> 0252 0253 <!-- Network Labeling Statements. 0254 Also: ipaddr --> 0255 <item>netifcon</item> 0256 <item>nodecon</item> 0257 <item>portcon</item> 0258 <!-- ipv4_addr, ipv6_addr --> 0259 0260 <!-- Xen Statements --> 0261 <item>iomemcon</item> 0262 <item>ioportcon</item> 0263 <item>pcidevicecon</item> 0264 <item>pirqcon</item> 0265 <item>devicetreecon</item> 0266 0267 <!-- Infiniband Statements --> 0268 <item>ibpkeycon</item> 0269 <item>ibendportcon</item> 0270 0271 <!-- Others --> 0272 <item>dominance</item> 0273 <item>allowxperm</item> 0274 <item>auditallowxperm</item> 0275 <item>dontauditxperm</item> 0276 <item>neverallowxperm</item> 0277 </list> 0278 0279 <list name="type_name"> 0280 <item>string</item> 0281 <item>name</item> 0282 <item>ioctl</item> <!-- permissionx --> 0283 </list> 0284 0285 <list name="other_keywords"> 0286 <item>source</item> 0287 <item>target</item> 0288 <item>glblub</item> <!-- defaultrange --> 0289 <item>low</item> 0290 <item>high</item> 0291 <item>low-high</item> 0292 0293 <item>perm</item> 0294 <item>object_r</item> 0295 <item>t1</item> 0296 <item>t2</item> 0297 <item>t3</item> 0298 <item>r1</item> 0299 <item>r2</item> 0300 <item>r3</item> 0301 <item>u1</item> 0302 <item>u2</item> 0303 <item>u3</item> 0304 <item>l1</item> 0305 <item>l2</item> 0306 <item>h1</item> 0307 <item>h2</item> 0308 </list> 0309 <list name="policy_capabilities"> 0310 <include>policy_capabilities##SELinux Policy</include> 0311 </list> 0312 <list name="filesystem"> 0313 <include>filesystem##SELinux Policy</include> 0314 </list> 0315 0316 <contexts> 0317 0318 <context name="_normal" attribute="Normal Text" lineEndContext="#stay"> 0319 <DetectChar context="_rule_bracket_level1" attribute="Brackets Level 1" char="("/> 0320 <DetectChar context="#stay" attribute="Error" char=")"/> 0321 <IncludeRules context="_common"/> 0322 <IncludeRules context="_identifiers"/> 0323 </context> 0324 <context name="_common" attribute="Normal Text" lineEndContext="#stay"> 0325 <DetectChar context="_comment" attribute="Comment" char=";"/> 0326 <DetectChar context="_quoted" attribute="Text Quoted" char="""/> 0327 <DetectChar context="_path_content" attribute="Path" char="/"/> 0328 0329 <!-- IP Address --> 0330 <IncludeRules context="_ip_addr##SELinux Policy"/> 0331 <!-- Special Characters --> 0332 <DetectChar context="#stay" attribute="Special Char" char="*"/> 0333 0334 <!-- File Contexts: user_u:role_r:type_t:s0:c0 --> 0335 <RegExpr context="_file_contexts" attribute="File Contexts" String="\b&fullIdentifier;(?:\:&fullIdentifier;){2}(?:\:&mlsLevel;(?:\s*\-\s*&mlsLevel;)?)?(?:[^&symbol;:]|\s|$)" lookAhead="true"/> 0336 <!-- Global Namespace (this avoids highlighting keywords) --> 0337 <RegExpr context="#stay" String="(?:\b&identifier;)?(?:\.&identifier;)+(?=\s|[^&symbol;]|$)"/> 0338 0339 <!-- Numbers --> 0340 <HlCHex context="#stay" attribute="Hexadecimal"/> 0341 <Float context="#stay" attribute="Number"/> 0342 <Int context="#stay" attribute="Number"/> 0343 </context> 0344 <context name="_identifiers" attribute="Normal Text" lineEndContext="#stay"> 0345 <!-- Avoid highlighting numbers in identifiers. 0346 IMPORTANT: Do not put this rule before the keywords! --> 0347 <RegExpr context="#stay" String="&identifier;"/> 0348 </context> 0349 0350 <context name="_comment" attribute="Comment" lineEndContext="#pop"> 0351 <DetectSpaces /> 0352 <LineContinue context="#pop" attribute="Comment"/> 0353 <IncludeRules context="##Comments"/> 0354 <IncludeRules context="_default_comment##SELinux Policy"/> 0355 </context> 0356 0357 <context name="_quoted" attribute="Text Quoted" lineEndContext="#pop"> 0358 <DetectChar context="#pop" attribute="Text Quoted" char="""/> 0359 <IncludeRules context="_regex_quoted##SELinux Policy"/> <!-- This does not support line breaks and line cont. escape --> 0360 <RegExpr context="#stay" attribute="Text Quoted Open" String="[^\s"\[\(\\](?=\s*$)"/> 0361 </context> 0362 0363 <context name="_path_content" attribute="Path" lineEndContext="#pop"> 0364 <DetectSpaces context="#pop" attribute="Normal Text" lookAhead="true"/> 0365 <RegExpr context="#pop" attribute="Normal Text" String="[^&symbol;]" lookAhead="true"/> 0366 0367 <IncludeRules context="_default_regex##SELinux Policy"/> 0368 <DetectChar context="_square_brackets_cil_path" attribute="RegExp Brackets (Paths)" char="["/> 0369 </context> 0370 <context name="_square_brackets_cil_path" attribute="RegExp Brackets (Paths)" 0371 lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!_square_brackets_cil_path_content"> 0372 <RegExpr context="#pop!_square_brackets_cil_path_content" attribute="Special Char of Brackets (Paths)" String="\^(?=[&symbol;])"/> 0373 </context> 0374 <context name="_square_brackets_cil_path_content" attribute="RegExp Brackets (Paths)" lineEndContext="#pop"> 0375 <DetectChar context="#pop" attribute="RegExp Brackets (Paths)" char="]"/> 0376 <RegExpr context="#pop" String="[^&symbol;]" lookAhead="true"/> 0377 <RegExpr context="#stay" attribute="Open RegExp Brackets (Paths)" String="[^\s\[\]\\](?![&symbol;])"/> 0378 <DetectChar context="#stay" attribute="Error" char="["/> 0379 <IncludeRules context="_special_chars##SELinux Policy"/> 0380 </context> 0381 0382 <!-- RULES --> 0383 0384 <!-- Highlighting specific keywords in some rules --> 0385 <context name="_filecon_statement" attribute="Normal Text" lineEndContext="#stay"> 0386 <IncludeRules context="_default_end"/> 0387 <keyword context="#pop" attribute="Types" String="file_types"/> 0388 <IncludeRules context="_default_rule"/> 0389 </context> 0390 <context name="_portcon_statement" attribute="Normal Text" lineEndContext="#stay"> 0391 <IncludeRules context="_default_end"/> 0392 <keyword context="#pop" attribute="Types" String="protocols"/> 0393 <IncludeRules context="_default_rule"/> 0394 </context> 0395 <context name="_fsuse_statement" attribute="Normal Text" lineEndContext="#stay"> 0396 <IncludeRules context="_default_end"/> 0397 <keyword context="#pop" attribute="Types" String="fs_types"/> 0398 <IncludeRules context="_default_rule"/> 0399 </context> 0400 <context name="_handleunknown_statement" attribute="Normal Text" lineEndContext="#stay"> 0401 <IncludeRules context="_default_end"/> 0402 <keyword context="#pop" attribute="Access Keys" String="handleunknown_keys"/> 0403 <IncludeRules context="_default_rule"/> 0404 </context> 0405 <context name="_policycap_statement" attribute="Normal Text" lineEndContext="#stay"> 0406 <IncludeRules context="_default_end"/> 0407 <keyword context="#stay" attribute="Policy Capability" String="policy_capabilities"/> 0408 <IncludeRules context="_common"/> 0409 <IncludeRules context="_identifiers"/> 0410 </context> 0411 <context name="_av_permissions_statement" attribute="Normal Text" lineEndContext="#stay"> 0412 <IncludeRules context="_default_end"/> 0413 <IncludeRules context="_av_permissions##SELinux Policy"/> 0414 <IncludeRules context="_default_rule"/> 0415 </context> 0416 <context name="_default_end" attribute="Normal Text" lineEndContext="#stay"> 0417 <AnyChar context="#pop" attribute="Normal Text" String=")(" lookAhead="true"/> 0418 </context> 0419 0420 <context name="_find_ioctl_kind" attribute="Normal Text" 0421 lineEndContext="#pop!_av_permissions_statement" fallthrough="true" fallthroughContext="#pop!_av_permissions_statement"> 0422 <!-- ioctl is a kind in permissionx/accessx statement: 0423 (permissionx permissionx_id (ioctl class_id (permission ... | expr ...))) --> 0424 <RegExpr context="#pop" attribute="Type Name Statements" String="ioctl(?=\s+[&symbol;]+\s*\()"/> 0425 <!-- ioctl can be a kind of permissionx or AV permission --> 0426 <RegExpr context="#pop!_av_permissions_statement" attribute="Type Name Statements" String="ioctl(?=\s+[&symbol;]+\s+\d|(?:\s+[&symbol;]+)?\s*(?:$|;))"/> 0427 </context> 0428 0429 <context name="_default_statement" attribute="Normal Text" lineEndContext="#stay"> 0430 <WordDetect context="_handleunknown_statement" attribute="Policy Config. Statements" String="handleunknown"/> 0431 <WordDetect context="_policycap_statement" attribute="Policy Config. Statements" String="policycap"/> 0432 <WordDetect context="_filecon_statement" attribute="Statements" String="filecon"/> 0433 <WordDetect context="_fsuse_statement" attribute="Statements" String="fsuse"/> 0434 <WordDetect context="_portcon_statement" attribute="Statements" String="portcon"/> 0435 <!-- Fix permissions list if the keywords "ioctl" or "call" are not statements, 0436 but a permissions (see "av_permissions" keyword list of "selinux.xml"). --> 0437 <RegExpr context="_av_permissions_statement" String="\b(?:call|ioctl)\s*\)" lookAhead="true"/> 0438 <WordDetect context="_find_ioctl_kind" String="ioctl" lookAhead="true"/> 0439 <WordDetect context="_av_permissions_statement" attribute="Statements" String="call"/> 0440 0441 <keyword context="#stay" attribute="Policy Config. Statements" String="policy_config_statements"/> 0442 <keyword context="#stay" attribute="Type Statements" String="type_statements"/> 0443 <keyword context="#stay" attribute="Statements" String="statements"/> 0444 <keyword context="#stay" attribute="Expression Keys" String="expr_keys"/> 0445 <keyword context="#stay" attribute="Access Keys" String="access"/> 0446 0447 <keyword context="#stay" attribute="Booleans" String="booleans"/> 0448 <keyword context="#stay" attribute="Type Name Statements" String="classorder_keys"/> 0449 <keyword context="#stay" attribute="Type Name Statements" String="type_name"/> 0450 </context> 0451 <context name="_default_rule" attribute="Normal Text" lineEndContext="#stay"> 0452 <IncludeRules context="_common"/> 0453 <keyword context="#stay" attribute="Booleans" String="booleans"/> 0454 <keyword context="#stay" attribute="Special Keys" String="special_keys"/> 0455 0456 <StringDetect context="#stay" attribute="Other Keywords" String="<root>"/> 0457 <StringDetect context="#stay" attribute="Other Keywords" String="<node>"/> 0458 <StringDetect context="#stay" attribute="Other Keywords" String="<src_info>"/> 0459 <StringDetect context="#stay" attribute="Other Keywords" String="<src_cil>"/> 0460 <StringDetect context="#stay" attribute="Other Keywords" String="<src_hll>"/> 0461 <keyword context="#stay" attribute="Other Keywords" String="other_keywords"/> 0462 <keyword context="#stay" attribute="Filesystem" String="filesystem"/> 0463 0464 <IncludeRules context="_identifiers"/> 0465 </context> 0466 <context name="_default_rule_without_statement" attribute="Normal Text" lineEndContext="#stay"> 0467 <IncludeRules context="_av_permissions##SELinux Policy"/> 0468 </context> 0469 <context name="_default_rule_bracket" attribute="Normal Text" lineEndContext="#stay"> 0470 <DetectSpaces context="#stay" attribute="Normal Text"/> 0471 <DetectChar context="_comment" attribute="Comment" char=";"/> 0472 </context> 0473 0474 <!-- Levels of rule brackets. 0475 Only the first word of a rule can be highlighted as a statement keyword. --> 0476 <context name="_rule_bracket_level1" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop!_rule_without_statement_level1" lineEndContext="#stay"> 0477 <IncludeRules context="_default_rule_bracket"/> <!-- Detect spaces & comments --> 0478 <!-- Detect first word --> 0479 <RegExpr context="#pop!_statement_level1" attribute="Normal Text" String="&statementchar;" lookAhead="true"/> 0480 </context> 0481 <context name="_statement_level1" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop!_rule_level1" lineEndContext="#pop!_rule_level1"> 0482 <!-- When writing a statement and then a delimiter (like a space), go to the context "_rule_level1" --> 0483 <IncludeRules context="_default_statement"/> 0484 <RegExpr context="#pop!_rule_without_statement_level1" attribute="Normal Text" String="&statementchar;" lookAhead="true"/> 0485 </context> 0486 <context name="_rule_level1" attribute="Normal Text" lineEndContext="#stay"> <!-- Rule content --> 0487 <DetectChar attribute="Brackets Level 2" context="_rule_bracket_level2" char="("/> 0488 <DetectChar attribute="Brackets Level 1" context="#pop" char=")" /> 0489 <IncludeRules context="_default_rule"/> 0490 </context> 0491 <context name="_rule_without_statement_level1" attribute="Normal Text" lineEndContext="#stay"> 0492 <IncludeRules context="_default_rule_without_statement"/> 0493 <IncludeRules context="_rule_level1"/> 0494 </context> 0495 0496 <context name="_rule_bracket_level2" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop!_rule_without_statement_level2" lineEndContext="#stay"> 0497 <IncludeRules context="_default_rule_bracket"/> 0498 <RegExpr context="#pop!_statement_level2" attribute="Normal Text" String="&statementchar;" lookAhead="true"/> 0499 </context> 0500 <context name="_statement_level2" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop!_rule_level2" lineEndContext="#pop!_rule_level2"> 0501 <IncludeRules context="_default_statement"/> 0502 <RegExpr context="#pop!_rule_without_statement_level2" attribute="Normal Text" String="&statementchar;" lookAhead="true"/> 0503 </context> 0504 <context name="_rule_level2" attribute="Normal Text" lineEndContext="#stay"> 0505 <DetectChar attribute="Brackets Level 3" context="_rule_bracket_level3" char="("/> 0506 <DetectChar attribute="Brackets Level 2" context="#pop" char=")" /> 0507 <IncludeRules context="_default_rule"/> 0508 </context> 0509 <context name="_rule_without_statement_level2" attribute="Normal Text" lineEndContext="#stay"> 0510 <IncludeRules context="_default_rule_without_statement"/> 0511 <IncludeRules context="_rule_level2"/> 0512 </context> 0513 0514 <context name="_rule_bracket_level3" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop!_rule_without_statement_level3" lineEndContext="#stay"> 0515 <IncludeRules context="_default_rule_bracket"/> 0516 <RegExpr context="#pop!_statement_level3" attribute="Normal Text" String="&statementchar;" lookAhead="true"/> 0517 </context> 0518 <context name="_statement_level3" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop!_rule_level3" lineEndContext="#pop!_rule_level3"> 0519 <IncludeRules context="_default_statement"/> 0520 <RegExpr context="#pop!_rule_without_statement_level3" attribute="Normal Text" String="&statementchar;" lookAhead="true"/> 0521 </context> 0522 <context name="_rule_level3" attribute="Normal Text" lineEndContext="#stay"> 0523 <DetectChar attribute="Brackets Level 4" context="_rule_bracket_level4" char="("/> 0524 <DetectChar attribute="Brackets Level 3" context="#pop" char=")" /> 0525 <IncludeRules context="_default_rule"/> 0526 </context> 0527 <context name="_rule_without_statement_level3" attribute="Normal Text" lineEndContext="#stay"> 0528 <IncludeRules context="_default_rule_without_statement"/> 0529 <IncludeRules context="_rule_level3"/> 0530 </context> 0531 0532 <context name="_rule_bracket_level4" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop!_rule_without_statement_level4" lineEndContext="#stay"> 0533 <IncludeRules context="_default_rule_bracket"/> 0534 <RegExpr context="#pop!_statement_level4" attribute="Normal Text" String="&statementchar;" lookAhead="true"/> 0535 </context> 0536 <context name="_statement_level4" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop!_rule_level4" lineEndContext="#pop!_rule_level4"> 0537 <IncludeRules context="_default_statement"/> 0538 <RegExpr context="#pop!_rule_without_statement_level4" attribute="Normal Text" String="&statementchar;" lookAhead="true"/> 0539 </context> 0540 <context name="_rule_level4" attribute="Normal Text" lineEndContext="#stay"> 0541 <DetectChar attribute="Brackets Level 5" context="_rule_bracket_level5" char="("/> 0542 <DetectChar attribute="Brackets Level 4" context="#pop" char=")" /> 0543 <IncludeRules context="_default_rule"/> 0544 </context> 0545 <context name="_rule_without_statement_level4" attribute="Normal Text" lineEndContext="#stay"> 0546 <IncludeRules context="_default_rule_without_statement"/> 0547 <IncludeRules context="_rule_level4"/> 0548 </context> 0549 0550 <context name="_rule_bracket_level5" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop!_rule_without_statement_level5" lineEndContext="#stay"> 0551 <IncludeRules context="_default_rule_bracket"/> 0552 <RegExpr context="#pop!_statement_level5" attribute="Normal Text" String="&statementchar;" lookAhead="true"/> 0553 </context> 0554 <context name="_statement_level5" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop!_rule_level5" lineEndContext="#pop!_rule_level5"> 0555 <IncludeRules context="_default_statement"/> 0556 <RegExpr context="#pop!_rule_without_statement_level5" attribute="Normal Text" String="&statementchar;" lookAhead="true"/> 0557 </context> 0558 <context name="_rule_level5" attribute="Normal Text" lineEndContext="#stay"> 0559 <DetectChar attribute="Brackets Level 6" context="_rule_bracket_level6" char="("/> 0560 <DetectChar attribute="Brackets Level 5" context="#pop" char=")" /> 0561 <IncludeRules context="_default_rule"/> 0562 </context> 0563 <context name="_rule_without_statement_level5" attribute="Normal Text" lineEndContext="#stay"> 0564 <IncludeRules context="_default_rule_without_statement"/> 0565 <IncludeRules context="_rule_level5"/> 0566 </context> 0567 0568 <context name="_rule_bracket_level6" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop!_rule_without_statement_level6" lineEndContext="#stay"> 0569 <IncludeRules context="_default_rule_bracket"/> 0570 <RegExpr context="#pop!_statement_level6" attribute="Normal Text" String="&statementchar;" lookAhead="true"/> 0571 </context> 0572 <context name="_statement_level6" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop!_rule_level6" lineEndContext="#pop!_rule_level6"> 0573 <IncludeRules context="_default_statement"/> 0574 <RegExpr context="#pop!_rule_without_statement_level6" attribute="Normal Text" String="&statementchar;" lookAhead="true"/> 0575 </context> 0576 <context name="_rule_level6" attribute="Normal Text" lineEndContext="#stay"> 0577 <DetectChar attribute="Brackets Level 1" context="_rule_bracket_level1" char="("/> 0578 <DetectChar attribute="Brackets Level 6" context="#pop" char=")" /> 0579 <IncludeRules context="_default_rule"/> 0580 </context> 0581 <context name="_rule_without_statement_level6" attribute="Normal Text" lineEndContext="#stay"> 0582 <IncludeRules context="_default_rule_without_statement"/> 0583 <IncludeRules context="_rule_level6"/> 0584 </context> 0585 0586 <!-- File Contexts --> 0587 <!-- user:role:type --> 0588 <context name="_file_contexts" attribute="File Contexts" lineEndContext="#pop"> 0589 <DetectChar context="#pop!_fc_role" attribute="Normal Text" char=":"/> 0590 <DetectSpaces context="#pop" attribute="Normal Text" lookAhead="true"/> 0591 </context> 0592 <context name="_fc_role" attribute="File Contexts" lineEndContext="#pop"> 0593 <DetectChar context="#pop!_fc_type" attribute="Normal Text" char=":"/> 0594 <DetectSpaces context="#pop" attribute="Normal Text" lookAhead="true"/> 0595 </context> 0596 <context name="_fc_type" attribute="File Contexts (Type Enforcement)" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 0597 <RegExpr context="#pop!_fc_mls" attribute="File Contexts (Type Enforcement)" String="&fullIdentifier;(?=\:&mlsLevel;)"/> <!-- Find Level/Range --> 0598 <RegExpr context="#pop" attribute="File Contexts (Type Enforcement)" String="&fullIdentifier;"/> 0599 </context> 0600 <!-- (MLS/MCS) user:role:type:level --> 0601 <context name="_fc_mls" attribute="File Contexts" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 0602 <DetectChar context="#pop!_fc_level_range_sen" attribute="Normal Text" char=":"/> 0603 </context> 0604 <context name="_fc_level_range_sen" attribute="File Contexts" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 0605 <RegExpr context="#pop!_fc_level_range_cat" attribute="Normal Text" String=":(?=&identifier;)"/> <!-- Find Category --> 0606 <RegExpr context="#pop!_fc_level_sen" attribute="Normal Text" String="\s*\-\s*(?=&mlsLevel;)"/> <!-- Find Range --> 0607 <RegExpr context="#stay" attribute="Normal Text" String="\.(?=&identifier;)"/> 0608 <IncludeRules context="_default_fc_level"/> 0609 </context> 0610 <context name="_fc_level_range_cat" attribute="File Contexts" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 0611 <RegExpr context="#pop!_fc_level_sen" attribute="Normal Text" String="\s*\-\s*(?=&mlsLevel;)"/> <!-- Find Range --> 0612 <RegExpr context="#stay" attribute="Normal Text" String="(?:\.|\s*,\s*)(?=&identifier;)"/> 0613 <IncludeRules context="_default_fc_level"/> 0614 </context> 0615 <!-- (MLS/MCS) user:role:type:level-level --> 0616 <context name="_fc_level_sen" attribute="File Contexts" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 0617 <RegExpr context="#pop!_fc_level_cat" attribute="Normal Text" String=":(?=&identifier;)"/> <!-- Find Category --> 0618 <RegExpr context="#stay" attribute="Normal Text" String="\.(?=&identifier;)"/> 0619 <IncludeRules context="_default_fc_level"/> 0620 </context> 0621 <context name="_fc_level_cat" attribute="File Contexts" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 0622 <RegExpr context="#stay" attribute="Normal Text" String="(?:\.|\s*,\s*)(?=&identifier;)"/> 0623 <IncludeRules context="_default_fc_level"/> 0624 </context> 0625 <context name="_default_fc_level" attribute="File Contexts" lineEndContext="#pop"> 0626 <RegExpr context="#stay" attribute="File Contexts" String="\w+"/> 0627 <DetectChar context="#stay" attribute="File Contexts" char="-"/> 0628 </context> 0629 0630 </contexts> 0631 0632 <itemDatas> 0633 <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/> 0634 <itemData name="Comment" defStyleNum="dsComment"/> 0635 <itemData name="Text Quoted" defStyleNum="dsString" spellChecking="false"/> 0636 <itemData name="Path" defStyleNum="dsNormal" spellChecking="false"/> 0637 0638 <itemData name="Statements" defStyleNum="dsKeyword" bold="1" italic="0" underline="0" spellChecking="false"/> 0639 <itemData name="Type Statements" defStyleNum="dsFunction" bold="1" italic="0" underline="0" spellChecking="false"/> 0640 <itemData name="Policy Config. Statements" defStyleNum="dsPreprocessor" bold="1" italic="0" underline="0" spellChecking="false"/> 0641 <itemData name="Access Keys" defStyleNum="dsWarning" bold="1" italic="0" underline="0" spellChecking="false"/> 0642 <itemData name="Expression Keys" defStyleNum="dsVariable" bold="1" italic="0" underline="0" spellChecking="false"/> 0643 <itemData name="Type Name Statements" defStyleNum="dsDataType" bold="1" italic="0" underline="0" spellChecking="false"/> 0644 <itemData name="Booleans" defStyleNum="dsExtension" bold="1" spellChecking="false"/> 0645 0646 <itemData name="Types" defStyleNum="dsDataType" bold="0" spellChecking="false"/> 0647 <itemData name="Special Keys" defStyleNum="dsOthers" spellChecking="false"/> 0648 <itemData name="File Contexts" defStyleNum="dsSpecialString" bold="0" italic="0" underline="0" spellChecking="false"/> 0649 <itemData name="File Contexts (Type Enforcement)" defStyleNum="dsInformation" bold="0" italic="0" underline="0" spellChecking="false"/> 0650 <itemData name="Policy Capability" defStyleNum="dsPreprocessor" bold="0" italic="0" underline="0" spellChecking="false"/> 0651 <itemData name="Filesystem" defStyleNum="dsNormal" italic="1" spellChecking="false"/> 0652 <itemData name="Other Keywords" defStyleNum="dsNormal" italic="1" spellChecking="false"/> 0653 0654 <itemData name="Number" defStyleNum="dsDecVal" spellChecking="false"/> 0655 <itemData name="Hexadecimal" defStyleNum="dsBaseN" spellChecking="false"/> 0656 0657 <!-- Obtained from "scheme.xml" --> 0658 <itemData name="Brackets Level 1" defStyleNum="dsNormal" color="#c6262e" bold="1" spellChecking="false"/> 0659 <itemData name="Brackets Level 2" defStyleNum="dsNormal" color="#ff8800" bold="1" spellChecking="false"/> 0660 <itemData name="Brackets Level 3" defStyleNum="dsNormal" color="#888800" bold="1" spellChecking="false"/> 0661 <itemData name="Brackets Level 4" defStyleNum="dsNormal" color="#009400" bold="1" spellChecking="false"/> 0662 <itemData name="Brackets Level 5" defStyleNum="dsNormal" color="#3689e6" bold="1" spellChecking="false"/> 0663 <itemData name="Brackets Level 6" defStyleNum="dsNormal" color="#a56de2" bold="1" spellChecking="false"/> 0664 0665 <itemData name="Special Char" defStyleNum="dsSpecialChar" spellChecking="false"/> 0666 <itemData name="Special Char of Brackets (Paths)" defStyleNum="dsAnnotation" bold="0" italic="0" underline="0" spellChecking="false"/> 0667 <itemData name="RegExp Brackets (Paths)" defStyleNum="dsSpecialString" spellChecking="false"/> 0668 <itemData name="Open RegExp Brackets (Paths)" defStyleNum="dsSpecialString" underline="1" spellChecking="false"/> 0669 <itemData name="Text Quoted Open" defStyleNum="dsString" underline="1" spellChecking="false"/> 0670 0671 <itemData name="Error" defStyleNum="dsError" spellChecking="false"/> 0672 </itemDatas> 0673 0674 </highlighting> 0675 0676 <general> 0677 <keywords casesensitive="true" additionalDeliminator=""'`" weakDeliminator="-"/> 0678 <comments> 0679 <comment name="singleLine" start=";"/> 0680 </comments> 0681 </general> 0682 0683 </language> 0684 <!-- kate: replace-tabs off; tab-width 3; indent-width 3; remove-trailing-spaces mod; dynamic-word-wrap off; -->