| |
| /* Compiler implementation of the D programming language |
| * Copyright (C) 1999-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/dlang/dmd/blob/master/src/dmd/compiler.h |
| */ |
| |
| #pragma once |
| |
| #include "root/array.h" |
| |
| // This file contains a data structure that describes a back-end compiler |
| // and implements compiler-specific actions. |
| |
| class Expression; |
| class Module; |
| class Type; |
| struct Scope; |
| struct UnionExp; |
| |
| // DMD-generated module `__entrypoint` where the C main resides |
| extern Module *entrypoint; |
| // Module in which the D main is |
| extern Module *rootHasMain; |
| |
| struct Compiler |
| { |
| // CTFE support for cross-compilation. |
| static Expression *paintAsType(UnionExp *, Expression *, Type *); |
| // Backend |
| static void loadModule(Module *); |
| static void genCmain(Scope *); |
| static bool onImport(Module *); |
| }; |