1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <stdbool.h>
#include "clog.h"
#include "json.h"
int main(int argc, char* argv[]) {
// Make a linked list of size 1, where the value (.element field) is an Element object
// containing the number 2.
Node* head = malloc(sizeof(*head));
*head = (Node) { .element = (Element) { .type = ELEMENT_INT, .as_int = 2 },
.next = NULL };
// Make an Element object that wraps that linked list.
Element element = { .type = ELEMENT_LIST, .as_list = head };
assert(element.type == ELEMENT_LIST);
assert(element.as_list != NULL); // list should not be empty
assert(element.as_list -> element.type == ELEMENT_INT); // list contains an int element
assert(element.as_list -> element.as_int == 2);
free(head);
//free_element((Element) { .type = ELEMENT_LIST, .as_list = head});
return EXIT_SUCCESS;
}
/*
* The above code gives you the same structure as you would with this test code:
char* input = "[2]";
char* pos = input;
Element element;
parse_element(&element, &pos);
*/
/* vim: set tabstop=4 shiftwidth=4 fileencoding=utf-8 noexpandtab: */
|
© Copyright 2022 Alexander J. Quinn This content is protected and may not be shared, uploaded, or distributed.