<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd"
[
	<!ENTITY name    "[A-Za-z_:][\w.:_-]*">
	<!ENTITY entref  "&amp;(#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);">
]>


<language name="Myghty" version="1.96" kateversion="2.3" section="Markup" extensions="*.myt;*,myc;autohandler;dhandler" priority="10">

<highlighting>

<list name="prep">
    <item> import </item>
    <item> from </item>
    <item> as </item>
</list>

<list name="statements">
    <item> and </item>
    <item> assert </item>
    <item> break </item>
    <item> class </item>
    <item> continue </item>
    <item> def </item>
    <item> del </item>
    <item> elif </item>
    <item> else </item>
    <item> except </item>
    <item> exec </item>
    <item> finally </item>
    <item> for </item>
    <item> global </item>
    <item> if </item>
    <item> in </item>
    <item> is </item>
    <item> lambda </item>
    <item> not </item>
    <item> or </item>
    <item> pass </item>
    <item> print </item>
    <item> raise </item>
    <item> return </item>
    <item> try </item>
    <item> while </item>
    <item> yield </item>
</list>

<list name="builtinfuncs">
    <item> abs </item>
    <item> apply </item>
    <item> buffer </item>
    <item> callable </item>
    <item> chr </item>
    <item> cmp </item>
    <item> coerce </item>
    <item> compile </item>
    <item> complex </item>
    <item> copyright </item>
    <item> credits </item>
    <item> delattr </item>
    <item> dir </item>
    <item> divmod </item>
    <item> enumerate </item>
    <item> eval </item>
    <item> execfile </item>
    <item> exit </item>
    <item> filter </item>
    <item> float </item>
    <item> getattr </item>
    <item> globals </item>
    <item> hasattr </item>
    <item> hash </item>
    <item> hex </item>
    <item> id </item>
    <item> input </item>
    <item> int </item>
    <item> intern </item>
    <item> isinstance </item>
    <item> issubclass </item>
    <item> iter </item>
    <item> len </item>
    <item> license </item>
    <item> list </item>
    <item> locals </item>
    <item> long </item>
    <item> map </item>
    <item> max </item>
    <item> min </item>
    <item> oct </item>
    <item> open </item>
    <item> ord </item>
    <item> pow </item>
    <item> quit </item>
    <item> range </item>
    <item> raw_input </item>
    <item> reduce </item>
    <item> reload </item>
    <item> repr </item>
    <item> round </item>
    <item> setattr </item>
    <item> slice </item>
    <item> str </item>
    <item> tuple </item>
    <item> type </item>
    <item> unichr </item>
    <item> unicode </item>
    <item> vars </item>
    <item> xrange </item>
    <item> zip </item>
</list>

<list name="specialvars">
    <item> None </item>
    <item> self </item>
    <item> True </item>
    <item> False </item>
    <item> NotImplemented </item>
    <item> Ellipsis </item>
    <item> object </item>
</list>


