myghty.xml

 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="(&lt;%(?:def|method))(\s*)(.*?)(&gt;)(.*?)(&lt;/%\2\s*&gt;)(?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="(&lt;%\w+)(.*?)(&gt;)(.*?)(&lt;/%\2\s*&gt;)(?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="(&lt;&amp;[^|])(.*?)(,.*?)?(&amp;&gt;)">
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="(&lt;&amp;\|)(.*?)(,.*?)?(&amp;&gt;)(?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="&lt;/&amp;&gt;">
50        <token type="NameTag"/>
51      </rule>
52      <rule pattern="(&lt;%!?)(.*?)(%&gt;)(?s)">
53        <bygroups>
54          <token type="NameTag"/>
55          <using lexer="Python2"/>
56          <token type="NameTag"/>
57        </bygroups>
58      </rule>
59      <rule pattern="(?&lt;=^)#[^\n]*(\n|\Z)">
60        <token type="Comment"/>
61      </rule>
62      <rule pattern="(?&lt;=^)(%)([^\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)&#xA;                 (.+?)               # anything, followed by:&#xA;                 (?:&#xA;                  (?&lt;=\n)(?=[%#]) |  # an eval or comment line&#xA;                  (?=&lt;/?[%&amp;]) |      # a substitution or block or&#xA;                                     # call start or end&#xA;                                     # - don&#39;t consume&#xA;                  (\\\n) |           # an escaped newline&#xA;                  \Z                 # end of string&#xA;                 )">
70        <bygroups>
71          <token type="Other"/>
72          <token type="Operator"/>
73        </bygroups>
74      </rule>
75    </state>
76  </rules>
77</lexer>