Commit 70a6cd147107284cc0e7a478665ece613cbc8777

Authored by Julien Verneuil
1 parent 24d72a4d

added functions to format json to javascript

Showing 1 changed file with 65 additions and 0 deletions   Show diff stats
web/CXM_json.anubis
@@ -122,6 +122,12 @@ public define Printable_tree @@ -122,6 +122,12 @@ public define Printable_tree
122 ( 122 (
123 JsonValue json 123 JsonValue json
124 ). 124 ).
  125 +
  126 +public define Printable_tree
  127 + to_javascript
  128 + (
  129 + JsonValue json
  130 + ).
125 131
126 public define Printable_tree 132 public define Printable_tree
127 format_json_member 133 format_json_member
@@ -131,6 +137,13 @@ public define Printable_tree @@ -131,6 +137,13 @@ public define Printable_tree
131 if member is json_member(name, value) then 137 if member is json_member(name, value) then
132 [ "\"", name, "\":" . format_json(value) ]. 138 [ "\"", name, "\":" . format_json(value) ].
133 139
  140 +public define Printable_tree
  141 + json_member_to_js
  142 + (
  143 + JsonMember member
  144 + ) =
  145 + if member is json_member(name, value) then
  146 + [ "\"", name, "\":" . to_javascript(value) ].
134 147
135 define Printable_tree 148 define Printable_tree
136 format_json_object 149 format_json_object
@@ -142,6 +155,17 @@ define Printable_tree @@ -142,6 +155,17 @@ define Printable_tree
142 [] then [], 155 [] then [],
143 [h . t] then [ format_json_member(h), (if t is [] then "" else ",") . format_json_object(t) ] 156 [h . t] then [ format_json_member(h), (if t is [] then "" else ",") . format_json_object(t) ]
144 }. 157 }.
  158 +
  159 +define Printable_tree
  160 + json_object_to_js
  161 + (
  162 + List(JsonMember) members
  163 + ) =
  164 + if members is
  165 + {
  166 + [] then [],
  167 + [h . t] then [ json_member_to_js(h), (if t is [] then "" else ",") . json_object_to_js(t) ]
  168 + }.
145 169
146 define Printable_tree 170 define Printable_tree
147 format_json_array 171 format_json_array
@@ -153,6 +177,17 @@ define Printable_tree @@ -153,6 +177,17 @@ define Printable_tree
153 [] then [], 177 [] then [],
154 [h . t] then [ format_json(h), (if t is [] then "" else ",") . format_json_array(t) ] 178 [h . t] then [ format_json(h), (if t is [] then "" else ",") . format_json_array(t) ]
155 }. 179 }.
  180 +
  181 +define Printable_tree
  182 + json_array_to_js
  183 + (
  184 + List(JsonValue) values
  185 + ) =
  186 + if values is
  187 + {
  188 + [] then [],
  189 + [h . t] then [ to_javascript(h), (if t is [] then "" else ",") . format_json_array(t) ]
  190 + }.
156 191
157 public define Printable_tree 192 public define Printable_tree
158 format_json 193 format_json
@@ -170,6 +205,36 @@ public define Printable_tree @@ -170,6 +205,36 @@ public define Printable_tree
170 json_null then str_pt("null", []) 205 json_null then str_pt("null", [])
171 }. 206 }.
172 207
  208 +public define Printable_tree
  209 + to_javascript
  210 + (
  211 + JsonValue json
  212 + ) =
  213 + if json is
  214 + {
  215 + json_object(members) then [ "{", json_object_to_js(members), "}" . [] ],
  216 + json_array(values) then [ "[", json_array_to_js(values), "]" . [] ],
  217 + json_int(i) then int_pt(i, []),
  218 + json_float(f, p) then str_pt(float_to_string(f, p), []),
  219 + json_string(s) then str_pt("\"" + format_json_esc(s) + "\"", []),
  220 + json_bool(b) then str_pt(if b then "true" else "false", []),
  221 + json_null then str_pt("null", [])
  222 + }.
  223 +
  224 +public define String
  225 + format_json
  226 + (
  227 + JsonValue json
  228 + ) =
  229 + to_String(format_json(json)).
  230 +
  231 +public define String
  232 + to_javascript
  233 + (
  234 + JsonValue json
  235 + ) =
  236 + to_String(to_javascript(json)).
  237 +
173 public define WriteFileResult 238 public define WriteFileResult
174 write_to_file 239 write_to_file
175 ( 240 (