public CodeTypeDeclarationCollection ConvertToCodeDom(NativeProcedure proc, ErrorProvider ep) { NativeSymbolBag bag = new NativeSymbolBag(_storage); bag.AddProcedure(proc); return(ConvertBagToCodeDom(bag, ep)); }
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)); }
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()); }
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()); }
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()); }