コード例 #1
0
        public CodeTypeDeclarationCollection ConvertToCodeDom(NativeProcedure proc, ErrorProvider ep)
        {
            NativeSymbolBag bag = new NativeSymbolBag(_storage);

            bag.AddProcedure(proc);
            return(ConvertBagToCodeDom(bag, ep));
        }
コード例 #2
0
        public void BagSaveAndLoad1()
        {
            NativeProcedure p1 = new NativeProcedure("p1");

            p1.Signature.ReturnType = new NativeBuiltinType(BuiltinType.NativeBoolean);

            NativeTypeDef td = new NativeTypeDef("LPWSTR", new NativePointer(BuiltinType.NativeWChar));

            p1.Signature.Parameters.Add(new NativeParameter("param1", new NativeNamedType("LPWSTR", td)));
            Assert.Equal("boolean p1(LPWSTR param1)", p1.DisplayName);
            Assert.Equal("p1(Sig(boolean)(Sal)(param1(LPWSTR(LPWSTR(*(wchar))))(Sal)))", SymbolPrinter.Convert(p1));

            var ns = new BasicSymbolStorage();

            ns.AddProcedure(p1);
            ns.AddTypeDef(td);

            NativeSymbolBag bag  = new NativeSymbolBag(ns);
            NativeProcedure ret1 = null;

            Assert.True(bag.TryGetGlobalSymbol("p1", out ret1));
            bag.AddProcedure(ret1);
            Assert.True(bag.TryResolveSymbolsAndValues());
            Assert.Equal(SymbolPrinter.Convert(p1), SymbolPrinter.Convert(ret1));
        }
コード例 #3
0
        public void Proc1()
        {
            NativeSymbolBag bag = new NativeSymbolBag();

            NativeProcedure p1 = new NativeProcedure("p1");

            p1.Signature.ReturnType = new NativeBuiltinType(BuiltinType.NativeDouble);

            bag.AddProcedure(p1);
            Assert.True(bag.TryResolveSymbolsAndValues());
        }
コード例 #4
0
        public void Proc4()
        {
            NativeSymbolBag bag = new NativeSymbolBag();

            NativeProcedure p1 = new NativeProcedure("p1");

            p1.Signature.ReturnType = new NativeNamedType("foo");
            p1.Signature.Parameters.Add(new NativeParameter("param1", new NativeBuiltinType(BuiltinType.NativeDouble)));

            bag.AddProcedure(p1);
            Assert.False(bag.TryResolveSymbolsAndValues());
        }
コード例 #5
0
        public void Proc6()
        {
            NativeSymbolBag bag = new NativeSymbolBag();

            NativeProcedure p1 = new NativeProcedure("p1");

            p1.Signature.ReturnType = new NativeBuiltinType(BuiltinType.NativeInt32, true);
            p1.Signature.Parameters.Add(new NativeParameter("param1", new NativeNamedType("foo")));

            bag.AddProcedure(p1);
            bag.AddTypeDef(new NativeTypeDef("foo", new NativeBuiltinType(BuiltinType.NativeFloat)));
            Assert.True(bag.TryResolveSymbolsAndValues());
        }