Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include "libcamelion.h"
- char test[] =
- {
- "{\n"
- " branch1 => {\n"
- " value1 => 1,\n"
- " value2 => \"Deep into\",\n"
- " },\n"
- " branch2 => [\n"
- " 'Darkness peering',"
- " 'Long I \\'stood\\' there',\n"
- " \"Wondering, fearing\","
- " ],\n"
- " branch3 => {\n"
- " value3 => Dreaming,\n"
- " value4 => Dreams,\n"
- " value5 => \"No mortal ever dared to dream before\",\n"
- " },\n"
- "}"
- };
- int main(void)
- {
- CML_Node * node;
- CML_Error result = CML_StorableFromFile("./storable.txt", &node);
- if (result != CML_ERROR_SUCCESS)
- {
- printf("%s\n", CML_HelpError(result));
- exit(1);
- }
- CML_Node * undef;
- CML_NodeCreate(CML_TYPE_UNDEF, &undef);
- CML_NodeSetName(undef, "myname");
- CML_NodeInsert(node, undef, 3);
- //CML_NodeRemove(node, 2);
- CML_Node * first;
- CML_NodeCreate(CML_TYPE_STRING, &first);
- CML_NodeSetName(first, "firsty");
- CML_NodeSetString(first, "things");
- CML_Node * second;
- CML_NodeCopy(first, &second, CML_FALSE);
- CML_NodeSetName(second, "second");
- second->data.string[3] = 'A';
- CML_NodeAppend(node, first);
- CML_NodeAppend(node, second);
- char * printed = NULL;
- result = CML_StorableToString(node, &printed);
- printf("%s\n\n\n", printed);
- free(printed);
- CML_Node * clone;
- CML_NodeCopy(node, &clone, CML_TRUE);
- CML_NodeFree(node);
- printed = NULL;
- result = CML_StorableToString(clone, &printed);
- printf("%s\n\n\n", printed);
- free(printed);
- CML_Bytes * bytes;
- result = CML_NfreezeNode(clone, &bytes);
- printf("%d\n", result);
- printf("%s\n", CML_HelpError(result));
- CML_DataToFile(bytes->data, bytes->size, "./data.frz");
- free(bytes->data);
- free(bytes);
- CML_NodeFree(clone);
- result = CML_NfreezeStorable(test, &bytes);
- printf("%d\n", result);
- printf("%s\n", CML_HelpError(result));
- CML_DataToFile(bytes->data, bytes->size, "./data2.frz");
- free(bytes->data);
- free(bytes);
- CML_Node * reader = NULL;
- result = CML_ThawFile("./data.frz", &reader);
- printf("%d\n", result);
- printf("%s\n", CML_HelpError(result));
- char * buff;
- CML_StorableToString(reader, &buff);
- printf("%s\n", buff);
- free(buff);
- CML_NodeFree(reader);
- return 0;
- }
Add Comment
Please, Sign In to add comment