main.c 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <stdint.h>
  5. #include "json.h"
  6. int main(int argc, char* argv[]) {
  7. FILE* f;
  8. size_t fsz;
  9. char* contents, *txt;
  10. int nr;
  11. struct json_file* jf;
  12. jf = json_load_path(argv[1]);
  13. json_file_free(jf);
  14. return 0;
  15. struct json_output_format fmt = {
  16. .indentChar = ' ',
  17. .indentAmt = 4,
  18. .minArraySzExpand = 4,
  19. .minObjSzExpand = 3,
  20. .trailingComma = 1,
  21. .objColonSpace = 1,
  22. .useSingleQuotes = 1,
  23. .noQuoteKeys = 1,
  24. .maxLineLength = 20,
  25. };
  26. struct json_write_context ctx;
  27. ctx.sb = json_string_buffer_create(4000);
  28. ctx.fmt = fmt;
  29. ctx.depth = 0;
  30. json_stringify(&ctx, jf->root);
  31. // json_value_to_string(&ctx, NULL);
  32. printf(">%s<\n", ctx.sb->buf);
  33. // f = fopen(argv[1], "rb");
  34. // if(!f) {
  35. // printf("no such file\n");
  36. // return 1;
  37. // }
  38. //
  39. // fseek(f, 0, SEEK_END);
  40. //
  41. // fsz = ftell(f);
  42. // dbg_printf("file size: %d\n", (int)fsz);
  43. //
  44. // fseek(f, 0, SEEK_SET);
  45. //
  46. // txt = contents = malloc(fsz+1);
  47. // txt[fsz] = 0; // some crt functions might read past the end otherwise
  48. //
  49. // nr = fread(contents, 1, fsz, f);
  50. // dbg_printf("bytes read: %d\n", nr);
  51. // fclose(f);
  52. //
  53. // struct json_lexer* jl = tokenize_string(txt, fsz);
  54. //
  55. // struct token* ts = jl->token_stream;
  56. //
  57. // #define tc(x, y, z) case x: printf(#x ": " y "\n", z); break;
  58. // #define tcl(x) case x: printf(#x "\n"); break;
  59. // printf("%d,%d\n", jl->ts_cnt, jl->ts_alloc);
  60. // //exit(1);
  61. // int i;
  62. // for(i = 0; i < jl->ts_cnt; i++, ts++) {
  63. // dbg_print_token(ts);
  64. // }
  65. //
  66. // printf("\n----------------\n\n");
  67. //
  68. // parse_token_stream(jl);
  69. //
  70. // free(contents);
  71. //
  72. //
  73. // getchar();
  74. return 0;
  75. }