bqn.xml

 1<lexer>
 2  <config>
 3    <name>BQN</name>
 4    <alias>bqn</alias>
 5    <filename>*.bqn</filename>
 6  </config>
 7  <rules>
 8    <state name="root">
 9      <rule pattern="\s+">
10        <token type="TextWhitespace"/>
11      </rule>
12      <rule pattern="\A#!.+$">
13        <token type="CommentPreproc"/>
14      </rule>
15      <rule pattern="#.*$">
16        <token type="CommentSingle"/>
17      </rule>
18      <rule pattern="&quot;(?:[^&quot;]|&quot;&quot;)*&quot;">
19        <token type="LiteralString"/>
20      </rule>
21      <rule pattern="[{}]">
22        <token type="KeywordPseudo"/>
23      </rule>
24      <rule pattern="[⟨⟩\[\]β€Ώ]">
25        <token type="KeywordPseudo"/>
26      </rule>
27      <rule pattern="[()]">
28        <token type="Punctuation"/>
29      </rule>
30      <rule pattern="[:;?]">
31        <token type="Punctuation"/>
32      </rule>
33      <rule pattern="[β‹„,]">
34        <token type="KeywordPseudo"/>
35      </rule>
36      <rule pattern="[←⇐↩→]">
37        <token type="Text"/>
38      </rule>
39      <rule pattern="'.'">
40        <token type="LiteralStringChar"/>
41      </rule>
42      <rule pattern="[Λ™ΛœΛ˜Β¨βŒœβΌΒ΄Λ`]">
43        <token type="Operator"/>
44      </rule>
45      <rule pattern="[βˆ˜β—‹βŠΈβŸœβŒΎβŠ˜β—ΆβŽ‰βš‡βŸβŽŠ]">
46        <token type="OperatorWord"/>
47      </rule>
48      <rule pattern="[π”½π”Ύπ•Žπ•π•Š+\-Γ—Γ·β‹†βˆšβŒŠβŒˆ|¬∧∨&lt;&gt;β‰ =≀β‰₯β‰‘β‰’βŠ£βŠ’β₯ŠβˆΎβ‰β‹ˆβ†‘β†“β†•Β«Β»βŒ½β‰/β‹β’βŠβŠ‘βŠβŠ’βˆŠβ·βŠ”!β•βŽ]">
49        <token type="NameFunction"/>
50      </rule>
51      <rule pattern="[π•—π•˜π•¨π•©π•€]">
52        <token type="Name"/>
53      </rule>
54      <rule pattern="Β·">
55        <token type="NameConstant"/>
56      </rule>
57      <rule pattern="@">
58        <token type="LiteralStringChar"/>
59      </rule>
60      <rule pattern="\d+(?:\.\d+)?[eE]Β―?\d+">
61        <token type="LiteralNumber"/>
62      </rule>
63      <rule pattern="[Β―βˆžΟ€]?(?:\d*\.?\b\d+(?:e[+Β―]?\d+|E[+Β―]?\d+)?|Β―|∞|Ο€)(?:jΒ―?(?:(?:\d+(?:\.\d+)?|\.\d+)(?:e[+Β―]?\d+|E[+Β―]?\d+)?|Β―|∞|Ο€))?">
64        <token type="LiteralNumber"/>
65      </rule>
66      <rule pattern="(β€’?[a-z][A-Z_a-z0-9Ο€βˆžΒ―]*|𝕣)">
67        <token type="Name"/>
68      </rule>
69      <rule pattern="β€’?[A-Z][A-Z_a-z0-9Ο€βˆžΒ―]*">
70        <token type="NameFunction"/>
71      </rule>
72      <rule pattern="(β€’?_[A-Za-z][A-Z_a-z0-9Ο€βˆžΒ―]*|_𝕣)">
73        <token type="Operator"/>
74      </rule>
75      <rule pattern="(β€’?_[A-Za-z][A-Z_a-z0-9Ο€βˆžΒ―]*_|_𝕣_)">
76        <token type="OperatorWord"/>
77      </rule>
78      <rule pattern="\.">
79        <token type="Text"/>
80      </rule>
81    </state>
82  </rules>
83</lexer>