...
1<lexer>
2 <config>
3 <name>Dylan</name>
4 <alias>dylan</alias>
5 <filename>*.dylan</filename>
6 <filename>*.dyl</filename>
7 <filename>*.intr</filename>
8 <mime_type>text/x-dylan</mime_type>
9 <case_insensitive>true</case_insensitive>
10 </config>
11 <rules>
12 <state name="string">
13 <rule pattern=""">
14 <token type="LiteralString"/>
15 <pop depth="1"/>
16 </rule>
17 <rule pattern="\\([\\abfnrtv"\']|x[a-f0-9]{2,4}|[0-7]{1,3})">
18 <token type="LiteralStringEscape"/>
19 </rule>
20 <rule pattern="[^\\"\n]+">
21 <token type="LiteralString"/>
22 </rule>
23 <rule pattern="\\\n">
24 <token type="LiteralString"/>
25 </rule>
26 <rule pattern="\\">
27 <token type="LiteralString"/>
28 </rule>
29 </state>
30 <state name="root">
31 <rule pattern="\s+">
32 <token type="TextWhitespace"/>
33 </rule>
34 <rule pattern="//.*?\n">
35 <token type="CommentSingle"/>
36 </rule>
37 <rule pattern="([a-z0-9-]+:)([ \t]*)(.*(?:\n[ \t].+)*)">
38 <bygroups>
39 <token type="NameAttribute"/>
40 <token type="TextWhitespace"/>
41 <token type="LiteralString"/>
42 </bygroups>
43 </rule>
44 <rule>
45 <push state="code"/>
46 </rule>
47 </state>
48 <state name="code">
49 <rule pattern="\s+">
50 <token type="TextWhitespace"/>
51 </rule>
52 <rule pattern="//.*?\n">
53 <token type="CommentSingle"/>
54 </rule>
55 <rule pattern="/\*">
56 <token type="CommentMultiline"/>
57 <push state="comment"/>
58 </rule>
59 <rule pattern=""">
60 <token type="LiteralString"/>
61 <push state="string"/>
62 </rule>
63 <rule pattern="'(\\.|\\[0-7]{1,3}|\\x[a-f0-9]{1,2}|[^\\\'\n])'">
64 <token type="LiteralStringChar"/>
65 </rule>
66 <rule pattern="#b[01]+">
67 <token type="LiteralNumberBin"/>
68 </rule>
69 <rule pattern="#o[0-7]+">
70 <token type="LiteralNumberOct"/>
71 </rule>
72 <rule pattern="[-+]?(\d*\.\d+([ed][-+]?\d+)?|\d+(\.\d*)?e[-+]?\d+)">
73 <token type="LiteralNumberFloat"/>
74 </rule>
75 <rule pattern="[-+]?\d+">
76 <token type="LiteralNumberInteger"/>
77 </rule>
78 <rule pattern="#x[0-9a-f]+">
79 <token type="LiteralNumberHex"/>
80 </rule>
81 <rule pattern="(\?\\?)([\w!&*<>|^$%@+~?/=-]+)(:)(token|name|variable|expression|body|case-body|\*)">
82 <bygroups>
83 <token type="Operator"/>
84 <token type="NameVariable"/>
85 <token type="Operator"/>
86 <token type="NameBuiltin"/>
87 </bygroups>
88 </rule>
89 <rule pattern="(\?)(:)(token|name|variable|expression|body|case-body|\*)">
90 <bygroups>
91 <token type="Operator"/>
92 <token type="Operator"/>
93 <token type="NameVariable"/>
94 </bygroups>
95 </rule>
96 <rule pattern="(\?\\?)([\w!&*<>|^$%@+~?/=-]+)">
97 <bygroups>
98 <token type="Operator"/>
99 <token type="NameVariable"/>
100 </bygroups>
101 </rule>
102 <rule pattern="(=>|::|#\(|#\[|##|\?\?|\?=|\?|[(){}\[\],.;])">
103 <token type="Punctuation"/>
104 </rule>
105 <rule pattern=":=">
106 <token type="Operator"/>
107 </rule>
108 <rule pattern="#[tf]">
109 <token type="Literal"/>
110 </rule>
111 <rule pattern="#"">
112 <token type="LiteralStringSymbol"/>
113 <push state="symbol"/>
114 </rule>
115 <rule pattern="#[a-z0-9-]+">
116 <token type="Keyword"/>
117 </rule>
118 <rule pattern="#(all-keys|include|key|next|rest)">
119 <token type="Keyword"/>
120 </rule>
121 <rule pattern="[\w!&*<>|^$%@+~?/=-]+:">
122 <token type="KeywordConstant"/>
123 </rule>
124 <rule pattern="<[\w!&*<>|^$%@+~?/=-]+>">
125 <token type="NameClass"/>
126 </rule>
127 <rule pattern="\*[\w!&*<>|^$%@+~?/=-]+\*">
128 <token type="NameVariableGlobal"/>
129 </rule>
130 <rule pattern="\$[\w!&*<>|^$%@+~?/=-]+">
131 <token type="NameConstant"/>
132 </rule>
133 <rule pattern="(let|method|function)([ \t]+)([\w!&*<>|^$%@+~?/=-]+)">
134 <bygroups>
135 <token type="NameBuiltin"/>
136 <token type="TextWhitespace"/>
137 <token type="NameVariable"/>
138 </bygroups>
139 </rule>
140 <rule pattern="(error|signal|return|break)">
141 <token type="NameException"/>
142 </rule>
143 <rule pattern="(\\?)([\w!&*<>|^$%@+~?/=-]+)">
144 <bygroups>
145 <token type="Operator"/>
146 <token type="Name"/>
147 </bygroups>
148 </rule>
149 </state>
150 <state name="comment">
151 <rule pattern="[^*/]">
152 <token type="CommentMultiline"/>
153 </rule>
154 <rule pattern="/\*">
155 <token type="CommentMultiline"/>
156 <push/>
157 </rule>
158 <rule pattern="\*/">
159 <token type="CommentMultiline"/>
160 <pop depth="1"/>
161 </rule>
162 <rule pattern="[*/]">
163 <token type="CommentMultiline"/>
164 </rule>
165 </state>
166 <state name="symbol">
167 <rule pattern=""">
168 <token type="LiteralStringSymbol"/>
169 <pop depth="1"/>
170 </rule>
171 <rule pattern="[^\\"]+">
172 <token type="LiteralStringSymbol"/>
173 </rule>
174 </state>
175 </rules>
176</lexer>
View as plain text