342 op3_re = "|".join(re.escape(s) for s in OPERATORS3) |
342 op3_re = "|".join(re.escape(s) for s in OPERATORS3) |
343 op2_re = "|".join(re.escape(s) for s in OPERATORS2) |
343 op2_re = "|".join(re.escape(s) for s in OPERATORS2) |
344 op1_re = "|".join(re.escape(s) for s in OPERATORS1) |
344 op1_re = "|".join(re.escape(s) for s in OPERATORS1) |
345 ops_re = r'(?:%s|%s|%s)' % (op3_re, op2_re, op1_re) |
345 ops_re = r'(?:%s|%s|%s)' % (op3_re, op2_re, op1_re) |
346 punctuation_re = "|".join(re.escape(s) for s in PUNCTUATION) |
346 punctuation_re = "|".join(re.escape(s) for s in PUNCTUATION) |
347 alnum = '\w' |
347 alnum = r'\w' |
348 name_re = r'(?:\.\.\.|[a-z_]%s*[!?]?)' % alnum |
348 name_re = r'(?:\.\.\.|[a-z_]%s*[!?]?)' % alnum |
349 modname_re = r'[A-Z]%(alnum)s*(?:\.[A-Z]%(alnum)s*)*' % {'alnum': alnum} |
349 modname_re = r'[A-Z]%(alnum)s*(?:\.[A-Z]%(alnum)s*)*' % {'alnum': alnum} |
350 complex_name_re = r'(?:%s|%s|%s)' % (name_re, modname_re, ops_re) |
350 complex_name_re = r'(?:%s|%s|%s)' % (name_re, modname_re, ops_re) |
351 special_atom_re = r'(?:\.\.\.|<<>>|%\{\}|%|\{\})' |
351 special_atom_re = r'(?:\.\.\.|<<>>|%\{\}|%|\{\})' |
352 |
352 |
493 |
493 |
494 name = 'Elixir iex session' |
494 name = 'Elixir iex session' |
495 aliases = ['iex'] |
495 aliases = ['iex'] |
496 mimetypes = ['text/x-elixir-shellsession'] |
496 mimetypes = ['text/x-elixir-shellsession'] |
497 |
497 |
498 _prompt_re = re.compile('(iex|\.{3})(\(\d+\))?> ') |
498 _prompt_re = re.compile(r'(iex|\.{3})(\(\d+\))?> ') |
499 |
499 |
500 def get_tokens_unprocessed(self, text): |
500 def get_tokens_unprocessed(self, text): |
501 exlexer = ElixirLexer(**self.options) |
501 exlexer = ElixirLexer(**self.options) |
502 |
502 |
503 curcode = '' |
503 curcode = '' |