xml_example.odin 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package xml_example
  2. import "core:encoding/xml"
  3. import "core:mem"
  4. import "core:fmt"
  5. Error_Handler :: proc(pos: xml.Pos, fmt: string, args: ..any) {
  6. }
  7. FILENAME :: "../../../../tests/core/assets/xml/nl_NL-xliff-1.0.xliff"
  8. DOC :: #load(FILENAME)
  9. OPTIONS :: xml.Options{
  10. flags = {
  11. .Ignore_Unsupported, .Intern_Comments,
  12. },
  13. expected_doctype = "",
  14. }
  15. _main :: proc() {
  16. using fmt
  17. println("--- DOCUMENT TO PARSE ---")
  18. println(string(DOC))
  19. println("--- /DOCUMENT TO PARSE ---\n")
  20. doc, err := xml.parse(DOC, OPTIONS, FILENAME, Error_Handler)
  21. defer xml.destroy(doc)
  22. xml.print(doc)
  23. if err != .None {
  24. printf("Parse error: %v\n", err)
  25. } else {
  26. println("DONE!")
  27. }
  28. }
  29. main :: proc() {
  30. using fmt
  31. track: mem.Tracking_Allocator
  32. mem.tracking_allocator_init(&track, context.allocator)
  33. context.allocator = mem.tracking_allocator(&track)
  34. _main()
  35. if len(track.allocation_map) > 0 {
  36. println()
  37. for _, v in track.allocation_map {
  38. printf("%v Leaked %v bytes.\n", v.location, v.size)
  39. }
  40. }
  41. }