parse.ncd 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. process main {
  2. parse_number("awfa") x;
  3. not(x.succeeded) a;
  4. assert(a);
  5. parse_number("023182") x;
  6. assert(x.succeeded);
  7. val_equal(x, "23182") a;
  8. assert(a);
  9. parse_hex_number("012AF") x;
  10. assert(x.succeeded);
  11. val_equal(x, "4783") a;
  12. assert(a);
  13. parse_ipv4_addr("192.168.61.007") x;
  14. assert(x.succeeded);
  15. val_equal(x, "192.168.61.7") a;
  16. assert(a);
  17. parse_ipv6_addr("1234:0000::abcd") x;
  18. assert(x.succeeded);
  19. val_equal(x, "1234::abcd") a;
  20. assert(a);
  21. parse_value("{\"Hello World\", {}}") x;
  22. assert(x.succeeded);
  23. val_equal(x, {"Hello World", {}}) a;
  24. assert(a);
  25. var({"Hello", "fw", {}, {}, ["key":{{}}, [[]:[]]:["k":"v"]], {"st", {"ri", {"ng", [[{}:{}]:[]]}}}}) v;
  26. to_string(v) str;
  27. from_string(str) v2;
  28. to_string(v2) str2;
  29. val_equal(v, v2) a;
  30. assert(a);
  31. val_equal(str, str2) a;
  32. assert(a);
  33. parse_value("{\"Hello\", \"fw\", {}, {}, [\"key\":{{}}, [[]:[]]:[\"k\":\"v\"]], {\"st\", {\"ri\", {\"ng\", [[{}:{}]:[]]}}}}") x;
  34. assert(x.succeeded);
  35. parse_value("{\"Hello\", \"fw\", {}, {}, \"key\":{{}}, [[]:[]]:[\"k\":\"v\"]], {\"st, {\"ri\", {\"ng\", [[{}:{}]:[]]}}}}") x;
  36. not(x.succeeded) a;
  37. assert(a);
  38. parse_value("{\"Hello\", \"fw\", {}, {}, [\"key\":{{}}, [[]:[]]:[\"k\":\"v\"]], {\"st\", \"ri\", \"ng\", [[{}:{}]:[]]}}}}") x;
  39. not(x.succeeded) a;
  40. assert(a);
  41. parse_value("{\"Hello\", \"fw\", {}, {}, [\"key\":{{}}, [[]:[]]:[\"k\":\"v\"]], {\"st\", {\"ri\", {\"ng\", [[{}:{}]:[]]}}}}}") x;
  42. not(x.succeeded) a;
  43. assert(a);
  44. parse_value("{\"Hello\", \"fw\", {}, {}, [\"key\":{{}}, [[]:[]]:[\"k\":\"v\"]], {\"st\", {\"ri\", {\"ng\", [[{}:{}]:[]]}}}") x;
  45. not(x.succeeded) a;
  46. assert(a);
  47. parse_value("{syntax error") x;
  48. not(x.succeeded) a;
  49. assert(a);
  50. parse_ipv4_cidr_addr("192.168.61.007/24") x;
  51. assert(x.succeeded);
  52. val_equal(x, "192.168.61.7/24") a;
  53. assert(a);
  54. val_equal(x.addr, "192.168.61.7") a;
  55. assert(a);
  56. val_equal(x.prefix, "24") a;
  57. assert(a);
  58. parse_ipv4_cidr_addr("192.168.61.007/33") x;
  59. not(x.succeeded) a;
  60. assert(a);
  61. parse_ipv6_cidr_addr("1234:0000::abcd/41") x;
  62. assert(x.succeeded);
  63. val_equal(x, "1234::abcd/41") a;
  64. assert(a);
  65. val_equal(x.addr, "1234::abcd") a;
  66. assert(a);
  67. val_equal(x.prefix, "41") a;
  68. assert(a);
  69. parse_ipv6_cidr_addr("1234:0000::abcd/129") x;
  70. not(x.succeeded) a;
  71. assert(a);
  72. exit("0");
  73. }