59 lines
1.9 KiB
XML
59 lines
1.9 KiB
XML
<lexer>
|
||
<config>
|
||
<name>APL</name>
|
||
<alias>apl</alias>
|
||
<filename>*.apl</filename>
|
||
</config>
|
||
<rules>
|
||
<state name="root">
|
||
<rule pattern="\s+">
|
||
<token type="Text"/>
|
||
</rule>
|
||
<rule pattern="[⍝#].*$">
|
||
<token type="CommentSingle"/>
|
||
</rule>
|
||
<rule pattern="\'((\'\')|[^\'])*\'">
|
||
<token type="LiteralStringSingle"/>
|
||
</rule>
|
||
<rule pattern=""(("")|[^"])*"">
|
||
<token type="LiteralStringDouble"/>
|
||
</rule>
|
||
<rule pattern="[⋄◇()]">
|
||
<token type="Punctuation"/>
|
||
</rule>
|
||
<rule pattern="[\[\];]">
|
||
<token type="LiteralStringRegex"/>
|
||
</rule>
|
||
<rule pattern="⎕[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*">
|
||
<token type="NameFunction"/>
|
||
</rule>
|
||
<rule pattern="[A-Za-zΔ∆⍙_][A-Za-zΔ∆⍙_¯0-9]*">
|
||
<token type="NameVariable"/>
|
||
</rule>
|
||
<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]+)?|¯|∞))?">
|
||
<token type="LiteralNumber"/>
|
||
</rule>
|
||
<rule pattern="[\.\\/⌿⍀¨⍣⍨⍠⍤∘⍥@⌺⌶⍢]">
|
||
<token type="NameAttribute"/>
|
||
</rule>
|
||
<rule pattern="[+\-×÷⌈⌊∣|⍳?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⌸⍯↗⊆⍸]">
|
||
<token type="Operator"/>
|
||
</rule>
|
||
<rule pattern="⍬">
|
||
<token type="NameConstant"/>
|
||
</rule>
|
||
<rule pattern="[⎕⍞]">
|
||
<token type="NameVariableGlobal"/>
|
||
</rule>
|
||
<rule pattern="[←→]">
|
||
<token type="KeywordDeclaration"/>
|
||
</rule>
|
||
<rule pattern="[⍺⍵⍶⍹∇:]">
|
||
<token type="NameBuiltinPseudo"/>
|
||
</rule>
|
||
<rule pattern="[{}]">
|
||
<token type="KeywordType"/>
|
||
</rule>
|
||
</state>
|
||
</rules>
|
||
</lexer> |