(Created page with "ProB contains external functions to read and write JSON data and to communicate via sockets using JSON: * <tt>LibraryJSON.def</tt> and <tt>LibraryJSON.mch</tt> providing the functions <tt>READ_JSON</tt>, <tt>READ_JSON_FROM_STRING</tt>, <tt>WRITE_JSON</tt>, <tt>WRITE_JSON_TO_STRING</tt> and the freetype <tt>JsonValue</tt> to read and write JSON data. * <tt>LibraryZMQ_RPC.def</tt> and <tt>LibraryZMQ_RPC.mch</tt>: providing access to a JSON communication library either ov...") |
No edit summary |
||
Line 15: | Line 15: | ||
JsonObject(STRING +-> JsonValue) | JsonObject(STRING +-> JsonValue) | ||
</pre> | </pre> | ||
[[Free Types]] are inductive data types. | |||
They are not standard B, but stem from Z and Rodin's theory plug-in. | They are not standard B, but stem from Z and Rodin's theory plug-in. | ||
ProB contains external functions to read and write JSON data and to communicate via sockets using JSON:
LibraryJSON.mch defines a FREETYPE to represent JSON data in a type-safe way:
JsonValue = JsonNull, JsonBoolean(BOOL), JsonNumber(FLOAT), JsonString(STRING), JsonArray(seq(JsonValue)), JsonObject(STRING +-> JsonValue)
Free Types are inductive data types. They are not standard B, but stem from Z and Rodin's theory plug-in.
LibraryZMQ_RPC.mch defines a FREETYPE to represent RPC in a type-safe way:
RpcResult = RpcSuccess(JsonValue), RpcError(STRING)