json.anubis 1.32 KB
/*
 * Created by PyramIDE.
 * User: フランスのトトロ 
 * Date: 12/12/2015
 * Time: 21:48
 * © Calexium 
 */

read tools/basis.anubis

public define String
  lib_error_to_string
  (
    LibraryError err
  )=
  if err is
  {
    cant_load_library     then "Can't load library.",
    symbol_not_found      then "Symbol not found.",
    external_call_failed  then "External call failed.",
    unknown_error         then "Unknown error."
  }.

public define String
  to_JS_String
  (
    Library json_lib,
    String  unescaped_string
  )=
  if unescaped_string = "" then
    "''"
  else
    if extension_library_call(json_lib, "to_JS_String", serialize(unescaped_string), length(unescaped_string)+30) is
    {
      error(err) then 
        println("Can't call to_JS_String");
        println("  --> " + lib_error_to_string(err));
        "''",
      ok(ba) then to_string(ba)
    }.
    
public define String
  to_JSON_String
  (
    Library json_lib,
    String  unescaped_string
  )=
  if unescaped_string = "" then
    "\"\""
  else
    if extension_library_call(json_lib, "to_JSON_String", serialize(unescaped_string), length(unescaped_string)+30) is
    {
      error(err) then 
        println("Can't call to_JSON_String");
        println("  --> " + lib_error_to_string(err));
        "\"\"",
      ok(ba) then to_string(ba)
    }.