comparison vendor/github.com/alecthomas/chroma/v2/lexers/embedded/kotlin.xml @ 66:787b5ee0289d draft

Use vendored modules Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja>
author yakumo.izuru
date Sun, 23 Jul 2023 13:18:53 +0000
parents
children
comparison
equal deleted inserted replaced
65:6d985efa0f7a 66:787b5ee0289d
1 <lexer>
2 <config>
3 <name>Kotlin</name>
4 <alias>kotlin</alias>
5 <filename>*.kt</filename>
6 <mime_type>text/x-kotlin</mime_type>
7 <dot_all>true</dot_all>
8 </config>
9 <rules>
10 <state name="string">
11 <rule pattern="\\[tbnr&#39;&#34;\\\$]">
12 <token type="LiteralStringEscape"/>
13 </rule>
14 <rule pattern="\\u[0-9a-fA-F]{4}">
15 <token type="LiteralStringEscape"/>
16 </rule>
17 <rule pattern="&#34;">
18 <token type="LiteralStringDouble"/>
19 <pop depth="1"/>
20 </rule>
21 <rule>
22 <include state="string-interpol"/>
23 </rule>
24 <rule pattern="[^\n\\&#34;$]+">
25 <token type="LiteralStringDouble"/>
26 </rule>
27 <rule pattern="\$">
28 <token type="LiteralStringDouble"/>
29 </rule>
30 </state>
31 <state name="package">
32 <rule pattern="\S+">
33 <token type="NameNamespace"/>
34 <pop depth="1"/>
35 </rule>
36 </state>
37 <state name="class">
38 <rule pattern="\x60[^\x60]+?\x60">
39 <token type="NameClass"/>
40 <pop depth="1"/>
41 </rule>
42 <rule pattern="(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)">
43 <token type="NameClass"/>
44 <pop depth="1"/>
45 </rule>
46 </state>
47 <state name="property">
48 <rule pattern="\x60[^\x60]+?\x60">
49 <token type="NameProperty"/>
50 <pop depth="1"/>
51 </rule>
52 <rule pattern="(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)">
53 <token type="NameProperty"/>
54 <pop depth="1"/>
55 </rule>
56 </state>
57 <state name="string-interpol">
58 <rule pattern="\$(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)">
59 <token type="LiteralStringInterpol"/>
60 </rule>
61 <rule pattern="\${[^}\n]*}">
62 <token type="LiteralStringInterpol"/>
63 </rule>
64 </state>
65 <state name="generics-specification">
66 <rule pattern="&lt;">
67 <token type="Punctuation"/>
68 <push state="generics-specification"/>
69 </rule>
70 <rule pattern="&gt;">
71 <token type="Punctuation"/>
72 <pop depth="1"/>
73 </rule>
74 <rule pattern="[,:*?]">
75 <token type="Punctuation"/>
76 </rule>
77 <rule pattern="(in|out|reified)">
78 <token type="Keyword"/>
79 </rule>
80 <rule pattern="\x60[^\x60]+?\x60">
81 <token type="NameClass"/>
82 </rule>
83 <rule pattern="(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)">
84 <token type="NameClass"/>
85 </rule>
86 <rule pattern="\s+">
87 <token type="Text"/>
88 </rule>
89 </state>
90 <state name="root">
91 <rule pattern="^\s*\[.*?\]">
92 <token type="NameAttribute"/>
93 </rule>
94 <rule pattern="[^\S\n]+">
95 <token type="Text"/>
96 </rule>
97 <rule pattern="\\\n">
98 <token type="Text"/>
99 </rule>
100 <rule pattern="//[^\n]*\n?">
101 <token type="CommentSingle"/>
102 </rule>
103 <rule pattern="/[*].*?[*]/">
104 <token type="CommentMultiline"/>
105 </rule>
106 <rule pattern="\n">
107 <token type="Text"/>
108 </rule>
109 <rule pattern="!==|!in|!is|===">
110 <token type="Operator"/>
111 </rule>
112 <rule pattern="%=|&amp;&amp;|\*=|\+\+|\+=|--|-=|-&gt;|\.\.|\/=|::|&lt;=|==|&gt;=|!!|!=|\|\||\?[:.]">
113 <token type="Operator"/>
114 </rule>
115 <rule pattern="[~!%^&amp;*()+=|\[\]:;,.&lt;&gt;\/?-]">
116 <token type="Punctuation"/>
117 </rule>
118 <rule pattern="[{}]">
119 <token type="Punctuation"/>
120 </rule>
121 <rule pattern="&#34;&#34;&#34;">
122 <token type="LiteralString"/>
123 <push state="rawstring"/>
124 </rule>
125 <rule pattern="&#34;">
126 <token type="LiteralStringDouble"/>
127 <push state="string"/>
128 </rule>
129 <rule pattern="(&#39;)(\\u[0-9a-fA-F]{4})(&#39;)">
130 <bygroups>
131 <token type="LiteralStringChar"/>
132 <token type="LiteralStringEscape"/>
133 <token type="LiteralStringChar"/>
134 </bygroups>
135 </rule>
136 <rule pattern="&#39;\\.&#39;|&#39;[^\\]&#39;">
137 <token type="LiteralStringChar"/>
138 </rule>
139 <rule pattern="0[xX][0-9a-fA-F]+[Uu]?[Ll]?|[0-9]+(\.[0-9]*)?([eE][+-][0-9]+)?[fF]?[Uu]?[Ll]?">
140 <token type="LiteralNumber"/>
141 </rule>
142 <rule pattern="(companion)(\s+)(object)">
143 <bygroups>
144 <token type="Keyword"/>
145 <token type="Text"/>
146 <token type="Keyword"/>
147 </bygroups>
148 </rule>
149 <rule pattern="(class|interface|object)(\s+)">
150 <bygroups>
151 <token type="Keyword"/>
152 <token type="Text"/>
153 </bygroups>
154 <push state="class"/>
155 </rule>
156 <rule pattern="(package|import)(\s+)">
157 <bygroups>
158 <token type="Keyword"/>
159 <token type="Text"/>
160 </bygroups>
161 <push state="package"/>
162 </rule>
163 <rule pattern="(val|var)(\s+)">
164 <bygroups>
165 <token type="Keyword"/>
166 <token type="Text"/>
167 </bygroups>
168 <push state="property"/>
169 </rule>
170 <rule pattern="(fun)(\s+)">
171 <bygroups>
172 <token type="Keyword"/>
173 <token type="Text"/>
174 </bygroups>
175 <push state="function"/>
176 </rule>
177 <rule pattern="(abstract|actual|annotation|as|as\?|break|by|catch|class|companion|const|constructor|continue|crossinline|data|delegate|do|dynamic|else|enum|expect|external|false|field|file|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|it|lateinit|noinline|null|object|open|operator|out|override|package|param|private|property|protected|public|receiver|reified|return|sealed|set|setparam|super|suspend|tailrec|this|throw|true|try|typealias|typeof|val|value|var|vararg|when|where|while)\b">
178 <token type="Keyword"/>
179 </rule>
180 <rule pattern="@(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)">
181 <token type="NameDecorator"/>
182 </rule>
183 <rule pattern="(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)">
184 <token type="Name"/>
185 </rule>
186 </state>
187 <state name="function">
188 <rule pattern="&lt;">
189 <token type="Punctuation"/>
190 <push state="generics-specification"/>
191 </rule>
192 <rule pattern="\x60[^\x60]+?\x60">
193 <token type="NameFunction"/>
194 <pop depth="1"/>
195 </rule>
196 <rule pattern="(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)">
197 <token type="NameFunction"/>
198 <pop depth="1"/>
199 </rule>
200 <rule pattern="\s+">
201 <token type="Text"/>
202 </rule>
203 </state>
204 <state name="rawstring">
205 <rule pattern="&#34;&#34;&#34;">
206 <token type="LiteralString"/>
207 <pop depth="1"/>
208 </rule>
209 <rule pattern="(?:[^$&#34;]+|\&#34;{1,2}[^&#34;])+">
210 <token type="LiteralString"/>
211 </rule>
212 <rule>
213 <include state="string-interpol"/>
214 </rule>
215 <rule pattern="\$">
216 <token type="LiteralString"/>
217 </rule>
218 </state>
219 </rules>
220 </lexer>