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="(?<!\S)\((?!\S)"><token type="CommentMultiline"/><push/></rule>
13      <rule pattern="(?<!\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="(?<!\S)\((?!\S)"><token type="CommentMultiline"/><push state="comment"/></rule>
20      <rule pattern="(?<!\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=""\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="&\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