Просмотр исходного кода

_push_textbuffer() in _verify_template_name()

tags/v0.1
Ben Kurtovic 11 лет назад
Родитель
Сommit
31103b5891
1 измененных файлов: 12 добавлений и 12 удалений
  1. +12
    -12
      mwparserfromhell/parser/tokenizer.py

+ 12
- 12
mwparserfromhell/parser/tokenizer.py Просмотреть файл

@@ -64,26 +64,24 @@ class Tokenizer(object):
def _push(self, context=0): def _push(self, context=0):
self._stacks.append([[], context, []]) self._stacks.append([[], context, []])


def _push_textbuffer(self):
if self._textbuffer:
self._stack.append(tokens.Text(text="".join(self._textbuffer)))
self._textbuffer = []

def _pop(self): def _pop(self):
top = self._stacks.pop()
stack, text = top[0], top[2]
if text:
stack.append(tokens.Text(text="".join(text)))
return stack
self._push_textbuffer()
return self._stacks.pop()[0]


def _write(self, data, text=False): def _write(self, data, text=False):
if text: if text:
self._textbuffer.append(data) self._textbuffer.append(data)
return return
if self._textbuffer:
self._stack.append(tokens.Text(text="".join(self._textbuffer)))
self._textbuffer = []
self._push_textbuffer()
self._stack.append(data) self._stack.append(data)


def _write_all(self, tokenlist): def _write_all(self, tokenlist):
if self._textbuffer:
self._stack.append(tokens.Text(text="".join(self._textbuffer)))
self._textbuffer = []
self._push_textbuffer()
self._stack.extend(tokenlist) self._stack.extend(tokenlist)


def _read(self, delta=0, wrap=False): def _read(self, delta=0, wrap=False):
@@ -114,10 +112,12 @@ class Tokenizer(object):
self._write(tokens.TemplateClose()) self._write(tokens.TemplateClose())


def _verify_template_name(self): def _verify_template_name(self):
self._push_textbuffer()
if self._stack: if self._stack:
text = [tok for tok in self._stack if isinstance(tok, tokens.Text)] text = [tok for tok in self._stack if isinstance(tok, tokens.Text)]
print text
text = "".join([token.text for token in text]) text = "".join([token.text for token in text])
if text.strip() and "\n" in text:
if text.strip() and "\n" in text.strip():
raise BadRoute(self._pop()) raise BadRoute(self._pop())


def _handle_template_param(self): def _handle_template_param(self):


Загрузка…
Отмена
Сохранить