blob: 239cb07333266b2c3054c3481982899a2adb8230 [file] [log] [blame]
/* Compiler implementation of the D programming language
* Copyright (C) 2010-2021 by The D Language Foundation, All Rights Reserved
* written by Walter Bright
* http://www.digitalmars.com
* Distributed under the Boost Software License, Version 1.0.
* http://www.boost.org/LICENSE_1_0.txt
* https://github.com/D-Programming-Language/dmd/blob/master/src/imphint.c
*/
#include "root/dsystem.h"
#include "mars.h"
/******************************************
* Looks for undefined identifier s to see
* if it might be undefined because an import
* was not specified.
* Not meant to be a comprehensive list of names in each module,
* just the most common ones.
*/
const char *importHint(const char *s)
{
static const char *modules[] =
{ "core.stdc.stdio",
"std.stdio",
"std.math",
NULL
};
static const char *names[] =
{
"printf", NULL,
"writeln", NULL,
"sin", "cos", "sqrt", "fabs", NULL,
};
int m = 0;
for (int n = 0; modules[m]; n++)
{
const char *p = names[n];
if (p == NULL)
{
m++;
continue;
}
assert(modules[m]);
if (strcmp(s, p) == 0)
return modules[m];
}
return NULL; // didn't find it
}