1 /**
2  * Defines AST nodes for the code generation stage.
3  *
4  * Documentation:  https://dlang.org/phobos/dmd_astcodegen.html
5  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/astcodegen.d
6  */
7 module dmd.astcodegen;
8 
9 
10 struct ASTCodegen
11 {
12     public import dmd.aggregate;
13     public import dmd.aliasthis;
14     public import dmd.arraytypes;
15     public import dmd.attrib;
16     public import dmd.cond;
17     public import dmd.dclass;
18     public import dmd.declaration;
19     public import dmd.denum;
20     public import dmd.dimport;
21     public import dmd.dmodule;
22     public import dmd.dstruct;
23     public import dmd.dsymbol;
24     public import dmd.dtemplate;
25     public import dmd.dversion;
26     public import dmd.expression;
27     public import dmd.func;
28     public import dmd.hdrgen;
29     public import dmd.init;
30     public import dmd.initsem;
31     public import dmd.mtype;
32     public import dmd.nspace;
33     public import dmd.statement;
34     public import dmd.staticassert;
35     public import dmd.typesem;
36     public import dmd.ctfeexpr;
37     public import dmd.init : Designator;
38 
39 
40     alias initializerToExpression   = dmd.initsem.initializerToExpression;
41     alias typeToExpression          = dmd.typesem.typeToExpression;
42     alias UserAttributeDeclaration  = dmd.attrib.UserAttributeDeclaration;
43     alias Ensure                    = dmd.func.Ensure; // workaround for bug in older DMD frontends
44     alias ErrorExp                  = dmd.expression.ErrorExp;
45 
46     alias MODFlags                  = dmd.mtype.MODFlags;
47     alias Type                      = dmd.mtype.Type;
48     alias Parameter                 = dmd.mtype.Parameter;
49     alias Tarray                    = dmd.mtype.Tarray;
50     alias Taarray                   = dmd.mtype.Taarray;
51     alias Tbool                     = dmd.mtype.Tbool;
52     alias Tchar                     = dmd.mtype.Tchar;
53     alias Tdchar                    = dmd.mtype.Tdchar;
54     alias Tdelegate                 = dmd.mtype.Tdelegate;
55     alias Tenum                     = dmd.mtype.Tenum;
56     alias Terror                    = dmd.mtype.Terror;
57     alias Tfloat32                  = dmd.mtype.Tfloat32;
58     alias Tfloat64                  = dmd.mtype.Tfloat64;
59     alias Tfloat80                  = dmd.mtype.Tfloat80;
60     alias Tfunction                 = dmd.mtype.Tfunction;
61     alias Tpointer                  = dmd.mtype.Tpointer;
62     alias Treference                = dmd.mtype.Treference;
63     alias Tident                    = dmd.mtype.Tident;
64     alias Tint8                     = dmd.mtype.Tint8;
65     alias Tint16                    = dmd.mtype.Tint16;
66     alias Tint32                    = dmd.mtype.Tint32;
67     alias Tint64                    = dmd.mtype.Tint64;
68     alias Tsarray                   = dmd.mtype.Tsarray;
69     alias Tstruct                   = dmd.mtype.Tstruct;
70     alias Tuns8                     = dmd.mtype.Tuns8;
71     alias Tuns16                    = dmd.mtype.Tuns16;
72     alias Tuns32                    = dmd.mtype.Tuns32;
73     alias Tuns64                    = dmd.mtype.Tuns64;
74     alias Tvoid                     = dmd.mtype.Tvoid;
75     alias Twchar                    = dmd.mtype.Twchar;
76     alias Tnoreturn                 = dmd.mtype.Tnoreturn;
77 
78     alias Timaginary32              = dmd.mtype.Timaginary32;
79     alias Timaginary64              = dmd.mtype.Timaginary64;
80     alias Timaginary80              = dmd.mtype.Timaginary80;
81     alias Tcomplex32                = dmd.mtype.Tcomplex32;
82     alias Tcomplex64                = dmd.mtype.Tcomplex64;
83     alias Tcomplex80                = dmd.mtype.Tcomplex80;
84 
85     alias ParameterList             = dmd.mtype.ParameterList;
86     alias VarArg                    = dmd.mtype.VarArg;
87     alias STC                       = dmd.declaration.STC;
88     alias Dsymbol                   = dmd.dsymbol.Dsymbol;
89     alias Dsymbols                  = dmd.dsymbol.Dsymbols;
90     alias Visibility                = dmd.dsymbol.Visibility;
91 
92     alias stcToBuffer               = dmd.hdrgen.stcToBuffer;
93     alias linkageToChars            = dmd.hdrgen.linkageToChars;
94     alias visibilityToChars         = dmd.hdrgen.visibilityToChars;
95 
96     alias isType                    = dmd.dtemplate.isType;
97     alias isExpression              = dmd.dtemplate.isExpression;
98     alias isTuple                   = dmd.dtemplate.isTuple;
99 
100     alias IgnoreErrors              = dmd.dsymbol.IgnoreErrors;
101     alias PASS                      = dmd.dsymbol.PASS;
102 }