mathematica.xml

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