<contexts>

    <!-- HTML -->

    <context name="Start" attribute="Normal Text" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <IncludeRules context="FindHTML" />
    </context>

    <context name="FindHTML" attribute="Normal Text" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
        <StringDetect attribute="CDATA" context="CDATA" String="&lt;![CDATA[" beginRegion="cdata" />
        <RegExpr attribute="Doctype" context="Doctype" String="&lt;!DOCTYPE\s+" beginRegion="doctype" />
        <RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:_-]*" beginRegion="pi" />
        <RegExpr attribute="Element" context="CSS" String="&lt;style\b" insensitive="TRUE" beginRegion="style" />
        <RegExpr attribute="Element" context="JS" String="&lt;script\b" insensitive="TRUE" beginRegion="script" />
        <RegExpr attribute="Element" context="El Open" String="&lt;pre\b" insensitive="TRUE" beginRegion="pre" />
        <RegExpr attribute="Element" context="El Open" String="&lt;div\b" insensitive="TRUE" beginRegion="div" />
        <RegExpr attribute="Element" context="El Open" String="&lt;table\b" insensitive="TRUE" beginRegion="table" />
        <RegExpr attribute="Element" context="El Open" String="&lt;&name;" />
        <RegExpr attribute="Element" context="El Close" String="&lt;/pre\b" insensitive="TRUE" endRegion="pre" />
        <RegExpr attribute="Element" context="El Close" String="&lt;/div\b" insensitive="TRUE" endRegion="div" />
        <RegExpr attribute="Element" context="El Close" String="&lt;/table\b" insensitive="TRUE" endRegion="table" />
        <RegExpr attribute="Element" context="El Close" String="&lt;/&name;" />
        <!-- as long as kde gives DTDs the text/html mimetype--><IncludeRules context="FindDTDRules" />
        <IncludeRules context="FindEntityRefs" />
    </context>

    <context name="FindEntityRefs" attribute="Normal Text" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
        <AnyChar attribute="Error" context="#stay" String="&amp;&lt;" />
    </context>

    <context name="FindPEntityRefs" attribute="Normal Text" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
        <RegExpr attribute="PEntityRef" context="#stay" String="%&name;;" />
        <AnyChar attribute="Error" context="#stay" String="&amp;%" />
    </context>

    <context name="FindAttributes" attribute="Normal Text" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <RegExpr attribute="Attribute" context="#stay" String="^&name;" />
        <RegExpr attribute="Attribute" context="#stay" String="\s+&name;" />
        <DetectChar attribute="Attribute" context="Value" char="=" />
    </context>

    <context name="FindDTDRules" attribute="Normal Text" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <RegExpr attribute="Doctype" context="Doctype Markupdecl" String="&lt;!(ELEMENT|ENTITY|ATTLIST|NOTATION)\b" />
    </context>


    <context name="Comment" attribute="Comment" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <StringDetect attribute="Comment" context="#pop" String="--&gt;" endRegion="comment" />
        <RegExpr attribute="Error" context="#stay" String="-(-(?!-&gt;))+" />
        <RegExpr attribute="Alert" context="#stay" String="(FIXME|TODO)" />
    </context>

    <context name="CDATA" attribute="Normal Text" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <StringDetect attribute="CDATA" context="#pop" String="]]&gt;" endRegion="cdata" />
        <StringDetect attribute="EntityRef" context="#stay" String="]]&amp;gt;" />
    </context>

    <context name="PI" attribute="Normal Text" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <Detect2Chars attribute="Processing Instruction" context="#pop" char="?" char1="&gt;" endRegion="pi" />
    </context>

    <context name="Doctype" attribute="Normal Text" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <DetectChar attribute="Doctype" context="#pop" char="&gt;" endRegion="doctype" />
        <DetectChar attribute="Doctype" context="Doctype Internal Subset" char="[" beginRegion="int_subset" />
    </context>

    <context name="Doctype Internal Subset" attribute="Normal Text" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <DetectChar attribute="Doctype" context="#pop" char="]" endRegion="int_subset" />
        <IncludeRules context="FindDTDRules" />
        <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
        <RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:_-]*" beginRegion="pi" />
        <IncludeRules context="FindPEntityRefs" />
    </context>

    <context name="Doctype Markupdecl" attribute="Normal Text" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <DetectChar attribute="Doctype" context="#pop" char="&gt;" />
        <DetectChar attribute="Value" context="Doctype Markupdecl DQ" char="&quot;" />
        <DetectChar attribute="Value" context="Doctype Markupdecl SQ" char="&apos;" />
    </context>

    <context name="Doctype Markupdecl DQ" attribute="Value" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <DetectChar attribute="Value" context="#pop" char="&quot;" />
        <IncludeRules context="FindPEntityRefs" />
    </context>

    <context name="Doctype Markupdecl SQ" attribute="Value" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <DetectChar attribute="Value" context="#pop" char="&apos;" />
        <IncludeRules context="FindPEntityRefs" />
    </context>

    <context name="El Open" attribute="Normal Text" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" />
        <DetectChar attribute="Element" context="#pop" char="&gt;" />
        <IncludeRules context="FindAttributes" />
        <RegExpr attribute="Error" context="#stay" String="\S" />
    </context>

    <context name="El Close" attribute="Normal Text" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <DetectChar attribute="Element" context="#pop" char="&gt;" />
        <RegExpr attribute="Error" context="#stay" String="\S" />
    </context>

    <context name="El Close 2" attribute="Normal Text" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <DetectChar attribute="Element" context="#pop#pop#pop" char="&gt;" />
        <RegExpr attribute="Error" context="#stay" String="\S" />
    </context>

    <context name="El Close 3" attribute="Normal Text" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <DetectChar attribute="Element" context="#pop#pop#pop#pop" char="&gt;" />
        <RegExpr attribute="Error" context="#stay" String="\S" />
    </context>

    <context name="CSS" attribute="Normal Text" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" endRegion="style" />
        <DetectChar attribute="Element" context="CSS content" char="&gt;" />
        <IncludeRules context="FindAttributes" />
        <RegExpr attribute="Error" context="#stay" String="\S" />
    </context>

    <context name="CSS content" attribute="Normal Text" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <RegExpr attribute="Element" context="El Close 2" String="&lt;/style\b" insensitive="TRUE" endRegion="style" />
        <IncludeRules context="##JavaScript" />
    </context>

    <context name="JS" attribute="Normal Text" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" endRegion="script" />
        <DetectChar attribute="Element" context="JS content" char="&gt;" />
        <IncludeRules context="FindAttributes" />
        <RegExpr attribute="Error" context="#stay" String="\S" />
    </context>

    <context name="JS content" attribute="Normal Text" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <RegExpr attribute="Element" context="El Close 2" String="&lt;/script\b" insensitive="TRUE" endRegion="script" />
        <RegExpr attribute="Comment" context="JS comment close" String="//(?=.*&lt;/script\b)" insensitive="TRUE" />
        <IncludeRules context="##JavaScript" />
    </context>

    <context name="JS comment close" attribute="Comment" lineEndContext="#pop">
        <IncludeRules context="FindMyghty" />
        <RegExpr attribute="Element" context="El Close 3" String="&lt;/script\b" insensitive="TRUE" endRegion="script" />
        <RegExpr attribute="Alert" context="#stay" String="(FIXME|TODO)" />
    </context>

    <context name="Value" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="Value NQ">
        <IncludeRules context="FindMyghty" />
        <DetectChar attribute="Value" context="Value DQ" char="&quot;" />
        <DetectChar attribute="Value" context="Value SQ" char="&apos;" />
        <RegExpr attribute="Normal Text" context="#stay" String="\s" />
    </context>

    <context name="Value NQ" attribute="Normal Text" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
        <IncludeRules context="FindMyghty" />
        <IncludeRules context="FindEntityRefs" />
        <RegExpr attribute="Value" context="#stay" String="/(?!&gt;)" />
        <RegExpr attribute="Value" context="#stay" String="[^/&gt;&lt;&quot;&apos;\s]" />
    </context>

    <context name="Value DQ" attribute="Value" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <DetectChar attribute="Value" context="#pop#pop" char="&quot;" />
        <IncludeRules context="FindEntityRefs" />
    </context>

    <context name="Value SQ" attribute="Value" lineEndContext="#stay">
        <IncludeRules context="FindMyghty" />
        <DetectChar attribute="Value" context="#pop#pop" char="&apos;" />
        <IncludeRules context="FindEntityRefs" />
    </context>


    <!-- Myghty Specific -->

    <context name="FindMyghty">
        <RegExpr attribute="Myghty Tag" context="PythonInline" String="^%" />
        <RegExpr attribute="Myghty Tag" context="PythonEmbed" String="&lt;%python[\w=&quot;'\s]*&gt;" insensitive="FALSE" />

        <RegExpr attribute="Myghty Tag" context="PythonEmbed" String="&lt;%args[\w=&quot;'\s]*&gt;" insensitive="FALSE" />

        <RegExpr attribute="Myghty Tag" String="&lt;%method[\w=&quot;\s]*&gt;" />
        <StringDetect attribute="Myghty Tag" String="&lt;/%method&gt;" insensitive="FALSE" />

        <RegExpr attribute="Myghty Tag" String="&lt;/?%method[^&gt;]*&gt;" />

        <RegExpr attribute="Myghty Tag" String="&lt;/?%def[^&gt;]*&gt;" />
        <RegExpr attribute="Myghty Tag" String="&lt;/?%method[^&gt;]*&gt;" />
        <RegExpr attribute="Myghty Tag" String="&lt;/?%closure[^&gt;]*&gt;" />

        <StringDetect attribute="Myghty Tag" context="PythonEmbed" String="&lt;%attr&gt;" insensitive="FALSE" />
        <StringDetect attribute="Myghty Tag" context="PythonEmbed" String="&lt;%flags&gt;" insensitive="FALSE" />
        <StringDetect attribute="Myghty Tag" context="PythonEmbed" String="&lt;%filter&gt;" insensitive="FALSE" />
        <StringDetect attribute="Myghty Tag" context="PythonEmbed" String="&lt;%global&gt;" insensitive="FALSE" />
        <StringDetect attribute="Myghty Tag" context="PythonEmbed" String="&lt;%once&gt;" insensitive="FALSE" />
        <StringDetect attribute="Myghty Tag" context="PythonEmbed" String="&lt;%init&gt;" insensitive="FALSE" />
        <StringDetect attribute="Myghty Tag" context="PythonEmbed" String="&lt;%cleanup&gt;" insensitive="FALSE" />
        <StringDetect attribute="Myghty Tag" context="PythonEmbed" String="&lt;%requestlocal&gt;" insensitive="FALSE" />
        <StringDetect attribute="Myghty Tag" context="PythonEmbed" String="&lt;%requestonce&gt;" insensitive="FALSE" />
        <StringDetect attribute="Myghty Tag" context="PythonEmbed" String="&lt;%shared&gt;" insensitive="FALSE" />

        <StringDetect attribute="Myghty Tag" context="MyghtyComment" String="&lt;%doc&gt;" insensitive="FALSE" />
        <RegExpr attribute="Comment" context="MyghtyInlineComment" String="^#" />

        <RegExpr attribute="Myghty Tag" String="&lt;/?%text&gt;" />

        <StringDetect attribute="Myghty Tag" context="PythonExpr" String="&lt;%" insensitive="FALSE" />
        <StringDetect attribute="Myghty Tag" context="MyghtyModule" String="&lt;&amp;" insensitive="FALSE" />
    </context>


    <context name="MyghtyModule" attribute="Myghty Module" lineEndContext="#stay">
        <DetectChar attribute="Myghty Tag" char="&#124;" />
        <StringDetect attribute="Myghty Tag" context="#pop" String="&amp;&gt;" insensitive="FALSE" />
    </context>


    <context name="PythonInline" attribute="Normal Text" lineEndContext="#pop">
        <IncludeRules context="##Python" />
    </context>

    <context name="PythonEmbed" attribute="Normal Text" lineEndContext="#stay">
        <RegExpr attribute="Myghty Tag" String="&lt;/%\w+&gt;" context="#pop" insensitive="FALSE" />
        <IncludeRules context="##Python" />
    </context>

    <context name="PythonExpr" attribute="Normal Text" lineEndContext="#stay">
        <StringDetect attribute="Myghty Tag" String="%&gt;" context="#pop" insensitive="FALSE" />
        <IncludeRules context="##Python" />
    </context>


    <context name="MyghtyInlineComment" attribute="Comment" lineEndContext="#pop">
    </context>

    <context name="MyghtyComment" attribute="Comment" lineEndContext="#stay">
        <StringDetect attribute="Myghty Tag" context="#pop" String="&lt;/%doc&gt;" insensitive="FALSE" />
    </context>

