1<lexer>
 2  <config>
 3    <name>Myghty</name>
 4    <alias>myghty</alias>
 5    <filename>*.myt</filename>
 6    <filename>autodelegate</filename>
 7    <mime_type>application/x-myghty</mime_type>
 8  </config>
 9  <rules>
10    <state name="root">
11      <rule pattern="\s+">
12        <token type="Text"/>
13      </rule>
14      <rule pattern="(<%(?:def|method))(\s*)(.*?)(>)(.*?)(</%\2\s*>)(?s)">
15        <bygroups>
16          <token type="NameTag"/>
17          <token type="Text"/>
18          <token type="NameFunction"/>
19          <token type="NameTag"/>
20          <usingself state="root"/>
21          <token type="NameTag"/>
22        </bygroups>
23      </rule>
24      <rule pattern="(<%\w+)(.*?)(>)(.*?)(</%\2\s*>)(?s)">
25        <bygroups>
26          <token type="NameTag"/>
27          <token type="NameFunction"/>
28          <token type="NameTag"/>
29          <using lexer="Python2"/>
30          <token type="NameTag"/>
31        </bygroups>
32      </rule>
33      <rule pattern="(<&[^|])(.*?)(,.*?)?(&>)">
34        <bygroups>
35          <token type="NameTag"/>
36          <token type="NameFunction"/>
37          <using lexer="Python2"/>
38          <token type="NameTag"/>
39        </bygroups>
40      </rule>
41      <rule pattern="(<&\|)(.*?)(,.*?)?(&>)(?s)">
42        <bygroups>
43          <token type="NameTag"/>
44          <token type="NameFunction"/>
45          <using lexer="Python2"/>
46          <token type="NameTag"/>
47        </bygroups>
48      </rule>
49      <rule pattern="</&>">
50        <token type="NameTag"/>
51      </rule>
52      <rule pattern="(<%!?)(.*?)(%>)(?s)">
53        <bygroups>
54          <token type="NameTag"/>
55          <using lexer="Python2"/>
56          <token type="NameTag"/>
57        </bygroups>
58      </rule>
59      <rule pattern="(?<=^)#[^\n]*(\n|\Z)">
60        <token type="Comment"/>
61      </rule>
62      <rule pattern="(?<=^)(%)([^\n]*)(\n|\Z)">
63        <bygroups>
64          <token type="NameTag"/>
65          <using lexer="Python2"/>
66          <token type="Other"/>
67        </bygroups>
68      </rule>
69      <rule pattern="(?sx)
                 (.+?)               # anything, followed by:
                 (?:
                  (?<=\n)(?=[%#]) |  # an eval or comment line
                  (?=</?[%&]) |      # a substitution or block or
                                     # call start or end
                                     # - don't consume
                  (\\\n) |           # an escaped newline
                  \Z                 # end of string
                 )">
70        <bygroups>
71          <token type="Other"/>
72          <token type="Operator"/>
73        </bygroups>
74      </rule>
75    </state>
76  </rules>
77</lexer>