def test_m5_2(self): c = Includer.Includer() path = os.path.join(os.path.abspath(os.path.dirname(__file__)), '0.py') lines = [-5, 2] with self.assertRaises(Exception) as e: text = c.Include(path, lines=lines) self.assertEqual(e.msg, '引数linesは 左辺値 <= 右辺値 である必要があります。')
def test_plus2plus(self): c = Includer.Includer() path = os.path.join(os.path.abspath(os.path.dirname(__file__)), '0.py') lines = [3, 6] answer = """class MyClass(object): def __init__(self): pass def Show(self):""" text = c.Include(path, lines=lines) self.assertEqual(text, answer)
def test_none_8(self): c = Includer.Includer() path = os.path.join(os.path.abspath(os.path.dirname(__file__)), '0.py') lines = [None, 8] with self.assertRaises(Exception) as e: text = c.Include(path, lines=lines) self.assertEqual( e.msg, '引数linesはlist型で[start, end]の2つの整数値を指定してください。0を指定するとstartは1, endは最終行数になります。負数を指定すると末尾からの行数です。-1なら最終行-1行目を指定します。' )
def test_5_m2(self): c = Includer.Includer() path = os.path.join(os.path.abspath(os.path.dirname(__file__)), '0.py') lines = [5, -2] answer = """ pass def Show(self): print('this is MyClass.') if __name__ == '__main__':""" text = c.Include(path, lines=lines) self.assertEqual(text, answer)
def test_0_m5(self): c = Includer.Includer() path = os.path.join(os.path.abspath(os.path.dirname(__file__)), '0.py') lines = [0, -5] answer = """#!python3 #encoding: utf-8 class MyClass(object): def __init__(self): pass def Show(self): print('this is MyClass.')""" text = c.Include(path, lines=lines) self.assertEqual(text, answer)
def test_all_none(self): c = Includer.Includer() path = os.path.join(os.path.abspath(os.path.dirname(__file__)), '0.py') lines = None answer = """#!python3 #encoding: utf-8 class MyClass(object): def __init__(self): pass def Show(self): print('this is MyClass.') if __name__ == '__main__': c = MyClass() c.Show() """ text = c.Include(path, lines=lines) self.assertEqual(text, answer)
def __init__(self): self.__includer = Includer.Includer() self.__wrapper = HtmlWrapper.HtmlWrapper()
import Config import Includer import Compiler logger = logging.getLogger(__name__) if __name__ == '__main__': logging.basicConfig(level=logging.INFO) sourcePool = Config.System.JAVA_LIBS out = path.join(Config.Path.OUT, Config.System.VERSION, "java") if not os.path.exists(out): os.mkdir(out) imports = set() if len(sys.argv) > 1 and os.path.isfile(Includer.absjoin(out, sys.argv[1].replace(".", "/")+".py")): logger.info("input pkg: {}".format(sys.argv[1])) os.remove(Includer.absjoin(out, sys.argv[1].replace(".", "/")+".py")) imports.add(sys.argv[1]) else: files = Includer.absjoin(Config.Path.OUT, Config.System.VERSION, "Parcel_list") # load used creator files with open(files, "r") as ffd: pkgs = ffd.read().split("\n") for pkg in pkgs: if pkg.find(".") > 0: imports.add(pkg) # empty set solvedPkgs = set()
import Includer as inc # Run() if __name__ == "__main__": # Чтаем исходный файл - единицу компиляции fname = "_v2_HOT.asm" ftarget = "pp_" + fname # файл с резултьтатом fpath = "../../test-data" fullName = fpath + "/" + fname fname = fname.replace("/", "\\\\") # ! могут быть инглуды задефайнены!! # нужно очистить от дефайнов заголовочные файлы, а потом уже блок кода! # собрать один файл inc.assembleCompileUnit(fullName, ftarget) """ # удаляем комментарии print '\nRemoving commints...' inc.purgeFromComments( targetFileName ) # пропускаем через макросы - если внутри есть дефайны, то отфильтруем потом print '\nRemoving macroses...' run( targetFileName ) # пропускаем через definer ! один раз но весь исходник! и все готово, print '\nPurge from ifdefs...' inc.ConditionCompile( targetFileName ) # В итоге чистый файл - чистый код, котовый к графическом анализу """
# -*- coding: utf-8 -*- """ abs. : обрабатывает include директивы на входе файл ansii(или и тот и тот) на выходе utf8 file : import testIncluder """ import os import unittest import Includer as inc # Run() if __name__ == "__main__": # переходим в директорию с файлом os.chdir("src") # Чтаем исходный файл - единицу компиляции fname = "_v2_HOT.asm" fname = "src.asm" targetFileName = "pp_" + fname # собрать один файл modelName = "" inc.assembleCompileUnit(fname, targetFileName)