Source code for mau.lexers.arguments_lexer

import re

from mau.lexers.base_lexer import BaseLexer, TokenTypes


[docs]class ArgumentsLexer(BaseLexer): def _process_functions(self): return [ self._process_eof, self._process_eol, self._process_whitespace, self._process_literal, self._process_text, ] def _process_whitespace(self): regexp = re.compile(r" +") match = regexp.match(self._tail) if not match: # pragma: no cover return None return self._create_token_and_skip(TokenTypes.WHITESPACE, match.group()) def _process_literal(self): if self._current_char not in r'\=,"': return None return self._create_token_and_skip(TokenTypes.LITERAL, self._current_char) def _process_text(self): regexp = re.compile(r'[^\\=," ]+') match = regexp.match(self._tail) if not match: # pragma: no cover return None return self._create_token_and_skip(TokenTypes.TEXT, match.group())
[docs] def process(self, text): super().process(text) # Remove EOL and EOF self.tokens = self.tokens[:-2]