1. 
    
  2. <lexer>
    
  3.   <config>
    
  4.     <name>Tal</name>
    
  5.     <alias>tal</alias>
    
  6.     <alias>uxntal</alias>
    
  7.     <filename>*.tal</filename>
    
  8.     <mime_type>text/x-uxntal</mime_type>
    
  9.   </config>
    
  10.   <rules>
    
  11.     <state name="comment">
    
  12.       <rule pattern="(?&lt;!\S)\((?!\S)"><token type="CommentMultiline"/><push/></rule>
    
  13.       <rule pattern="(?&lt;!\S)\)(?!\S)"><token type="CommentMultiline"/><pop depth="1"/></rule>
    
  14.       <rule pattern="[^()]+"><token type="CommentMultiline"/></rule>
    
  15.       <rule pattern="[()]+"><token type="CommentMultiline"/></rule>
    
  16.     </state>
    
  17.     <state name="root">
    
  18.       <rule pattern="\s+"><token type="TextWhitespace"/></rule>
    
  19.       <rule pattern="(?&lt;!\S)\((?!\S)"><token type="CommentMultiline"/><push state="comment"/></rule>
    
  20.       <rule pattern="(?&lt;!\S)(BRK|LIT|INC|POP|DUP|NIP|SWP|OVR|ROT|EQU|NEQ|GTH|LTH|JMP|JCN|JSR|STH|LDZ|STZ|LDR|STR|LDA|STA|DEI|DEO|ADD|SUB|MUL|DIV|AND|ORA|EOR|SFT)2?k?r?(?!\S)"><token type="KeywordReserved"/></rule>
    
  21.       <rule pattern="[][{}](?!\S)"><token type="Punctuation"/></rule>
    
  22.       <rule pattern="#([0-9a-f]{2}){1,2}(?!\S)"><token type="LiteralNumberHex"/></rule>
    
  23.       <rule pattern="&quot;\S+"><token type="LiteralString"/></rule>
    
  24.       <rule pattern="([0-9a-f]{2}){1,2}(?!\S)"><token type="Literal"/></rule>
    
  25.       <rule pattern="[|$][0-9a-f]{1,4}(?!\S)"><token type="KeywordDeclaration"/></rule>
    
  26.       <rule pattern="%\S+"><token type="NameDecorator"/></rule>
    
  27.       <rule pattern="@\S+"><token type="NameFunction"/></rule>
    
  28.       <rule pattern="&amp;\S+"><token type="NameLabel"/></rule>
    
  29.       <rule pattern="/\S+"><token type="NameTag"/></rule>
    
  30.       <rule pattern="\.\S+"><token type="NameVariableMagic"/></rule>
    
  31.       <rule pattern=",\S+"><token type="NameVariableInstance"/></rule>
    
  32.       <rule pattern=";\S+"><token type="NameVariableGlobal"/></rule>
    
  33.       <rule pattern="-\S+"><token type="Literal"/></rule>
    
  34.       <rule pattern="_\S+"><token type="Literal"/></rule>
    
  35.       <rule pattern="=\S+"><token type="Literal"/></rule>
    
  36.       <rule pattern="!\S+"><token type="NameFunction"/></rule>
    
  37.       <rule pattern="\?\S+"><token type="NameFunction"/></rule>
    
  38.       <rule pattern="~\S+"><token type="KeywordNamespace"/></rule>
    
  39.       <rule pattern="\S+"><token type="NameFunction"/></rule>
    
  40.     </state>
    
  41.   </rules>
    
  42. </lexer>
    
  43.