def test_types_module( self ): type_registry_registry = builtin_type_registry_registry() used_modules1, typedefs1, registry1 = load_types_file( self.meta_type_registry, type_registry_registry, self.make_fpath('test_module1.types')) self.assertTrue(registry1.has_name('some_int')) self.assertEqual(tInt, registry1.get_name('some_int')) self.assertTrue(registry1.has_name('object')) object_t = registry1.get_name('object') self.assertTrue(registry1.has_name('simple_class')) simple_class = registry1.get_name('simple_class') self.assertEqual(TClass(object_t, 'simple_2', TRecord([])), simple_class) self.assertTrue(registry1.has_name('text_object')) self.assertEqual(TClass(object_t, 'text_2', TRecord(base=simple_class, fields=[Field('text', tString)])), registry1.get_name('text_object')) self.assertEqual([], used_modules1) type_registry_registry.register('test_module1', registry1) used_modules2, typedefs2, registry2 = load_types_file( self.meta_type_registry, type_registry_registry, self.make_fpath('test_module2.types'))
def test_yacc( fpaths ): type_registry_registry = builtin_type_registry_registry() for fpath in fpaths: print('%s:' % fpath) dir, fname = os.path.split(fpath) module_name = os.path.splitext(fname)[0] with open(fpath) as f: input = f.read() print('parsing:') used_modules, typedefs, type_registry = parse_type_module( make_meta_type_registry(), type_registry_registry, fpath, input, debug=True) print('used modules:', used_modules) print('typedefs:', typedefs) for name, t in type_registry.items(): print('type %s: %s' % (name, t)) if typedefs: pprint(TList(tTypeDef), typedefs) type_registry_registry.register(module_name, type_registry)