1<lexer>
 2  <config>
 3    <name>Mathematica</name>
 4    <alias>mathematica</alias>
 5    <alias>mma</alias>
 6    <alias>nb</alias>
 7    <filename>*.nb</filename>
 8    <filename>*.cdf</filename>
 9    <filename>*.nbp</filename>
10    <filename>*.ma</filename>
11    <mime_type>application/mathematica</mime_type>
12    <mime_type>application/vnd.wolfram.mathematica</mime_type>
13    <mime_type>application/vnd.wolfram.mathematica.package</mime_type>
14    <mime_type>application/vnd.wolfram.cdf</mime_type>
15  </config>
16  <rules>
17    <state name="root">
18      <rule pattern="(?s)\(\*.*?\*\)">
19        <token type="Comment"/>
20      </rule>
21      <rule pattern="([a-zA-Z]+[A-Za-z0-9]*`)">
22        <token type="NameNamespace"/>
23      </rule>
24      <rule pattern="([A-Za-z0-9]*_+[A-Za-z0-9]*)">
25        <token type="NameVariable"/>
26      </rule>
27      <rule pattern="#\d*">
28        <token type="NameVariable"/>
29      </rule>
30      <rule pattern="([a-zA-Z]+[a-zA-Z0-9]*)">
31        <token type="Name"/>
32      </rule>
33      <rule pattern="-?\d+\.\d*">
34        <token type="LiteralNumberFloat"/>
35      </rule>
36      <rule pattern="-?\d*\.\d+">
37        <token type="LiteralNumberFloat"/>
38      </rule>
39      <rule pattern="-?\d+">
40        <token type="LiteralNumberInteger"/>
41      </rule>
42      <rule pattern="(!===|@@@|===|/;|:=|-&gt;|:&gt;|/\.|=\.|~~|&lt;=|@@|/@|&amp;&amp;|\|\||//|&lt;&gt;|;;|&gt;=|-|@|!|\^|/|\*|\?|\+|&amp;|&lt;|&gt;|=|\|)">
43        <token type="Operator"/>
44      </rule>
45      <rule pattern="(,|;|\(|\)|\[|\]|\{|\})">
46        <token type="Punctuation"/>
47      </rule>
48      <rule pattern="&#34;.*?&#34;">
49        <token type="LiteralString"/>
50      </rule>
51      <rule pattern="\s+">
52        <token type="TextWhitespace"/>
53      </rule>
54    </state>
55  </rules>
56</lexer>