]>
Commit | Line | Data |
---|---|---|
b4c522fa IB |
1 | |
2 | /* Compiler implementation of the D programming language | |
3 | * Copyright (C) 1999-2018 by The D Language Foundation, All Rights Reserved | |
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 | ||
16 | void genhdrfile(Module *m); | |
17 | ||
18 | struct 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 | ||
31 | void toCBuffer(Statement *s, OutBuffer *buf, HdrGenState *hgs); | |
32 | void toCBuffer(Type *t, OutBuffer *buf, Identifier *ident, HdrGenState *hgs); | |
33 | void toCBuffer(Dsymbol *s, OutBuffer *buf, HdrGenState *hgs); | |
34 | void toCBuffer(Initializer *iz, OutBuffer *buf, HdrGenState *hgs); | |
35 | void toCBuffer(Expression *e, OutBuffer *buf, HdrGenState *hgs); | |
36 | void toCBuffer(TemplateParameter *tp, OutBuffer *buf, HdrGenState *hgs); | |
37 | ||
38 | void toCBufferInstance(TemplateInstance *ti, OutBuffer *buf, bool qualifyTypes = false); | |
39 | ||
40 | void functionToBufferFull(TypeFunction *tf, OutBuffer *buf, Identifier *ident, HdrGenState* hgs, TemplateDeclaration *td); | |
41 | void functionToBufferWithIdent(TypeFunction *t, OutBuffer *buf, const char *ident); | |
42 | ||
43 | void argExpTypesToCBuffer(OutBuffer *buf, Expressions *arguments); | |
44 | ||
45 | void arrayObjectsToBuffer(OutBuffer *buf, Objects *objects); | |
46 | ||
47 | void moduleToBuffer(OutBuffer *buf, Module *m); | |
48 | ||
49 | const char *parametersTypeToChars(Parameters *parameters, int varargs); | |
50 | ||
51 | bool stcToBuffer(OutBuffer *buf, StorageClass stc); | |
52 | const char *stcToChars(StorageClass& stc); | |
53 | const char *linkageToChars(LINK linkage); |