|
|
@@ -26,16 +26,16 @@ modules: the :py:mod:`~.tokenizer` and the :py:mod:`~.builder`. This module |
|
|
|
joins them together under one interface. |
|
|
|
""" |
|
|
|
|
|
|
|
from .builder import Builder |
|
|
|
from .tokenizer import Tokenizer |
|
|
|
try: |
|
|
|
from ._builder import CBuilder as Builder |
|
|
|
from ._tokenizer import CTokenizer |
|
|
|
use_c = True |
|
|
|
except ImportError: |
|
|
|
from .builder import Builder |
|
|
|
try: |
|
|
|
from ._tokenizer import CTokenizer as Tokenizer |
|
|
|
except ImportError: |
|
|
|
from .tokenizer import Tokenizer |
|
|
|
CTokenizer = None |
|
|
|
use_c = False |
|
|
|
|
|
|
|
__all__ = ["Parser"] |
|
|
|
__all__ = ["use_c", "Parser"] |
|
|
|
|
|
|
|
class Parser(object): |
|
|
|
"""Represents a parser for wikicode. |
|
|
@@ -48,7 +48,10 @@ class Parser(object): |
|
|
|
|
|
|
|
def __init__(self, text): |
|
|
|
self.text = text |
|
|
|
self._tokenizer = Tokenizer() |
|
|
|
if use_c and CTokenizer: |
|
|
|
self._tokenizer = CTokenizer() |
|
|
|
else: |
|
|
|
self._tokenizer = Tokenizer() |
|
|
|
self._builder = Builder() |
|
|
|
|
|
|
|
def parse(self): |
|
|
|