21 __all__ = ['CSharpLexer', 'BooLexer', 'VbNetLexer', 'CSharpAspxLexer', |
21 __all__ = ['CSharpLexer', 'BooLexer', 'VbNetLexer', 'CSharpAspxLexer', |
22 'VbNetAspxLexer'] |
22 'VbNetAspxLexer'] |
23 |
23 |
24 |
24 |
25 def _escape(st): |
25 def _escape(st): |
26 return st.replace(u'\\', ur'\\').replace(u'-', ur'\-').\ |
26 return st.replace('\\', r'\\').replace('-', r'\-').\ |
27 replace(u'[', ur'\[').replace(u']', ur'\]') |
27 replace('[', r'\[').replace(']', r'\]') |
28 |
28 |
29 class CSharpLexer(RegexLexer): |
29 class CSharpLexer(RegexLexer): |
30 """ |
30 """ |
31 For `C# <http://msdn2.microsoft.com/en-us/vcsharp/default.aspx>`_ |
31 For `C# <http://msdn2.microsoft.com/en-us/vcsharp/default.aspx>`_ |
32 source code. |
32 source code. |
126 ('(' + cs_ident + r'|\.)+', Name.Namespace, '#pop') |
126 ('(' + cs_ident + r'|\.)+', Name.Namespace, '#pop') |
127 ] |
127 ] |
128 } |
128 } |
129 |
129 |
130 def __init__(self, **options): |
130 def __init__(self, **options): |
131 level = get_choice_opt(options, 'unicodelevel', self.tokens.keys(), 'basic') |
131 level = get_choice_opt(options, 'unicodelevel', list(self.tokens.keys()), 'basic') |
132 if level not in self._all_tokens: |
132 if level not in self._all_tokens: |
133 # compile the regexes now |
133 # compile the regexes now |
134 self._tokens = self.__class__.process_tokendef(level) |
134 self._tokens = self.__class__.process_tokendef(level) |
135 else: |
135 else: |
136 self._tokens = self._all_tokens[level] |
136 self._tokens = self._all_tokens[level] |