]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/d/dmd/hdrgen.h
d: Merge upstream dmd 7132b3537
[thirdparty/gcc.git] / gcc / d / dmd / hdrgen.h
CommitLineData
b4c522fa
IB
1
2/* Compiler implementation of the D programming language
a3b38b77 3 * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
b4c522fa
IB
4 * written by Dave Fladebo
5 * http://www.digitalmars.com
6 * Distributed under the Boost Software License, Version 1.0.
7 * http://www.boost.org/LICENSE_1_0.txt
8 * https://github.com/dlang/dmd/blob/master/src/dmd/hdrgen.h
9 */
10
11#pragma once
12
f9ab59ff 13#include "root/dsystem.h" // memset()
b4c522fa
IB
14#include "dsymbol.h"
15
16void genhdrfile(Module *m);
17
18struct HdrGenState
19{
20 bool hdrgen; // true if generating header file
21 bool ddoc; // true if generating Ddoc file
22 bool fullDump; // true if generating a full AST dump file
23 bool fullQual; // fully qualify types when printing
24 int tpltMember;
25 int autoMember;
26 int forStmtInit;
27
28 HdrGenState() { memset(this, 0, sizeof(HdrGenState)); }
29};
30
31void toCBuffer(Statement *s, OutBuffer *buf, HdrGenState *hgs);
32void toCBuffer(Type *t, OutBuffer *buf, Identifier *ident, HdrGenState *hgs);
33void toCBuffer(Dsymbol *s, OutBuffer *buf, HdrGenState *hgs);
34void toCBuffer(Initializer *iz, OutBuffer *buf, HdrGenState *hgs);
35void toCBuffer(Expression *e, OutBuffer *buf, HdrGenState *hgs);
36void toCBuffer(TemplateParameter *tp, OutBuffer *buf, HdrGenState *hgs);
37
38void toCBufferInstance(TemplateInstance *ti, OutBuffer *buf, bool qualifyTypes = false);
39
40void functionToBufferFull(TypeFunction *tf, OutBuffer *buf, Identifier *ident, HdrGenState* hgs, TemplateDeclaration *td);
41void functionToBufferWithIdent(TypeFunction *t, OutBuffer *buf, const char *ident);
42
43void argExpTypesToCBuffer(OutBuffer *buf, Expressions *arguments);
44
45void arrayObjectsToBuffer(OutBuffer *buf, Objects *objects);
46
47void moduleToBuffer(OutBuffer *buf, Module *m);
48
c3a2ba10 49const char *parametersTypeToChars(ParameterList pl);
b4c522fa
IB
50
51bool stcToBuffer(OutBuffer *buf, StorageClass stc);
52const char *stcToChars(StorageClass& stc);
53const char *linkageToChars(LINK linkage);