...
1<lexer>
2 <config>
3 <name>stas</name>
4 <filename>*.stas</filename>
5 </config>
6 <rules>
7 <state name="string-double-quoted">
8 <rule pattern="\\.">
9 <token type="LiteralStringEscape"/>
10 </rule>
11 <rule pattern="[^\\"]+">
12 <token type="LiteralString"/>
13 </rule>
14 <rule pattern=""">
15 <token type="LiteralString"/>
16 <pop depth="1"/>
17 </rule>
18 </state>
19 <state name="string-single-quoted">
20 <rule pattern="\\.">
21 <token type="LiteralStringEscape"/>
22 </rule>
23 <rule pattern="[^\\']+">
24 <token type="LiteralString"/>
25 </rule>
26 <rule pattern="'">
27 <token type="LiteralString"/>
28 <pop depth="1"/>
29 </rule>
30 </state>
31 <state name="string-char-literal">
32 <rule pattern="\\.">
33 <token type="LiteralStringEscape"/>
34 </rule>
35 <rule pattern="[^\\`]+">
36 <token type="LiteralString"/>
37 </rule>
38 <rule pattern="`">
39 <token type="LiteralStringChar"/>
40 <pop depth="1"/>
41 </rule>
42 </state>
43 <state name="root">
44 <rule pattern="(\n|\s)+">
45 <token type="Text"/>
46 </rule>
47 <rule pattern="(?<!\S)(fn|argc|argv|swap|dup|over|over2|rot|rot4|drop|w8|w16|w32|w64|r8|r16|r32|r64|syscall0|syscall1|syscall2|syscall3|syscall4|syscall5|syscall6|_breakpoint|assert|const|auto|reserve|pop|include|addr|if|else|elif|while|break|continue|ret)(?!\S)">
48 <token type="Keyword"/>
49 </rule>
50 <rule pattern="(?<!\S)(\+|\-|\*|\/|\%|\%\%|\+\+|\-\-|>>|<<)(?!\S)">
51 <token type="Operator"/>
52 </rule>
53 <rule pattern="(?<!\S)(\=|\!\=|>|<|>\=|<\=|>s|<s|>\=s|<\=s)(?!\S)">
54 <token type="Operator"/>
55 </rule>
56 <rule pattern="(?<!\S)(\&|\||\^|\~|\!|-\>)(?!\S)">
57 <token type="Operator"/>
58 </rule>
59 <rule pattern="(?<!\S)\-?(\d+)(?!\S)">
60 <token type="LiteralNumber"/>
61 </rule>
62 <rule pattern="(?<!\S);.*(\S|\n)">
63 <token type="Comment"/>
64 </rule>
65 <rule pattern="'">
66 <token type="LiteralString"/>
67 <push state="string-single-quoted"/>
68 </rule>
69 <rule pattern=""">
70 <token type="LiteralString"/>
71 <push state="string-double-quoted"/>
72 </rule>
73 <rule pattern="`">
74 <token type="LiteralStringChar"/>
75 <push state="string-char-literal"/>
76 </rule>
77 <rule pattern="(?<!\S)[{}](?!\S)">
78 <token type="Punctuation"/>
79 </rule>
80 <rule pattern="(?<!\S)[^\s]+(?!\S)">
81 <token type="Name"/>
82 </rule>
83 </state>
84 </rules>
85</lexer>
View as plain text