eric6/ThirdParty/Pygments/pygments/lexers/dotnet.py

changeset 7983
54c5cfbb1e29
parent 7701
25f42e208e08
equal deleted inserted replaced
7982:48d210e41c65 7983:54c5cfbb1e29
3 pygments.lexers.dotnet 3 pygments.lexers.dotnet
4 ~~~~~~~~~~~~~~~~~~~~~~ 4 ~~~~~~~~~~~~~~~~~~~~~~
5 5
6 Lexers for .net languages. 6 Lexers for .net languages.
7 7
8 :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS. 8 :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
9 :license: BSD, see LICENSE for details. 9 :license: BSD, see LICENSE for details.
10 """ 10 """
11 import re 11 import re
12 12
13 from pygments.lexer import RegexLexer, DelegatingLexer, bygroups, include, \ 13 from pygments.lexer import RegexLexer, DelegatingLexer, bygroups, include, \
86 (r'/[*].*?[*]/', Comment.Multiline), 86 (r'/[*].*?[*]/', Comment.Multiline),
87 (r'\n', Text), 87 (r'\n', Text),
88 (r'[~!%^&*()+=|\[\]:;,.<>/?-]', Punctuation), 88 (r'[~!%^&*()+=|\[\]:;,.<>/?-]', Punctuation),
89 (r'[{}]', Punctuation), 89 (r'[{}]', Punctuation),
90 (r'@"(""|[^"])*"', String), 90 (r'@"(""|[^"])*"', String),
91 (r'"(\\\\|\\"|[^"\n])*["\n]', String), 91 (r'"(\\\\|\\[^\\]|[^"\\\n])*["\n]', String),
92 (r"'\\.'|'[^\\]'", String.Char), 92 (r"'\\.'|'[^\\]'", String.Char),
93 (r"[0-9](\.[0-9]*)?([eE][+-][0-9]+)?" 93 (r"[0-9](\.[0-9]*)?([eE][+-][0-9]+)?"
94 r"[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?", Number), 94 r"[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?", Number),
95 (r'#[ \t]*(if|endif|else|elif|define|undef|' 95 (r'#[ \t]*(if|endif|else|elif|define|undef|'
96 r'line|error|warning|region|endregion|pragma)\b.*?\n', 96 r'line|error|warning|region|endregion|pragma)\b.*?\n',
211 'splice-string-content'), 211 'splice-string-content'),
212 212
213 (r'[~!%^&*()+=|\[\]:;,.<>/?-]', Punctuation), 213 (r'[~!%^&*()+=|\[\]:;,.<>/?-]', Punctuation),
214 (r'[{}]', Punctuation), 214 (r'[{}]', Punctuation),
215 (r'@"(""|[^"])*"', String), 215 (r'@"(""|[^"])*"', String),
216 (r'"(\\\\|\\"|[^"\n])*["\n]', String), 216 (r'"(\\\\|\\[^\\]|[^"\\\n])*["\n]', String),
217 (r"'\\.'|'[^\\]'", String.Char), 217 (r"'\\.'|'[^\\]'", String.Char),
218 (r"0[xX][0-9a-fA-F]+[Ll]?", Number), 218 (r"0[xX][0-9a-fA-F]+[Ll]?", Number),
219 (r"[0-9](\.[0-9]*)?([eE][+-][0-9]+)?[flFLdD]?", Number), 219 (r"[0-9](\.[0-9]*)?([eE][+-][0-9]+)?[flFLdD]?", Number),
220 (r'#[ \t]*(if|endif|else|elif|define|undef|' 220 (r'#[ \t]*(if|endif|else|elif|define|undef|'
221 r'line|error|warning|region|endregion|pragma)\b.*?\n', 221 r'line|error|warning|region|endregion|pragma)\b.*?\n',
293 else: 293 else:
294 self._tokens = self._all_tokens[level] 294 self._tokens = self._all_tokens[level]
295 295
296 RegexLexer.__init__(self, **options) 296 RegexLexer.__init__(self, **options)
297 297
298 def analyse_text(text):
299 """Nemerle is quite similar to Python, but @if is relatively uncommon
300 elsewhere."""
301 result = 0
302
303 if '@if' in text:
304 result += 0.1
305
306 return result
307
298 308
299 class BooLexer(RegexLexer): 309 class BooLexer(RegexLexer):
300 """ 310 """
301 For `Boo <http://boo.codehaus.org/>`_ source code. 311 For `Boo <http://boo.codehaus.org/>`_ source code.
302 """ 312 """
313 (r'/[*]', Comment.Multiline, 'comment'), 323 (r'/[*]', Comment.Multiline, 'comment'),
314 (r'[]{}:(),.;[]', Punctuation), 324 (r'[]{}:(),.;[]', Punctuation),
315 (r'\\\n', Text), 325 (r'\\\n', Text),
316 (r'\\', Text), 326 (r'\\', Text),
317 (r'(in|is|and|or|not)\b', Operator.Word), 327 (r'(in|is|and|or|not)\b', Operator.Word),
318 (r'/(\\\\|\\/|[^/\s])/', String.Regex), 328 (r'/(\\\\|\\[^\\]|[^/\\\s])/', String.Regex),
319 (r'@/(\\\\|\\/|[^/])*/', String.Regex), 329 (r'@/(\\\\|\\[^\\]|[^/\\])*/', String.Regex),
320 (r'=~|!=|==|<<|>>|[-+/*%=<>&^|]', Operator), 330 (r'=~|!=|==|<<|>>|[-+/*%=<>&^|]', Operator),
321 (r'(as|abstract|callable|constructor|destructor|do|import|' 331 (r'(as|abstract|callable|constructor|destructor|do|import|'
322 r'enum|event|final|get|interface|internal|of|override|' 332 r'enum|event|final|get|interface|internal|of|override|'
323 r'partial|private|protected|public|return|set|static|' 333 r'partial|private|protected|public|return|set|static|'
324 r'struct|transient|virtual|yield|super|and|break|cast|' 334 r'struct|transient|virtual|yield|super|and|break|cast|'
333 r'assert|checked|enumerate|filter|getter|len|lock|map|' 343 r'assert|checked|enumerate|filter|getter|len|lock|map|'
334 r'matrix|max|min|normalArrayIndexing|print|property|range|' 344 r'matrix|max|min|normalArrayIndexing|print|property|range|'
335 r'rawArrayIndexing|required|typeof|unchecked|using|' 345 r'rawArrayIndexing|required|typeof|unchecked|using|'
336 r'yieldAll|zip)\b', Name.Builtin), 346 r'yieldAll|zip)\b', Name.Builtin),
337 (r'"""(\\\\|\\"|.*?)"""', String.Double), 347 (r'"""(\\\\|\\"|.*?)"""', String.Double),
338 (r'"(\\\\|\\"|[^"]*?)"', String.Double), 348 (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
339 (r"'(\\\\|\\'|[^']*?)'", String.Single), 349 (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
340 (r'[a-zA-Z_]\w*', Name), 350 (r'[a-zA-Z_]\w*', Name),
341 (r'(\d+\.\d*|\d*\.\d+)([fF][+-]?[0-9]+)?', Number.Float), 351 (r'(\d+\.\d*|\d*\.\d+)([fF][+-]?[0-9]+)?', Number.Float),
342 (r'[0-9][0-9.]*(ms?|d|h|s)', Number), 352 (r'[0-9][0-9.]*(ms?|d|h|s)', Number),
343 (r'0\d+', Number.Oct), 353 (r'0\d+', Number.Oct),
344 (r'0x[a-fA-F0-9]+', Number.Hex), 354 (r'0x[a-fA-F0-9]+', Number.Hex),
682 (r'\n', String), 692 (r'\n', String),
683 (r'"""B?', String, '#pop'), 693 (r'"""B?', String, '#pop'),
684 (r'"', String), 694 (r'"', String),
685 ], 695 ],
686 } 696 }
697
698 def analyse_text(text):
699 """F# doesn't have that many unique features -- |> and <| are weak
700 indicators."""
701 result = 0
702 if '|>' in text:
703 result += 0.05
704 if '<|' in text:
705 result += 0.05
706
707 return result

eric ide

mercurial