66
|
1 <lexer>
|
|
2 <config>
|
|
3 <name>Brainfuck</name>
|
|
4 <alias>brainfuck</alias>
|
|
5 <alias>bf</alias>
|
|
6 <filename>*.bf</filename>
|
|
7 <filename>*.b</filename>
|
|
8 <mime_type>application/x-brainfuck</mime_type>
|
|
9 </config>
|
|
10 <rules>
|
|
11 <state name="common">
|
|
12 <rule pattern="[.,]+">
|
|
13 <token type="NameTag"/>
|
|
14 </rule>
|
|
15 <rule pattern="[+-]+">
|
|
16 <token type="NameBuiltin"/>
|
|
17 </rule>
|
|
18 <rule pattern="[<>]+">
|
|
19 <token type="NameVariable"/>
|
|
20 </rule>
|
|
21 <rule pattern="[^.,+\-<>\[\]]+">
|
|
22 <token type="Comment"/>
|
|
23 </rule>
|
|
24 </state>
|
|
25 <state name="root">
|
|
26 <rule pattern="\[">
|
|
27 <token type="Keyword"/>
|
|
28 <push state="loop"/>
|
|
29 </rule>
|
|
30 <rule pattern="\]">
|
|
31 <token type="Error"/>
|
|
32 </rule>
|
|
33 <rule>
|
|
34 <include state="common"/>
|
|
35 </rule>
|
|
36 </state>
|
|
37 <state name="loop">
|
|
38 <rule pattern="\[">
|
|
39 <token type="Keyword"/>
|
|
40 <push/>
|
|
41 </rule>
|
|
42 <rule pattern="\]">
|
|
43 <token type="Keyword"/>
|
|
44 <pop depth="1"/>
|
|
45 </rule>
|
|
46 <rule>
|
|
47 <include state="common"/>
|
|
48 </rule>
|
|
49 </state>
|
|
50 </rules>
|
|
51 </lexer> |