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 Identifier ResolveImportedGlobal(IImportResolver importResolver, IPlatform platform, AddressContext ctx) { ctx.Warn("Ordinal global imports not supported. Please report this message to the Reko maintainers (https://github.com/uxmal/reko)."); var id = importResolver.ResolveGlobal(ModuleName, Ordinal, platform); return(null); }
public override ExternalProcedure ResolveImportedProcedure( IDynamicLinker resolver, IPlatform platform, AddressContext ctx) { var ep = resolver.ResolveProcedure(ModuleName, ImportName, platform); if (ep != null) { if (!ep.Signature.ParametersValid) { ctx.Warn("Unable to guess parameters of {0}.", this); } return(ep); } ctx.Warn("Unable to resolve imported reference {0}.", this); return(new ExternalProcedure(this.ToString(), new FunctionType())); }
public override ExternalProcedure ResolveImportedProcedure(IDynamicLinker resolver, IPlatform 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(), new FunctionType())); }
public override Expression ResolveImport(IDynamicLinker dynamicLinker, IPlatform platform, AddressContext ctx) { var imp = dynamicLinker.ResolveImport(ModuleName, Ordinal, platform); if (imp != null) { return(imp); } ctx.Warn("Unable to resolve imported reference {0}.", this); return(null); }
public override ExternalProcedure ResolveImportedProcedure( IImportResolver resolver, IPlatform platform, AddressContext ctx) { var ep = resolver.ResolveProcedure(ModuleName, ImportName, platform); if (ep != null) return ep; // Can we guess at the signature? ep = platform.SignatureFromName(ImportName); if (ep != null) return ep; ctx.Warn("Unable to resolve imported reference {0}.", this); return new ExternalProcedure(this.ToString(), null); }
public override ExternalProcedure ResolveImportedProcedure(IImportResolver resolver, IPlatform 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 override Identifier ResolveImportedGlobal(IImportResolver importResolver, IPlatform platform, AddressContext ctx) { ctx.Warn("Ordinal global imports not supported. Please report this message to the Reko maintainers (https://github.com/uxmal/reko)."); return null; }