/* Compiler implementation of the D programming language * Copyright (C) 2010-2019 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 }