66
|
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> |