cmake.xml

 1<lexer>
 2  <config>
 3    <name>CMake</name>
 4    <alias>cmake</alias>
 5    <filename>*.cmake</filename>
 6    <filename>CMakeLists.txt</filename>
 7    <mime_type>text/x-cmake</mime_type>
 8  </config>
 9  <rules>
10    <state name="root">
11      <rule pattern="\b(\w+)([ \t]*)(\()">
12        <bygroups>
13          <token type="NameBuiltin"/>
14          <token type="Text"/>
15          <token type="Punctuation"/>
16        </bygroups>
17        <push state="args"/>
18      </rule>
19      <rule>
20        <include state="keywords"/>
21      </rule>
22      <rule>
23        <include state="ws"/>
24      </rule>
25    </state>
26    <state name="args">
27      <rule pattern="\(">
28        <token type="Punctuation"/>
29        <push/>
30      </rule>
31      <rule pattern="\)">
32        <token type="Punctuation"/>
33        <pop depth="1"/>
34      </rule>
35      <rule pattern="(\$\{)(.+?)(\})">
36        <bygroups>
37          <token type="Operator"/>
38          <token type="NameVariable"/>
39          <token type="Operator"/>
40        </bygroups>
41      </rule>
42      <rule pattern="(\$ENV\{)(.+?)(\})">
43        <bygroups>
44          <token type="Operator"/>
45          <token type="NameVariable"/>
46          <token type="Operator"/>
47        </bygroups>
48      </rule>
49      <rule pattern="(\$&lt;)(.+?)(&gt;)">
50        <bygroups>
51          <token type="Operator"/>
52          <token type="NameVariable"/>
53          <token type="Operator"/>
54        </bygroups>
55      </rule>
56      <rule pattern="(?s)&#34;.*?&#34;">
57        <token type="LiteralStringDouble"/>
58      </rule>
59      <rule pattern="\\\S+">
60        <token type="LiteralString"/>
61      </rule>
62      <rule pattern="[^)$&#34;# \t\n]+">
63        <token type="LiteralString"/>
64      </rule>
65      <rule pattern="\n">
66        <token type="Text"/>
67      </rule>
68      <rule>
69        <include state="keywords"/>
70      </rule>
71      <rule>
72        <include state="ws"/>
73      </rule>
74    </state>
75    <state name="string"/>
76    <state name="keywords">
77      <rule pattern="\b(WIN32|UNIX|APPLE|CYGWIN|BORLAND|MINGW|MSVC|MSVC_IDE|MSVC60|MSVC70|MSVC71|MSVC80|MSVC90)\b">
78        <token type="Keyword"/>
79      </rule>
80    </state>
81    <state name="ws">
82      <rule pattern="[ \t]+">
83        <token type="Text"/>
84      </rule>
85      <rule pattern="#.*\n">
86        <token type="Comment"/>
87      </rule>
88    </state>
89  </rules>
90</lexer>