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; }
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); }
public abstract ExternalProcedure ResolveImportedProcedure(IImportResolver importResolver, Platform platform, AddressContext ctx);