示例#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 setUp(self):
     self._engine = MagicMock()
     self._symbols = SymbolTable.default()
     self._tokens = TokenFactory(self._symbols)
     self._factory = Factory(self._symbols)
     self._environment = Context()
     self._lexer = None
     self._parser = None
示例#3
0
文件: engine.py 项目: fchauvel/flap
 def __init__(self, file_system, ui, root_tex_file, output):
     self._file_system = file_system
     self._display = ui
     self._root_tex_file = root_tex_file
     self._output = output
     self._count = 0
     self._selected_for_inclusion = []
     self._graphic_directories = []
     self._analysed_dependencies = []
     self._character_table = SymbolTable.default()
示例#4
0
文件: engine.py 项目: fchauvel/flap
    def relocate_dependency(self, dependency, invocation):
        if dependency not in self._analysed_dependencies:
            self._analysed_dependencies.append(dependency)
            try:
                file = self._find(dependency, [self.root_directory], ["sty", "cls"], TexFileNotFound(None))
                self._file_system.copy(file,
                                       self.output_directory / file.fullname())

                self._show_invocation(invocation)
                symbol_table = SymbolTable.default()
                symbol_table.CHARACTER += '@'
                self._rewrite(file.content(), file.fullname(), symbol_table)

            except TexFileNotFound:
                logger.debug("Could not find class or package '" + dependency + " locally")
示例#5
0
文件: engine.py 项目: alcrene/flap
    def relocate_dependency(self, dependency, invocation):
        if dependency not in self._analysed_dependencies:
            self._analysed_dependencies.append(dependency)
            try:
                file = self._find(dependency, [self.root_directory],
                                  ["sty", "cls"], TexFileNotFound(None))
                new_path = file._path.relative_to(self.root_directory._path)
                self._show_invocation(invocation)
                symbol_table = SymbolTable.default()
                symbol_table.CHARACTER += '@'
                tokens = self._rewrite(file.content(), file.fullname(),
                                       symbol_table)
                self._write(
                    tokens,
                    self.output_directory / self._as_file_name(new_path))
                return self._as_file_name(new_path.without_extension())

            except TexFileNotFound:
                log(invocation,
                    "Could not find class or package '{path:s}' locally",
                    path=dependency)
                return None
示例#6
0
 def setUp(self):
     self._symbols = SymbolTable.default()
     self._tokens = TokenFactory(self._symbols)
     self._text = None
示例#7
0
文件: core.py 项目: fchauvel/flap
# 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:
示例#8
0
 def setUp(self):
     self._symbols = SymbolTable.default()
     self._tokens = TokenFactory(self._symbols)
     self._text = None
示例#9
0
文件: engine.py 项目: fchauvel/flap
 def _rewrite(self, text, source, symbol_table=SymbolTable.default()):
     factory = Factory(symbol_table)
     parser = Parser(factory.as_tokens(text, source),
                     factory, self, Context())
     return parser.rewrite()
示例#10
0
文件: engine.py 项目: alcrene/flap
 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()