01_from_readme.c 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #include <stdio.h>
  2. #define JIM_IMPLEMENTATION
  3. #include "../jim.h"
  4. int main()
  5. {
  6. Jim jim = {.pp = 4};
  7. jim_object_begin(&jim);
  8. jim_member_key(&jim, "null");
  9. jim_null(&jim);
  10. jim_member_key(&jim, "bool");
  11. jim_array_begin(&jim);
  12. jim_bool(&jim, 0);
  13. jim_bool(&jim, 1);
  14. jim_array_end(&jim);
  15. jim_member_key(&jim, "integers");
  16. jim_array_begin(&jim);
  17. for (int i = -3; i <= 3; ++i) {
  18. jim_integer(&jim, i);
  19. }
  20. jim_array_end(&jim);
  21. jim_member_key(&jim, "floats");
  22. jim_array_begin(&jim);
  23. jim_float(&jim, 0.0, 4);
  24. jim_float(&jim, -0.0, 4);
  25. jim_float(&jim, 3.1415, 4);
  26. jim_float(&jim, 2.71828, 5);
  27. jim_float(&jim, 1.6180, 4);
  28. jim_float(&jim, 0.0 / 0.0, 4);
  29. jim_float(&jim, 1.0 / 0.0, 4);
  30. jim_float(&jim, -1.0 / 0.0, 4);
  31. jim_array_end(&jim);
  32. jim_member_key(&jim, "string");
  33. jim_array_begin(&jim);
  34. jim_string(&jim, "Hello\tWorld\n");
  35. jim_string_sized(&jim, "\0\0\0\0", 4);
  36. jim_array_end(&jim);
  37. jim_member_key(&jim, "nested_object");
  38. jim_object_begin(&jim);
  39. jim_member_key(&jim, "foo");
  40. jim_integer(&jim, 69);
  41. jim_member_key(&jim, "bar");
  42. jim_integer(&jim, 420);
  43. jim_member_key(&jim, "baz");
  44. jim_integer(&jim, 1337);
  45. jim_object_end(&jim);
  46. jim_member_key(&jim, "empty_array"),
  47. jim_array_begin(&jim);
  48. jim_array_end(&jim);
  49. jim_member_key(&jim, "empty_object"),
  50. jim_object_begin(&jim);
  51. jim_object_end(&jim);
  52. jim_object_end(&jim);
  53. fwrite(jim.sink, jim.sink_count, 1, stdout);
  54. return 0;
  55. }