예제 #1
0
 public override ExternalProcedure ResolveImportedProcedure(
     IImportResolver resolver, 
     Platform platform, 
     AddressContext ctx)
 {
     var ep = resolver.ResolveProcedure(ModuleName, ImportName, platform);
     if (ep != null)
         return ep;
     // Can we guess at the signature?
     var sig = platform.SignatureFromName(ImportName);
     if (sig != null)
     {
         ep = new ExternalProcedure(ImportName, sig);   //$BUGBUG: mangled name!
     }
     else
     {
         ctx.Warn("Unable to resolve imported reference {0}.", this);
         return new ExternalProcedure(this.ToString(), null);
     }
     return ep;
 }
예제 #2
0
 public override ExternalProcedure ResolveImportedProcedure(IImportResolver resolver, Platform platform, AddressContext ctx)
 {
     var ep = resolver.ResolveProcedure(ModuleName, Ordinal, platform);
     if (ep != null)
         return ep;
     ctx.Warn("Unable to resolve imported reference {0}.", this);
     return new ExternalProcedure(this.ToString(), null);
 }
예제 #3
0
 public abstract ExternalProcedure ResolveImportedProcedure(IImportResolver importResolver, Platform platform, AddressContext ctx);