reg.xml

 1<lexer>
 2  <config>
 3    <name>reg</name>
 4    <alias>registry</alias>
 5    <filename>*.reg</filename>
 6    <mime_type>text/x-windows-registry</mime_type>
 7  </config>
 8  <rules>
 9    <state name="root">
10      <rule pattern="Windows Registry Editor.*">
11        <token type="Text"/>
12      </rule>
13      <rule pattern="\s+">
14        <token type="Text"/>
15      </rule>
16      <rule pattern="[;#].*">
17        <token type="CommentSingle"/>
18      </rule>
19      <rule pattern="(\[)(-?)(HKEY_[A-Z_]+)(.*?\])$">
20        <bygroups>
21          <token type="Keyword"/>
22          <token type="Operator"/>
23          <token type="NameBuiltin"/>
24          <token type="Keyword"/>
25        </bygroups>
26      </rule>
27      <rule pattern="(&#34;(?:\\&#34;|\\\\|[^&#34;])+&#34;)([ \t]*)(=)([ \t]*)">
28        <bygroups>
29          <token type="NameAttribute"/>
30          <token type="Text"/>
31          <token type="Operator"/>
32          <token type="Text"/>
33        </bygroups>
34        <push state="value"/>
35      </rule>
36      <rule pattern="(.*?)([ \t]*)(=)([ \t]*)">
37        <bygroups>
38          <token type="NameAttribute"/>
39          <token type="Text"/>
40          <token type="Operator"/>
41          <token type="Text"/>
42        </bygroups>
43        <push state="value"/>
44      </rule>
45    </state>
46    <state name="value">
47      <rule pattern="-">
48        <token type="Operator"/>
49        <pop depth="1"/>
50      </rule>
51      <rule pattern="(dword|hex(?:\([0-9a-fA-F]\))?)(:)([0-9a-fA-F,]+)">
52        <bygroups>
53          <token type="NameVariable"/>
54          <token type="Punctuation"/>
55          <token type="LiteralNumber"/>
56        </bygroups>
57        <pop depth="1"/>
58      </rule>
59      <rule pattern=".+">
60        <token type="LiteralString"/>
61        <pop depth="1"/>
62      </rule>
63      <rule>
64        <pop depth="1"/>
65      </rule>
66    </state>
67  </rules>
68</lexer>