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
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