Mercurial > projects > ldc
annotate dmd/json.c @ 1594:9f7151d890ff
Added in forgotten json.c and json.h files so ldc compiles again.
author | Robert Clipsham <robert@octarineparrot.com> |
---|---|
date | Sat, 07 Nov 2009 14:21:56 +0000 |
parents | |
children |
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 |