1<lexer>
 2  <config>
 3    <name>APL</name>
 4    <alias>apl</alias>
 5    <filename>*.apl</filename>
 6  </config>
 7  <rules>
 8    <state name="root">
 9      <rule pattern="\s+">
10        <token type="Text"/>
11      </rule>
12      <rule pattern="[⍝#].*$">
13        <token type="CommentSingle"/>
14      </rule>
15      <rule pattern="\&#39;((\&#39;\&#39;)|[^\&#39;])*\&#39;">
16        <token type="LiteralStringSingle"/>
17      </rule>
18      <rule pattern="&#34;((&#34;&#34;)|[^&#34;])*&#34;">
19        <token type="LiteralStringDouble"/>
20      </rule>
21      <rule pattern="[⋄◇()]">
22        <token type="Punctuation"/>
23      </rule>
24      <rule pattern="[\[\];]">
25        <token type="LiteralStringRegex"/>
26      </rule>
27      <rule pattern="⎕[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*">
28        <token type="NameFunction"/>
29      </rule>
30      <rule pattern="[A-Za-zΔ∆⍙_][A-Za-zΔ∆⍙_¯0-9]*">
31        <token type="NameVariable"/>
32      </rule>
33      <rule pattern="¯?(0[Xx][0-9A-Fa-f]+|[0-9]*\.?[0-9]+([Ee][+¯]?[0-9]+)?|¯|∞)([Jj]¯?(0[Xx][0-9A-Fa-f]+|[0-9]*\.?[0-9]+([Ee][+¯]?[0-9]+)?|¯|∞))?">
34        <token type="LiteralNumber"/>
35      </rule>
36      <rule pattern="[\.\\/⌿⍀¨⍣⍨⍠⍤∘⍥@⌺⌶⍢]">
37        <token type="NameAttribute"/>
38      </rule>
39      <rule pattern="[+\-×÷⌈⌊∣|⍳?*⍟○!⌹&lt;≤=&gt;≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⌸⍯↗⊆⍸]">
40        <token type="Operator"/>
41      </rule>
42      <rule pattern="⍬">
43        <token type="NameConstant"/>
44      </rule>
45      <rule pattern="[⎕⍞]">
46        <token type="NameVariableGlobal"/>
47      </rule>
48      <rule pattern="[←→]">
49        <token type="KeywordDeclaration"/>
50      </rule>
51      <rule pattern="[⍺⍵⍶⍹∇:]">
52        <token type="NameBuiltinPseudo"/>
53      </rule>
54      <rule pattern="[{}]">
55        <token type="KeywordType"/>
56      </rule>
57    </state>
58  </rules>
59</lexer>