Source code for mau.lexers.preprocess_variables_lexer
from mau import text_buffer
from mau.lexers.base_lexer import BaseLexer, Token, TokenTypes
[docs]class PreprocessVariablesLexer(BaseLexer):
def _process_eol(self):
try:
self._current_char
except text_buffer.EOLError:
self._nextline()
return Token(TokenTypes.TEXT, "\n")
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):
return self._create_token_and_skip(TokenTypes.TEXT, self._current_char)
def _process_functions(self):
return [
self._process_eof,
self._process_eol,
self._process_literal,
self._process_text,
]
[docs] def process(self, text):
super().process(text)
self.tokens = self.tokens[:-1]