From 70a6cd147107284cc0e7a478665ece613cbc8777 Mon Sep 17 00:00:00 2001 From: Verneuil Julien Date: Tue, 28 Apr 2015 01:30:06 +0200 Subject: [PATCH] added functions to format json to javascript --- web/CXM_json.anubis | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+), 0 deletions(-) diff --git a/web/CXM_json.anubis b/web/CXM_json.anubis index 58f4640..3fa65cd 100644 --- a/web/CXM_json.anubis +++ b/web/CXM_json.anubis @@ -122,6 +122,12 @@ public define Printable_tree ( JsonValue json ). + +public define Printable_tree + to_javascript + ( + JsonValue json + ). public define Printable_tree format_json_member @@ -131,6 +137,13 @@ public define Printable_tree if member is json_member(name, value) then [ "\"", name, "\":" . format_json(value) ]. +public define Printable_tree + json_member_to_js + ( + JsonMember member + ) = + if member is json_member(name, value) then + [ "\"", name, "\":" . to_javascript(value) ]. define Printable_tree format_json_object @@ -142,6 +155,17 @@ define Printable_tree [] then [], [h . t] then [ format_json_member(h), (if t is [] then "" else ",") . format_json_object(t) ] }. + +define Printable_tree + json_object_to_js + ( + List(JsonMember) members + ) = + if members is + { + [] then [], + [h . t] then [ json_member_to_js(h), (if t is [] then "" else ",") . json_object_to_js(t) ] + }. define Printable_tree format_json_array @@ -153,6 +177,17 @@ define Printable_tree [] then [], [h . t] then [ format_json(h), (if t is [] then "" else ",") . format_json_array(t) ] }. + +define Printable_tree + json_array_to_js + ( + List(JsonValue) values + ) = + if values is + { + [] then [], + [h . t] then [ to_javascript(h), (if t is [] then "" else ",") . format_json_array(t) ] + }. public define Printable_tree format_json @@ -170,6 +205,36 @@ public define Printable_tree json_null then str_pt("null", []) }. +public define Printable_tree + to_javascript + ( + JsonValue json + ) = + if json is + { + json_object(members) then [ "{", json_object_to_js(members), "}" . [] ], + json_array(values) then [ "[", json_array_to_js(values), "]" . [] ], + json_int(i) then int_pt(i, []), + json_float(f, p) then str_pt(float_to_string(f, p), []), + json_string(s) then str_pt("\"" + format_json_esc(s) + "\"", []), + json_bool(b) then str_pt(if b then "true" else "false", []), + json_null then str_pt("null", []) + }. + +public define String + format_json + ( + JsonValue json + ) = + to_String(format_json(json)). + +public define String + to_javascript + ( + JsonValue json + ) = + to_String(to_javascript(json)). + public define WriteFileResult write_to_file ( -- libgit2 0.21.4