</contexts>

<itemDatas>
    <itemData name="Normal Text" defStyleNum="dsNormal" />
    <itemData name="Comment" defStyleNum="dsComment" />
    <itemData name="CDATA" defStyleNum="dsBaseN" bold="1" />
    <itemData name="Processing Instruction" defStyleNum="dsKeyword" />
    <itemData name="Doctype" defStyleNum="dsDataType" bold="1" />
    <itemData name="Element" defStyleNum="dsKeyword" />
    <itemData name="Attribute" defStyleNum="dsOthers" />
    <itemData name="Value" defStyleNum="dsString" color="#a00" />
    <itemData name="EntityRef" defStyleNum="dsDecVal" />
    <itemData name="PEntityRef" defStyleNum="dsDecVal" />
    <itemData name="Error" defStyleNum="dsError" />
    <itemData name="Alert" defStyleNum="dsAlert" />

    <itemData name="Myghty Tag" defStyleNum="dsDataType" />
    <itemData name="Myghty Module" defStyleNum="dsString" />
</itemDatas>

</highlighting>


<general>
    <folding indentationsensitive="1" />
    <comments>
        <comment name="multiLine" start="&lt;!--" end="--&gt;" />
    </comments>
</general>

</language>


<!-- ***** THIS FILE WAS GENERATED BY A SCRIPT - DO NOT EDIT ***** -->