annotate dmd/json.c @ 1650:40bd4a0d4870

Update to work with LLVM 2.7. Removed use of dyn_cast, llvm no compiles without exceptions and rtti by default. We do need exceptions for the libconfig stuff, but rtti isn't necessary (anymore). Debug info needs to be rewritten, as in LLVM 2.7 the format has completely changed. To have something to look at while rewriting, the old code has been wrapped inside #ifndef DISABLE_DEBUG_INFO , this means that you have to define this to compile at the moment. Updated tango 0.99.9 patch to include updated EH runtime code, which is needed for LLVM 2.7 as well.
author Tomas Lindquist Olsen
date Wed, 19 May 2010 12:42:32 +0200
parents 9f7151d890ff
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1594
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
1
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
2 // Compiler implementation of the D programming language
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
3 // Copyright (c) 1999-2009 by Digital Mars
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
4 // All Rights Reserved
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
5 // written by Walter Bright
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
6 // http://www.digitalmars.com
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
7 // License for redistribution is by either the Artistic License
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
8 // in artistic.txt, or the GNU General Public License in gnu.txt.
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
9 // See the included readme.txt for details.
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
10
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
11 // This implements the JSON capability.
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
12
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
13 #include <stdio.h>
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
14 #include <string.h>
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
15 #include <time.h>
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
16 #include <ctype.h>
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
17 #include <assert.h>
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
18
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
19 #include "rmem.h"
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
20 #include "root.h"
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
21
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
22 #include "mars.h"
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
23 #include "dsymbol.h"
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
24 #include "macro.h"
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
25 #include "template.h"
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
26 #include "lexer.h"
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
27 #include "aggregate.h"
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
28 #include "declaration.h"
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
29 #include "enum.h"
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
30 #include "id.h"
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
31 #include "module.h"
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
32 #include "scope.h"
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
33 #include "hdrgen.h"
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
34 #include "json.h"
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
35 #include "mtype.h"
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
36 #include "attrib.h"
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
37 #include "cond.h"
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
38
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
39 const char Pname[] = "name";
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
40 const char Pkind[] = "kind";
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
41 const char Pfile[] = "file";
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
42 const char Pline[] = "line";
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
43 const char Ptype[] = "type";
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
44 const char Pcomment[] = "comment";
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
45 const char Pmembers[] = "members";
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
46
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
47 void JsonRemoveComma(OutBuffer *buf);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
48
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
49 void json_generate(Array *modules)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
50 { OutBuffer buf;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
51
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
52 buf.writestring("[\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
53 for (int i = 0; i < modules->dim; i++)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
54 { Module *m = (Module *)modules->data[i];
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
55 if (global.params.verbose)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
56 printf("json gen %s\n", m->toChars());
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
57 m->toJsonBuffer(&buf);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
58 buf.writestring(",\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
59 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
60 JsonRemoveComma(&buf);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
61 buf.writestring("]\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
62
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
63 // Write buf to file
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
64 char *arg = global.params.xfilename;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
65 if (!arg || !*arg)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
66 { // Generate lib file name from first obj name
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
67 char *n = (char *)global.params.objfiles->data[0];
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
68
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
69 n = FileName::name(n);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
70 FileName *fn = FileName::forceExt(n, global.json_ext);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
71 arg = fn->toChars();
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
72 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
73 else if (arg[0] == '-' && arg[1] == 0)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
74 { // Write to stdout
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
75 fwrite(buf.data, 1, buf.offset, stdout);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
76 return;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
77 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
78 // if (!FileName::absolute(arg))
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
79 // arg = FileName::combine(dir, arg);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
80 FileName *jsonfilename = FileName::defaultExt(arg, global.json_ext);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
81 File *jsonfile = new File(jsonfilename);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
82 assert(jsonfile);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
83 jsonfile->setbuffer(buf.data, buf.offset);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
84 jsonfile->ref = 1;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
85 char *pt = FileName::path(jsonfile->toChars());
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
86 if (*pt)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
87 FileName::ensurePathExists(pt);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
88 mem.free(pt);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
89 jsonfile->writev();
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
90 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
91
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
92
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
93 /*********************************
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
94 * Encode string into buf, and wrap it in double quotes.
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
95 */
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
96 void JsonString(OutBuffer *buf, const char *s)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
97 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
98 buf->writeByte('\"');
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
99 for (; *s; s++)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
100 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
101 unsigned char c = (unsigned char) *s;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
102 switch (c)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
103 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
104 case '\n':
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
105 buf->writestring("\\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
106 break;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
107
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
108 case '\r':
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
109 buf->writestring("\\r");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
110 break;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
111
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
112 case '\t':
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
113 buf->writestring("\\t");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
114 break;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
115
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
116 case '\"':
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
117 buf->writestring("\\\"");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
118 break;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
119
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
120 case '\\':
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
121 buf->writestring("\\\\");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
122 break;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
123
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
124 case '/':
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
125 buf->writestring("\\/");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
126 break;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
127
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
128 case '\b':
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
129 buf->writestring("\\b");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
130 break;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
131
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
132 case '\f':
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
133 buf->writestring("\\f");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
134 break;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
135
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
136 default:
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
137 if (c < 0x20)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
138 buf->printf("\\u%04x", c);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
139 else
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
140 // Note that UTF-8 chars pass through here just fine
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
141 buf->writeByte(c);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
142 break;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
143 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
144 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
145 buf->writeByte('\"');
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
146 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
147
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
148 void JsonProperty(OutBuffer *buf, const char *name, const char *value)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
149 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
150 JsonString(buf, name);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
151 buf->writestring(" : ");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
152 JsonString(buf, value);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
153 buf->writestring(",\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
154 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
155
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
156 void JsonProperty(OutBuffer *buf, const char *name, int value)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
157 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
158 JsonString(buf, name);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
159 buf->writestring(" : ");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
160 buf->printf("%d", value);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
161 buf->writestring(",\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
162 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
163
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
164 void JsonRemoveComma(OutBuffer *buf)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
165 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
166 if (buf->offset >= 2 &&
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
167 buf->data[buf->offset - 2] == ',' &&
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
168 buf->data[buf->offset - 1] == '\n')
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
169 buf->offset -= 2;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
170 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
171
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
172 void Dsymbol::toJsonBuffer(OutBuffer *buf)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
173 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
174 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
175
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
176 void Module::toJsonBuffer(OutBuffer *buf)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
177 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
178 buf->writestring("{\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
179
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
180 if (md)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
181 JsonProperty(buf, Pname, md->toChars());
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
182
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
183 JsonProperty(buf, Pkind, kind());
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
184
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
185 JsonProperty(buf, Pfile, srcfile->toChars());
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
186
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
187 if (comment)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
188 JsonProperty(buf, Pcomment, (const char *)comment);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
189
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
190 JsonString(buf, Pmembers);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
191 buf->writestring(" : [\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
192
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
193 size_t offset = buf->offset;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
194 for (int i = 0; i < members->dim; i++)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
195 { Dsymbol *s = (Dsymbol *)members->data[i];
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
196 if (offset != buf->offset)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
197 { buf->writestring(",\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
198 offset = buf->offset;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
199 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
200 s->toJsonBuffer(buf);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
201 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
202
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
203 JsonRemoveComma(buf);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
204 buf->writestring("]\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
205
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
206 buf->writestring("}\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
207 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
208
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
209 void AttribDeclaration::toJsonBuffer(OutBuffer *buf)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
210 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
211 //printf("AttribDeclaration::toJsonBuffer()\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
212
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
213 Array *d = include(NULL, NULL);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
214
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
215 if (d)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
216 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
217 for (unsigned i = 0; i < d->dim; i++)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
218 { Dsymbol *s = (Dsymbol *)d->data[i];
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
219 //printf("AttribDeclaration::toJsonBuffer %s\n", s->toChars());
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
220 s->toJsonBuffer(buf);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
221 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
222 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
223 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
224
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
225
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
226 void ConditionalDeclaration::toJsonBuffer(OutBuffer *buf)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
227 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
228 //printf("ConditionalDeclaration::toJsonBuffer()\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
229 if (condition->inc)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
230 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
231 AttribDeclaration::toJsonBuffer(buf);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
232 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
233 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
234
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
235
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
236 void InvariantDeclaration::toJsonBuffer(OutBuffer *buf) { }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
237 void DtorDeclaration::toJsonBuffer(OutBuffer *buf) { }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
238 void StaticCtorDeclaration::toJsonBuffer(OutBuffer *buf) { }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
239 void StaticDtorDeclaration::toJsonBuffer(OutBuffer *buf) { }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
240 void ClassInfoDeclaration::toJsonBuffer(OutBuffer *buf) { }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
241 void ModuleInfoDeclaration::toJsonBuffer(OutBuffer *buf) { }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
242 void TypeInfoDeclaration::toJsonBuffer(OutBuffer *buf) { }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
243 #if DMDV2
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
244 void PostBlitDeclaration::toJsonBuffer(OutBuffer *buf) { }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
245 #endif
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
246
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
247 void Declaration::toJsonBuffer(OutBuffer *buf)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
248 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
249 //printf("Declaration::toJsonBuffer()\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
250 buf->writestring("{\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
251
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
252 JsonProperty(buf, Pname, toChars());
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
253 JsonProperty(buf, Pkind, kind());
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
254 if (type)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
255 JsonProperty(buf, Ptype, type->toChars());
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
256
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
257 if (comment)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
258 JsonProperty(buf, Pcomment, (const char *)comment);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
259
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
260 if (loc.linnum)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
261 JsonProperty(buf, Pline, loc.linnum);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
262
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
263 TypedefDeclaration *td = isTypedefDeclaration();
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
264 if (td)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
265 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
266 JsonProperty(buf, "base", td->basetype->toChars());
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
267 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
268
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
269 JsonRemoveComma(buf);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
270 buf->writestring("}\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
271 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
272
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
273 void AggregateDeclaration::toJsonBuffer(OutBuffer *buf)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
274 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
275 //printf("AggregateDeclaration::toJsonBuffer()\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
276 buf->writestring("{\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
277
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
278 JsonProperty(buf, Pname, toChars());
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
279 JsonProperty(buf, Pkind, kind());
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
280 if (comment)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
281 JsonProperty(buf, Pcomment, (const char *)comment);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
282 if (loc.linnum)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
283 JsonProperty(buf, Pline, loc.linnum);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
284
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
285 ClassDeclaration *cd = isClassDeclaration();
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
286 if (cd)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
287 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
288 if (cd->baseClass)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
289 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
290 JsonProperty(buf, "base", cd->baseClass->toChars());
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
291 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
292 if (cd->interfaces_dim)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
293 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
294 JsonString(buf, "interfaces");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
295 buf->writestring(" : [\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
296 size_t offset = buf->offset;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
297 for (int i = 0; i < cd->interfaces_dim; i++)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
298 { BaseClass *b = cd->interfaces[i];
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
299 if (offset != buf->offset)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
300 { buf->writestring(",\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
301 offset = buf->offset;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
302 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
303 JsonString(buf, b->base->toChars());
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
304 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
305 JsonRemoveComma(buf);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
306 buf->writestring("],\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
307 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
308 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
309
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
310 JsonString(buf, Pmembers);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
311 buf->writestring(" : [\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
312 size_t offset = buf->offset;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
313 for (int i = 0; i < members->dim; i++)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
314 { Dsymbol *s = (Dsymbol *)members->data[i];
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
315 if (offset != buf->offset)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
316 { buf->writestring(",\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
317 offset = buf->offset;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
318 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
319 s->toJsonBuffer(buf);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
320 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
321 JsonRemoveComma(buf);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
322 buf->writestring("]\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
323
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
324 buf->writestring("}\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
325 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
326
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
327 void TemplateDeclaration::toJsonBuffer(OutBuffer *buf)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
328 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
329 //printf("TemplateDeclaration::toJsonBuffer()\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
330
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
331 buf->writestring("{\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
332
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
333 JsonProperty(buf, Pname, toChars());
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
334 JsonProperty(buf, Pkind, kind());
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
335 if (comment)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
336 JsonProperty(buf, Pcomment, (const char *)comment);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
337
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
338 if (loc.linnum)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
339 JsonProperty(buf, Pline, loc.linnum);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
340
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
341 JsonString(buf, Pmembers);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
342 buf->writestring(" : [\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
343 size_t offset = buf->offset;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
344 for (int i = 0; i < members->dim; i++)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
345 { Dsymbol *s = (Dsymbol *)members->data[i];
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
346 if (offset != buf->offset)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
347 { buf->writestring(",\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
348 offset = buf->offset;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
349 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
350 s->toJsonBuffer(buf);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
351 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
352 JsonRemoveComma(buf);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
353 buf->writestring("]\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
354
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
355 buf->writestring("}\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
356 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
357
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
358 void EnumDeclaration::toJsonBuffer(OutBuffer *buf)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
359 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
360 //printf("EnumDeclaration::toJsonBuffer()\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
361 if (isAnonymous())
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
362 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
363 if (members)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
364 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
365 for (int i = 0; i < members->dim; i++)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
366 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
367 Dsymbol *s = (Dsymbol *)members->data[i];
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
368 s->toJsonBuffer(buf);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
369 buf->writestring(",\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
370 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
371 JsonRemoveComma(buf);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
372 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
373 return;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
374 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
375
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
376 buf->writestring("{\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
377
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
378 JsonProperty(buf, Pname, toChars());
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
379 JsonProperty(buf, Pkind, kind());
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
380 if (comment)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
381 JsonProperty(buf, Pcomment, (const char *)comment);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
382
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
383 if (loc.linnum)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
384 JsonProperty(buf, Pline, loc.linnum);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
385
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
386 if (memtype)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
387 JsonProperty(buf, "base", memtype->toChars());
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
388
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
389 JsonString(buf, Pmembers);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
390 buf->writestring(" : [\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
391 size_t offset = buf->offset;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
392 for (int i = 0; i < members->dim; i++)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
393 { Dsymbol *s = (Dsymbol *)members->data[i];
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
394 if (offset != buf->offset)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
395 { buf->writestring(",\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
396 offset = buf->offset;
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
397 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
398 s->toJsonBuffer(buf);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
399 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
400 JsonRemoveComma(buf);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
401 buf->writestring("]\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
402
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
403 buf->writestring("}\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
404 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
405
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
406 void EnumMember::toJsonBuffer(OutBuffer *buf)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
407 {
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
408 //printf("EnumMember::toJsonBuffer()\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
409 buf->writestring("{\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
410
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
411 JsonProperty(buf, Pname, toChars());
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
412 JsonProperty(buf, Pkind, kind());
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
413
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
414 if (comment)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
415 JsonProperty(buf, Pcomment, (const char *)comment);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
416
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
417 if (loc.linnum)
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
418 JsonProperty(buf, Pline, loc.linnum);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
419
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
420 JsonRemoveComma(buf);
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
421 buf->writestring("}\n");
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
422 }
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
423
9f7151d890ff Added in forgotten json.c and json.h files so ldc compiles again.
Robert Clipsham <robert@octarineparrot.com>
parents:
diff changeset
424