We used to create a deeply nested syntax tree for checking each constructor one by one, now we do a single big string literal match.
17 lines
534 B
Text
17 lines
534 B
Text
ok: {"p": "0"}
|
|
ok: {"fooRef": {"p": "0"}, "fooJson": {"s": ""}}
|
|
ok: {"bar": {"fooRef": {"p": "0"}, "fooJson": {"s": ""}}}
|
|
ok: {"arr": []}
|
|
ok: {"a": 0}
|
|
ok: {"b": 42, "a": 3}
|
|
ok: {"baz":
|
|
{"arr":
|
|
[{"fooRef": {"p": "0"}, "fooJson": {"s": ""}},
|
|
{"fooRef": {"p": "1"}, "fooJson": {"s": ""}}]}}
|
|
ok: {"a": [{"baz": {"arr": []}}, {"p": "0"}]}
|
|
ok: {"b": {"n": 42, "m": 0, "a": {"baz": {"arr": []}}}}
|
|
ok: {"a": [{"baz": {"arr": []}}, [{"a": [{"baz": {"arr": []}}, []]}]]}
|
|
ok: {"a": 42}
|
|
ok: "a"
|
|
ok: {}
|
|
Except.error "no inductive tag found"
|