Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        public ProcedureSerializer CreateProcedureSerializer()
        {
            var typeLoader = new TypeLibraryDeserializer(Platform, true, EnvironmentMetadata.Clone());

            return(new ProcedureSerializer(Platform, typeLoader, Platform.DefaultCallingConvention));
        }