66
|
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="\'((\'\')|[^\'])*\'">
|
|
16 <token type="LiteralStringSingle"/>
|
|
17 </rule>
|
|
18 <rule pattern=""(("")|[^"])*"">
|
|
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="[+\-×÷⌈⌊∣|⍳?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⌸⍯↗⊆⍸]">
|
|
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> |