...
1<lexer>
2 <config>
3 <name>EBNF</name>
4 <alias>ebnf</alias>
5 <filename>*.ebnf</filename>
6 <mime_type>text/x-ebnf</mime_type>
7 </config>
8 <rules>
9 <state name="comment">
10 <rule pattern="[^*)]">
11 <token type="CommentMultiline"/>
12 </rule>
13 <rule>
14 <include state="comment_start"/>
15 </rule>
16 <rule pattern="\*\)">
17 <token type="CommentMultiline"/>
18 <pop depth="1"/>
19 </rule>
20 <rule pattern="[*)]">
21 <token type="CommentMultiline"/>
22 </rule>
23 </state>
24 <state name="identifier">
25 <rule pattern="([a-zA-Z][\w \-]*)">
26 <token type="Keyword"/>
27 </rule>
28 </state>
29 <state name="root">
30 <rule>
31 <include state="whitespace"/>
32 </rule>
33 <rule>
34 <include state="comment_start"/>
35 </rule>
36 <rule>
37 <include state="identifier"/>
38 </rule>
39 <rule pattern="=">
40 <token type="Operator"/>
41 <push state="production"/>
42 </rule>
43 </state>
44 <state name="production">
45 <rule>
46 <include state="whitespace"/>
47 </rule>
48 <rule>
49 <include state="comment_start"/>
50 </rule>
51 <rule>
52 <include state="identifier"/>
53 </rule>
54 <rule pattern=""[^"]*"">
55 <token type="LiteralStringDouble"/>
56 </rule>
57 <rule pattern="'[^']*'">
58 <token type="LiteralStringSingle"/>
59 </rule>
60 <rule pattern="(\?[^?]*\?)">
61 <token type="NameEntity"/>
62 </rule>
63 <rule pattern="[\[\]{}(),|]">
64 <token type="Punctuation"/>
65 </rule>
66 <rule pattern="-">
67 <token type="Operator"/>
68 </rule>
69 <rule pattern=";">
70 <token type="Punctuation"/>
71 <pop depth="1"/>
72 </rule>
73 <rule pattern="\.">
74 <token type="Punctuation"/>
75 <pop depth="1"/>
76 </rule>
77 </state>
78 <state name="whitespace">
79 <rule pattern="\s+">
80 <token type="Text"/>
81 </rule>
82 </state>
83 <state name="comment_start">
84 <rule pattern="\(\*">
85 <token type="CommentMultiline"/>
86 <push state="comment"/>
87 </rule>
88 </state>
89 </rules>
90</lexer>
View as plain text