...
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="(\$<)(.+?)(>)">
50 <bygroups>
51 <token type="Operator"/>
52 <token type="NameVariable"/>
53 <token type="Operator"/>
54 </bygroups>
55 </rule>
56 <rule pattern="(?s)".*?"">
57 <token type="LiteralStringDouble"/>
58 </rule>
59 <rule pattern="\\\S+">
60 <token type="LiteralString"/>
61 </rule>
62 <rule pattern="[^)$"# \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>
View as plain text