Пример #1
0
 def setUp(self):
     self._engine = MagicMock()
     self._macros = MacroFactory(self._engine)
     self._symbols = SymbolTable.default()
     self._tokens = TokenFactory(self._symbols)
     self._factory = Factory(self._symbols)
     self._environment = Context(definitions=self._macros.all())
Пример #2
0
 def _rewrite(self, text, source, symbol_table=None):
     character_table = symbol_table or self._character_table
     factory = Factory(character_table)
     macros = MacroFactory(self)
     parser = Parser(factory.as_tokens(text, source), factory,
                     Context(definitions=macros.all()))
     return parser.process()
Пример #3
0
# Flap is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Flap.  If not, see <http://www.gnu.org/licenses/>.
#

from flap import logger
from flap.latex.macros.commons import Macro, UserDefinedMacro
from flap.latex.errors import UnknownSymbol
from flap.latex.symbols import SymbolTable
from flap.latex.parser import Factory

factory = Factory(SymbolTable.default())


class CatCode(Macro):
    def __init__(self, flap):
        super().__init__(flap, "catcode", factory.as_list("#1=#2\n"), None)

    def _execute(self, parser, invocation):
        logger.debug("Invocation: " + invocation.as_text)
        character = "".join(
            str(each_token) for each_token in invocation.argument("#1"))

        if character[0] == "`":
            if character[1] == "\\":
                character = character[2]
            else:
Пример #4
0
 def _rewrite(self, text, source, symbol_table=SymbolTable.default()):
     factory = Factory(symbol_table)
     macros = MacroFactory(self)
     parser = Parser(factory.as_tokens(text, source), factory,
                     Context(definitions=macros.all()))
     return parser.rewrite()