public override TypeLibrary Load(IPlatform platform, TypeLibrary dstLib) { var ser = SerializedLibrary.CreateSerializer(); var slib = (SerializedLibrary)ser.Deserialize(stream); var tldser = new TypeLibraryDeserializer(platform, true, dstLib); var tlib = tldser.Load(slib); return(tlib); }
public override TypeLibrary Load(IPlatform platform, TypeLibrary dstLib) { var rdr = new StreamReader(stream); var parser = platform.CreateCParser(rdr); var symbolTable = CreateSymbolTable(platform, dstLib); var declarations = parser.Parse(); foreach (var decl in declarations) { symbolTable.AddDeclaration(decl); } var slib = new SerializedLibrary { Types = symbolTable.Types.ToArray(), Procedures = symbolTable.Procedures.ToList(), }; var tldser = new TypeLibraryDeserializer(platform, true, dstLib); var tlib = tldser.Load(slib); return(tlib); }
public ProcedureSerializer CreateProcedureSerializer() { var typeLoader = new TypeLibraryDeserializer(Platform, true, EnvironmentMetadata.Clone()); return(new ProcedureSerializer(Platform, typeLoader, Platform.DefaultCallingConvention)); }