2024-08-02 20:03:49 +00:00
<lexer >
<config >
<name > Mason</name>
<alias > mason</alias>
<filename > *.m</filename>
<filename > *.mhtml</filename>
<filename > *.mc</filename>
<filename > *.mi</filename>
<filename > autohandler</filename>
<filename > dhandler</filename>
<mime_type > application/x-mason</mime_type>
<priority > 0.1</priority>
</config>
<rules >
<state name= "root" >
<rule pattern= "\s+" >
<token type= "Text" />
</rule>
<rule pattern= "(<%doc>)(.*?)(</%doc>)(?s)" >
<bygroups >
<token type= "NameTag" />
<token type= "CommentMultiline" />
<token type= "NameTag" />
</bygroups>
</rule>
<rule pattern= "(<%(?:def|method))(\s*)(.*?)(>)(.*?)(</%\2\s*>)(?s)" >
<bygroups >
<token type= "NameTag" />
<token type= "Text" />
<token type= "NameFunction" />
<token type= "NameTag" />
<usingself state= "root" />
<token type= "NameTag" />
</bygroups>
</rule>
<rule pattern= "(<%\w+)(.*?)(>)(.*?)(</%\2\s*>)(?s)" >
<bygroups >
<token type= "NameTag" />
<token type= "NameFunction" />
<token type= "NameTag" />
<using lexer= "Perl" />
<token type= "NameTag" />
</bygroups>
</rule>
<rule pattern= "(<&[^|])(.*?)(,.*?)?(&>)(?s)" >
<bygroups >
<token type= "NameTag" />
<token type= "NameFunction" />
<using lexer= "Perl" />
<token type= "NameTag" />
</bygroups>
</rule>
<rule pattern= "(<&\|)(.*?)(,.*?)?(&>)(?s)" >
<bygroups >
<token type= "NameTag" />
<token type= "NameFunction" />
<using lexer= "Perl" />
<token type= "NameTag" />
</bygroups>
</rule>
<rule pattern= "</&>" >
<token type= "NameTag" />
</rule>
<rule pattern= "(<%!?)(.*?)(%>)(?s)" >
<bygroups >
<token type= "NameTag" />
<using lexer= "Perl" />
<token type= "NameTag" />
</bygroups>
</rule>
<rule pattern= "(?<=^)#[^\n]*(\n|\Z)" >
<token type= "Comment" />
</rule>
<rule pattern= "(?<=^)(%)([^\n]*)(\n|\Z)" >
<bygroups >
<token type= "NameTag" />
<using lexer= "Perl" />
<token type= "Other" />
</bygroups>
</rule>
<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
 )" >
<bygroups >
<using lexer= "HTML" />
<token type= "Operator" />
</bygroups>
</rule>
</state>
</rules>
2024-08-26 23:18:28 +00:00
</lexer>