Warning, /frameworks/syntax-highlighting/data/generators/cmake.xml.tpl is written in an unsupported language. File is not indexed.

0001 <?xml version="1.0" encoding="UTF-8"?>
0002 <!DOCTYPE language
0003 [
0004   <!-- NOTE See https://cmake.org/cmake/help/latest/manual/cmake-language.7.html#variable-references -->
0005   <!ENTITY var_ref_re "[/\.\+\-_0-9A-Za-z]+">
0006   <!-- NOTE See `cmGeneratorExpression::IsValidTargetName` -->
0007   <!ENTITY tgt_name_re "[A-Za-z0-9_\.\+\-]+">
0008 ]>
0009 <!--
0010     This file is part of KDE's kate project.
0011 
0012     SPDX-FileCopyrightText: 2004 Alexander Neundorf <neundorf@kde.org>
0013     SPDX-FileCopyrightText: 2005 Dominik Haumann <dhdev@gmx.de>
0014     SPDX-FileCopyrightText: 2007, 2008, 2013, 2014 Matthew Woehlke <mw_triad@users.sourceforge.net>
0015     SPDX-FileCopyrightText: 2013-2015, 2017-2023 Alex Turbov <i.zaufi@gmail.com>
0016 
0017     SPDX-License-Identifier: LGPL-2.0-or-later
0018  -->
0019 
0020 <!-- ***** THIS FILE WAS GENERATED BY A SCRIPT - DO NOT EDIT *****
0021   cd data/generators
0022   # increase version of cmake.xml.tpl then
0023   ./generate-cmake-syntax.py cmake.yaml > ../syntax/cmake.xml
0024 -->
0025 
0026 <language
0027     name="CMake"
0028     version="<!--{version}-->"
0029     kateversion="5.62"
0030     section="Other"
0031     extensions="CMakeLists.txt;*.cmake;*.cmake.in"
0032     style="CMake"
0033     mimetype="text/x-cmake"
0034     author="Alex Turbov (i.zaufi@gmail.com)"
0035     license="LGPLv2+"
0036   >
0037   <highlighting>
0038 
0039     <list name="commands">
0040     <!--[- for command in commands ]-->
0041         <item><!--{command.name}--></item>
0042     <!--[- endfor ]-->
0043     </list>
0044 
0045     <!--[- macro render_command_arg_lists(commands) ]-->
0046     <!--[- for command in commands -]-->
0047       <!--[- if command.named_args and command.named_args.kw ]-->
0048     <list name="<!--{command.name}-->_nargs">
0049         <!--[- for arg in command.named_args.kw ]-->
0050       <item><!--{arg}--></item>
0051         <!--[- endfor ]-->
0052     </list>
0053       <!--[- endif ]-->
0054       <!--[- if command.special_args and command.special_args.kw ]-->
0055     <list name="<!--{command.name}-->_sargs">
0056         <!--[- for arg in command.special_args.kw ]-->
0057       <item><!--{arg}--></item>
0058         <!--[- endfor ]-->
0059     </list>
0060       <!--[- endif ]-->
0061     <!--[- endfor ]-->
0062     <!--[- endmacro ]-->
0063     <!--{- render_command_arg_lists(commands) }-->
0064     <!--{- render_command_arg_lists(standard_module_commands) }-->
0065 
0066     <list name="variables">
0067     <!--[- for var in variables.kw ]-->
0068       <item><!--{var}--></item>
0069     <!--[- endfor ]-->
0070     </list>
0071 
0072     <list name="deprecated-or-internal-variables">
0073     <!--[- for var in deprecated_or_internal_variables.kw ]-->
0074       <item><!--{var}--></item>
0075     <!--[- endfor ]-->
0076     </list>
0077 
0078     <list name="environment-variables">
0079     <!--[- for var in environment_variables.kw ]-->
0080       <item><!--{var}--></item>
0081     <!--[- endfor ]-->
0082     </list>
0083 
0084     <!--[- for kind in properties.kinds ]-->
0085     <list name="<!--{ kind|replace('_', '-') }-->">
0086       <!--[- for prop in properties[kind].kw ]-->
0087       <item><!--{prop}--></item>
0088       <!--[- endfor ]-->
0089     </list>
0090     <!--[- endfor ]-->
0091 
0092     <list name="generator-expressions">
0093       <!--[- for expr in generator_expressions ]-->
0094       <item><!--{ expr }--></item>
0095       <!--[- endfor ]-->
0096     </list>
0097     <!--[- for expr in complex_generator_expressions ]-->
0098     <list name="genex-<!--{expr.name}-->-subcommands">
0099       <!--[- for cmd in expr.subcommands ]-->
0100       <item><!--{ cmd }--></item>
0101       <!--[- endfor ]-->
0102     </list>
0103     <!--[- endfor ]-->
0104 
0105     <list name="standard-modules">
0106       <!--[- for module in modules.utility ]-->
0107       <item><!--{ module }--></item>
0108       <!--[- endfor ]-->
0109     </list>
0110 
0111     <list name="standard-finder-modules">
0112       <!--[- for module in modules.finder ]-->
0113       <item><!--{ module | replace('Find', '') }--></item>
0114       <!--[- endfor ]-->
0115     </list>
0116 
0117     <list name="deprecated-modules">
0118       <!--[- for module in modules.deprecated ]-->
0119       <item><!--{ module }--></item>
0120       <!--[- endfor ]-->
0121     </list>
0122 
0123     <!-- Source/cmStringAlgorithms.cxx: bool cmIsOff(cm::string_view val) -->
0124     <list name="true_special_arg">
0125       <item>TRUE</item>
0126       <item>ON</item>
0127       <item>YES</item>
0128       <item>Y</item>
0129       <item>0</item>
0130     </list>
0131 
0132     <!-- Source/cmStringAlgorithms.cxx: bool cmIsOff(cm::string_view val) -->
0133     <list name="false_special_arg">
0134       <item>FALSE</item>
0135       <item>OFF</item>
0136       <item>NO</item>
0137       <item>IGNORE</item>
0138       <item>N</item>
0139       <item>0</item>
0140     </list>
0141 
0142     <contexts>
0143 
0144       <context attribute="Normal Text" lineEndContext="#stay" name="Normal Text">
0145         <DetectSpaces />
0146         <!--[ for command in commands -]-->
0147         <WordDetect String="<!--{command.name}-->" insensitive="true" attribute="<!--{command.attribute}-->" context="<!--{command.name}-->_ctx"<!--[ if command.start_region ]--> beginRegion="<!--{command.start_region}-->"<!--[ endif -]--> <!--[- if command.end_region ]--> endRegion="<!--{command.end_region}-->"<!--[ endif ]--> />
0148         <!--[ endfor -]-->
0149         <!--[ for command in standard_module_commands -]-->
0150         <WordDetect String="<!--{command.name}-->" insensitive="true" attribute="CMake Provided Function/Macro" context="<!--{command.name}-->_ctx" />
0151         <!--[ endfor -]-->
0152         <DetectChar attribute="Comment" context="Match Comments and Docs" char="#" lookAhead="true" />
0153         <DetectIdentifier attribute="User Function/Macro" context="User Function" />
0154         <RegExpr attribute="@Variable Substitution" context="@VarSubst" String="@&var_ref_re;@" lookAhead="true" />
0155         <IncludeRules context="LineError" />
0156       </context>
0157       <!--[- macro render_command_parsers(commands) ]-->
0158       <!--[ for command in commands -]-->
0159       <context attribute="Normal Text" lineEndContext="#stay" name="<!--{command.name}-->_ctx">
0160         <DetectChar attribute="Normal Text" context="<!--{command.name}-->_ctx_op<!--{'_tgt_first' if command.first_arg_is_target else '_tgts_first' if command.first_args_are_targets else ''}-->" char="(" />
0161         <DetectChar attribute="Normal Text" context="#pop" char=")" />
0162       </context>
0163         <!--[- if command.first_arg_is_target ]-->
0164       <context attribute="Normal Text" lineEndContext="#stay" name="<!--{command.name}-->_ctx_op_tgt_first">
0165         <DetectSpaces />
0166         <RegExpr attribute="Aliased Targets" context="<!--{command.name}-->_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*" />
0167         <RegExpr attribute="Targets" context="<!--{command.name}-->_ctx_op" String="&tgt_name_re;" />
0168         <IncludeRules context="User Function Opened" />
0169         <IncludeRules context="LineError" />
0170       </context>
0171         <!--[- endif ]-->
0172         <!--[- if command.first_args_are_targets ]-->
0173       <context attribute="Normal Text" lineEndContext="#stay" name="<!--{command.name}-->_ctx_op_tgts_first">
0174         <DetectSpaces />
0175         <!--[- if command.named_args and command.named_args.kw ]-->
0176           <!-- NOTE Handle the only case in CMake nowadays:
0177               1. `set_target_properties` have a named keyword (`PROPERTIES`) after targets list
0178           -->
0179         <keyword context="<!--{command.name}-->_ctx_op" String="<!--{command.name}-->_nargs" lookAhead="true" />
0180           <!--[- endif ]-->
0181         <IncludeRules context="Detect Aliased Targets" />
0182         <IncludeRules context="Detect Targets" />
0183         <IncludeRules context="User Function Opened" />
0184         <IncludeRules context="LineError" />
0185       </context>
0186         <!--[- endif ]-->
0187         <!--[- if not command.first_args_are_targets or (command.named_args and command.named_args.kw) ]-->
0188       <context attribute="Normal Text" lineEndContext="#stay" name="<!--{command.name}-->_ctx_op">
0189         <DetectSpaces />
0190         <!--[- if command.nested_parentheses ]-->
0191         <DetectChar attribute="Normal Text" context="<!--{command.name}-->_ctx_op_nested" char="(" />
0192         <!--[- endif ]-->
0193         <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true" />
0194         <!--[- if command.named_args and command.named_args.kw ]-->
0195           <!--[- if command.has_target_name_after_kw ]-->
0196         <WordDetect String="<!--{command.has_target_name_after_kw}-->" attribute="Named Args" context="Target Name" />
0197           <!--[- endif ]-->
0198           <!--[- if command.has_target_names_after_kw ]-->
0199         <WordDetect String="<!--{command.has_target_names_after_kw}-->" attribute="Named Args" context="<!--{command.name}-->_tgts" />
0200           <!--[- endif ]-->
0201         <keyword attribute="Named Args" context="#stay" String="<!--{command.name}-->_nargs" />
0202         <!--[- endif ]-->
0203         <!--[- if command.name == 'include' ]-->
0204         <keyword attribute="Standard Module" context="#stay" String="standard-modules" />
0205         <keyword attribute="Deprecated Module" context="#stay" String="deprecated-modules" />
0206         <!--[- endif ]-->
0207         <!--[- if command.name == 'find_package' ]-->
0208         <keyword attribute="Standard Module" context="#stay" String="standard-finder-modules" />
0209         <!--[- endif ]-->
0210         <!--[- if command.special_args and command.special_args.kw ]-->
0211         <keyword attribute="Special Args" context="#stay" String="<!--{command.name}-->_sargs" />
0212         <!--[- endif ]-->
0213         <!--[- if command.property_args and command.property_args.kw ]-->
0214           <!--[- for kind in command.property_args.kw ]-->
0215         <keyword attribute="Property" context="#stay" String="<!--{kind}-->" />
0216             <!--[- if properties[kind|replace('-', '_')].re ]-->
0217         <IncludeRules context="Detect More <!--{kind}-->" />
0218             <!--[- endif ]-->
0219           <!--[- endfor ]-->
0220         <!--[- endif ]-->
0221         <!--[- if command is not nulary ]-->
0222         <IncludeRules context="User Function Args" />
0223           <!--[- if command.name == 'cmake_policy' ]-->
0224         <!-- NOTE Handle CMP<NNN> as a special arg of `cmake_policy` command -->
0225         <RegExpr attribute="Special Args" context="#stay" String="\bCMP[0-9]+\b" />
0226           <!--[- endif ]-->
0227         <!--[- endif ]-->
0228       </context>
0229         <!--[- endif ]-->
0230         <!--[- if command.has_target_names_after_kw ]-->
0231       <context attribute="Normal Text" lineEndContext="#stay" name="<!--{command.name}-->_tgts">
0232         <DetectSpaces />
0233         <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true" />
0234         <keyword attribute="Named Args" context="#pop" String="<!--{command.name}-->_nargs" />
0235         <IncludeRules context="Detect Aliased Targets" />
0236         <IncludeRules context="Detect Targets" />
0237         <IncludeRules context="User Function Args" />
0238         <IncludeRules context="LineError" />
0239       </context>
0240         <!--[- endif ]-->
0241         <!--[- if command.nested_parentheses ]-->
0242       <context attribute="Normal Text" lineEndContext="#stay" name="<!--{command.name}-->_ctx_op_nested">
0243         <DetectSpaces />
0244         <DetectChar attribute="Normal Text" context="#pop" char=")" />
0245         <DetectChar attribute="Normal Text" context="<!--{command.name}-->_ctx_op_nested" char="(" />
0246         <!--[- if command.named_args and command.named_args.kw ]-->
0247         <keyword attribute="Named Args" context="#stay" String="<!--{command.name}-->_nargs" />
0248         <!--[- endif ]-->
0249         <!--[- if command.special_args and command.special_args.kw ]-->
0250         <keyword attribute="Special Args" context="#stay" String="<!--{command.name}-->_sargs" />
0251         <!--[- endif ]-->
0252         <!--[- if command.property_args and command.property_args.kw ]-->
0253           <!--[- for kind in command.property_args.kw ]-->
0254         <keyword attribute="Property" context="#stay" String="<!--{kind}-->" />
0255               <!--[- if properties[kind|replace('-', '_')].re ]-->
0256         <IncludeRules context="Detect More <!--{kind}-->" />
0257             <!--[- endif ]-->
0258           <!--[- endfor ]-->
0259         <!--[- endif ]-->
0260         <IncludeRules context="User Function Args" />
0261       </context>
0262         <!--[- endif ]-->
0263       <!--[ endfor -]-->
0264       <!--[- endmacro -]-->
0265       <!--{- render_command_parsers(commands) -}-->
0266       <!--{- render_command_parsers(standard_module_commands) -}-->
0267       <!--[ for kind in properties.kinds if properties[kind].re -]-->
0268       <context attribute="Normal Text" lineEndContext="#stay" name="Detect More <!--{ kind|replace('_', '-') }-->">
0269         <RegExpr attribute="Property" context="#stay" String="<!--{properties[kind].re}-->" />
0270       </context><!--{ '\n' }-->
0271       <!--[ endfor -]-->
0272 
0273       <context attribute="User Function/Macro" lineEndContext="#stay" name="User Function">
0274         <DetectChar attribute="Normal Text" context="User Function Opened" char="(" />
0275         <DetectChar attribute="Normal Text" context="#pop" char=")" />
0276       </context>
0277 
0278       <context attribute="Normal Text" lineEndContext="#stay" name="User Function Opened">
0279         <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true" />
0280         <IncludeRules context="User Function Args" />
0281       </context>
0282 
0283       <context attribute="Normal Text" lineEndContext="#stay" name="Detect Builtin Variables">
0284         <RegExpr attribute="Internal Name" context="#stay" String="\b_&var_ref_re;\b" />
0285         <keyword attribute="CMake Internal Variable" context="#stay" String="deprecated-or-internal-variables" insensitive="false" />
0286         <keyword attribute="Builtin Variable" context="#stay" String="variables" insensitive="false" />
0287         <IncludeRules context="Detect More Builtin Variables" />
0288       </context>
0289 
0290       <context attribute="Normal Text" lineEndContext="#stay" name="Detect More Builtin Variables">
0291         <!--[- if deprecated_or_internal_variables.re ]-->
0292         <RegExpr attribute="CMake Internal Variable" context="#stay" String="<!--{deprecated_or_internal_variables.re}-->" />
0293         <!--[- endif ]-->
0294         <!--[- if variables.re ]-->
0295         <RegExpr attribute="Builtin Variable" context="#stay" String="<!--{variables.re}-->" />
0296         <!--[- endif ]-->
0297       </context>
0298 
0299       <context attribute="Normal Text" lineEndContext="#stay" name="Detect Variable Substitutions">
0300         <RegExpr attribute="Cache Variable Substitution" context="#stay" String="\$CACHE\{\s*[\w-]+\s*\}" />
0301         <RegExpr attribute="Environment Variable Substitution" context="EnvVarSubst" String="\$?ENV\{" />
0302         <Detect2Chars attribute="Variable Substitution" context="VarSubst" char="$" char1="{" />
0303         <RegExpr attribute="@Variable Substitution" context="@VarSubst" String="@&var_ref_re;@" lookAhead="true" />
0304       </context>
0305 
0306       <context attribute="Environment Variable Substitution" lineEndContext="#pop" name="EnvVarSubst">
0307         <DetectChar attribute="Environment Variable Substitution" context="#pop" char="}" />
0308         <keyword attribute="Standard Environment Variable" context="#stay" String="environment-variables" insensitive="false" />
0309         <!--[- if environment_variables.re ]-->
0310         <RegExpr attribute="Standard Environment Variable" context="#stay" String="<!--{environment_variables.re}-->" />
0311         <!--[- endif ]-->
0312         <DetectIdentifier />
0313         <IncludeRules context="Detect Variable Substitutions" />
0314       </context>
0315 
0316       <context attribute="Variable Substitution" lineEndContext="#pop" name="VarSubst">
0317         <DetectChar attribute="Variable Substitution" context="#pop" char="}" />
0318         <IncludeRules context="Detect Builtin Variables" />
0319         <DetectIdentifier />
0320         <IncludeRules context="Detect Variable Substitutions" />
0321       </context>
0322 
0323       <context attribute="@Variable Substitution" lineEndContext="#pop" name="@VarSubst">
0324         <DetectChar attribute="@Variable Substitution" context="VarSubst@" char="@" />
0325       </context>
0326 
0327       <context attribute="@Variable Substitution" lineEndContext="#pop#pop" name="VarSubst@">
0328         <DetectChar attribute="@Variable Substitution" context="#pop#pop" char="@" />
0329         <IncludeRules context="Detect Builtin Variables" />
0330         <DetectIdentifier />
0331       </context>
0332 
0333       <context attribute="Normal Text" lineEndContext="#stay" name="Target Name">
0334         <DetectSpaces />
0335         <RegExpr attribute="Aliased Targets" context="#pop" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*" />
0336         <IncludeRules context="Detect Targets" />
0337         <IncludeRules context="User Function Opened" />
0338         <IncludeRules context="LineError" />
0339       </context>
0340 
0341       <context attribute="Normal Text" lineEndContext="#stay" name="Detect Targets">
0342         <RegExpr attribute="Targets" context="#stay" String="&tgt_name_re;" />
0343       </context>
0344 
0345       <context attribute="Normal Text" lineEndContext="#stay" name="LineError">
0346         <RegExpr attribute="Error" context="#stay" String=".*" />
0347       </context>
0348 
0349       <context attribute="Normal Text" lineEndContext="#stay" name="User Function Args">
0350         <Detect2Chars attribute="Normal Text" context="#stay" char="\" char1="(" />
0351         <Detect2Chars attribute="Normal Text" context="#stay" char="\" char1=")" />
0352         <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="&quot;" />
0353         <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="$" />
0354         <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="n" />
0355         <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="\" />
0356         <DetectChar attribute="Strings" context="String" char="&quot;" />
0357         <RegExpr attribute="Strings" context="Bracketed String" String="\[(=*)\[" beginRegion="BracketedString" />
0358         <DetectChar attribute="Comment" context="Match Comments" char="#" lookAhead="true" />
0359         <IncludeRules context="Detect Builtin Variables" />
0360         <IncludeRules context="Detect Variable Substitutions" />
0361         <IncludeRules context="Detect Special Values" />
0362         <IncludeRules context="Detect Aliased Targets" />
0363         <IncludeRules context="Detect Generator Expressions" />
0364         <DetectIdentifier />
0365       </context>
0366 
0367       <context attribute="Normal Text" lineEndContext="#stay" name="Detect Special Values">
0368         <RegExpr attribute="Version Arg" context="#stay" String="\b[0-9]++(.[0-9]++)+\b" />
0369         <keyword attribute="True Special Arg" context="#stay" String="true_special_arg" insensitive="true" />
0370         <keyword attribute="False Special Arg" context="#stay" String="false_special_arg" insensitive="true" />
0371         <RegExpr attribute="False Special Arg" context="#stay" String="\b(?:&var_ref_re;-)?NOTFOUND\b" />
0372         <RegExpr attribute="Special Args" context="#stay" String="\bCMP[0-9][0-9][0-9][0-9]\b" />
0373       </context>
0374 
0375       <context attribute="Normal Text" lineEndContext="#stay" name="Detect Aliased Targets">
0376         <RegExpr attribute="Aliased Targets" context="#stay" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*" />
0377       </context>
0378 
0379       <context attribute="Comment" lineEndContext="#pop" name="Match Comments">
0380         <DetectSpaces />
0381         <RegExpr attribute="Comment" context="#pop!Bracketed Comment" String="#\[(=*)\[" beginRegion="BracketedComment" />
0382         <DetectChar attribute="Comment" context="#pop!Comment" char="#" />
0383         <DetectIdentifier />
0384       </context>
0385 
0386       <context attribute="Comment" lineEndContext="#pop" name="Match Comments and Docs">
0387         <RegExpr attribute="Region Marker" context="#pop!RST Documentation" String="^#\[(=*)\[\.rst:" column="0" beginRegion="RSTDocumentation" />
0388         <IncludeRules context="Match Comments" />
0389       </context>
0390 
0391       <context attribute="Comment" lineEndContext="#pop" name="Comment">
0392         <DetectSpaces />
0393         <LineContinue attribute="Comment" context="#pop" />
0394         <IncludeRules context="##Comments" />
0395         <DetectIdentifier />
0396       </context>
0397 
0398       <context attribute="Comment" lineEndContext="#stay" name="RST Documentation" dynamic="true">
0399         <RegExpr attribute="Region Marker" context="#pop" String="^#?\]%1\]" dynamic="true" column="0" endRegion="RSTDocumentation" />
0400         <IncludeRules context="##reStructuredText" />
0401       </context>
0402 
0403       <context attribute="Comment" lineEndContext="#stay" name="Bracketed Comment" dynamic="true">
0404         <LineContinue attribute="Comment" context="#stay" />
0405         <DetectSpaces />
0406         <StringDetect attribute="Comment" context="#pop" String="]%1]" dynamic="true" endRegion="BracketedComment" />
0407         <IncludeRules context="##Comments" />
0408       </context>
0409 
0410       <context attribute="Strings" lineEndContext="#stay" name="String">
0411         <DetectSpaces />
0412         <DetectIdentifier />
0413         <RegExpr attribute="Strings" context="#pop" String="&quot;(?=[ );]|$)" />
0414         <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="&quot;" />
0415         <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="$" />
0416         <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="n" />
0417         <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="r" />
0418         <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="t" />
0419         <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="\" />
0420         <IncludeRules context="Detect Variable Substitutions" />
0421         <IncludeRules context="Detect Generator Expressions" />
0422       </context>
0423 
0424       <context attribute="Strings" lineEndContext="#stay" name="Bracketed String" dynamic="true">
0425         <StringDetect attribute="Strings" context="#pop" String="]%1]" dynamic="true" endRegion="BracketedString" />
0426       </context>
0427 
0428       <context attribute="Normal Text" lineEndContext="#stay" name="Detect Generator Expressions">
0429         <Detect2Chars attribute="Generator Expression" context="Generator Expression" char="$" char1="&lt;" />
0430       </context>
0431 
0432       <context attribute="Generator Expression" lineEndContext="#stay" name="Generator Expression">
0433         <IncludeRules context="Detect Generator Expressions" />
0434         <DetectChar attribute="Comment" context="Comment" char="#" />
0435         <DetectChar attribute="Generator Expression" context="#pop" char="&gt;" />
0436         <keyword attribute="Generator Expression Keyword" context="#stay" String="generator-expressions" insensitive="false" />
0437         <!--[- for expr in complex_generator_expressions ]-->
0438         <WordDetect String="<!--{expr.name}-->" attribute="Generator Expression Keyword" context="genex_<!--{expr.name}-->_ctx" />
0439         <!--[- endfor ]-->
0440         <IncludeRules context="Detect Aliased Targets" />
0441         <IncludeRules context="Detect Variable Substitutions" />
0442         <DetectIdentifier />
0443       </context>
0444 
0445       <!--[- for expr in complex_generator_expressions ]-->
0446       <context attribute="Generator Expression" lineEndContext="#stay" name="genex_<!--{expr.name}-->_ctx" fallthroughContext="#pop">
0447         <DetectChar char=":" context="#stay" />
0448         <DetectSpaces />
0449         <keyword attribute="Generator Expression Sub-Command" context="#pop" String="genex-<!--{expr.name}-->-subcommands" insensitive="false" />
0450       </context>
0451       <!--[- endfor ]-->
0452 
0453     </contexts>
0454 
0455     <itemDatas>
0456       <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" />
0457       <itemData name="Comment" defStyleNum="dsComment" spellChecking="true" />
0458       <itemData name="Command" defStyleNum="dsKeyword" spellChecking="false" />
0459       <itemData name="Control Flow" defStyleNum="dsControlFlow" spellChecking="false" />
0460       <itemData name="CMake Provided Function/Macro" defStyleNum="dsFunction" bold="true" spellChecking="false" />
0461       <itemData name="User Function/Macro"  defStyleNum="dsFunction" spellChecking="false" />
0462       <itemData name="Property" defStyleNum="dsOthers" spellChecking="false" />
0463       <itemData name="Targets" defStyleNum="dsBaseN" spellChecking="false" />
0464       <itemData name="Aliased Targets" defStyleNum="dsBaseN" spellChecking="false" />
0465       <itemData name="Named Args" defStyleNum="dsOthers" spellChecking="false" />
0466       <itemData name="Special Args" defStyleNum="dsOthers" spellChecking="false" />
0467       <itemData name="True Special Arg" defStyleNum="dsOthers" color="#30a030" selColor="#30a030" spellChecking="false" />
0468       <itemData name="False Special Arg" defStyleNum="dsOthers" color="#e05050" selColor="#e05050" spellChecking="false" />
0469       <itemData name="Version Arg" defStyleNum="dsDataType" spellChecking="false" />
0470       <itemData name="Strings" defStyleNum="dsString" spellChecking="true" />
0471       <itemData name="Escapes" defStyleNum="dsSpecialChar" spellChecking="false" />
0472       <itemData name="Builtin Variable" defStyleNum="dsDecVal" color="#c09050" selColor="#c09050" spellChecking="false" />
0473       <itemData name="CMake Internal Variable" defStyleNum="dsVariable" spellChecking="false" />
0474       <itemData name="Internal Name" defStyleNum="dsVariable" spellChecking="false" />
0475       <itemData name="Variable Substitution" defStyleNum="dsDecVal" spellChecking="false" />
0476       <itemData name="@Variable Substitution" defStyleNum="dsBaseN" spellChecking="false" />
0477       <itemData name="Cache Variable Substitution" defStyleNum="dsFloat" spellChecking="false" />
0478       <itemData name="Environment Variable Substitution" defStyleNum="dsFloat" spellChecking="false" />
0479       <itemData name="Standard Environment Variable" defStyleNum="dsFloat" spellChecking="false" />
0480       <itemData name="Generator Expression Keyword" defStyleNum="dsKeyword" color="#b84040" selColor="#b84040" spellChecking="false" />
0481       <itemData name="Generator Expression Sub-Command" defStyleNum="dsKeyword" color="#c05050" selColor="#c05050" spellChecking="false" />
0482       <itemData name="Generator Expression" defStyleNum="dsOthers" color="#b86050" selColor="#b86050" spellChecking="false" />
0483       <itemData name="Standard Module" defStyleNum="dsImport" spellChecking="false" />
0484       <itemData name="Deprecated Module" defStyleNum="dsImport" spellChecking="false" />
0485       <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false" />
0486       <itemData name="Error" defStyleNum="dsError" spellChecking="false" />
0487     </itemDatas>
0488 
0489   </highlighting>
0490 
0491   <general>
0492     <comments>
0493       <comment name="singleLine" start="#" position="afterwhitespace" />
0494       <comment name="multiLine" start="#[[" end="]]" region="BracketedComment" />
0495     </comments>
0496     <keywords casesensitive="1" weakDeliminator="." />
0497   </general>
0498 </language>
0499 
0500 <!-- kate: replace-tabs on; indent-width 2; tab-width 2; -->