polserver/testsuite/escript/json/json01.src
Kevin Eady 593cfffb83
Add uninit, true, false keywords to grammar (#596)
* Update grammar

* Update expression handling for uninit

* update existing tests

* Add new tests

* Remove fullpath from escriptgrammar generation comment

* fix tests

* Update eScript guide

* Declare escript version 0x11

* Add core-changes

* Add `true` and `false` to grammar

* true/false implementation

* Fix existing tests

* Add new tests

* Update core changes

* add docs

* Fix BooleanValue::describe_to

* bool optimizations

* optimize uninit

* remove unused var assignments

* Update grammar for case labels for uninit, booleans

* Fix case label handling for uninit, true, false

* Tests

* Fix compiler version display v1.1700000017881393 -> v1.17

* optimize boolean binary operations

* fix unary boolean optimizer

* add boolean, uninit optimizer test

* Use new fmt lib apis

* Fix compiler warning

* really fix warning lol

* Add Executor[Module]::getParam for bools, FindSubstance test
2024-01-20 05:38:25 +01:00

21 lines
No EOL
638 B
Text

program main()
var expr := struct{
"a" := "hello there",
"b" := Boolean(1),
"c" := array{ Boolean(0), uninit },
"d" := struct{ "key" := "value" }
};
var json := PackJSON(expr);
var obj := UnpackJSON(json);
print(TypeOfInt(obj) == OT_STRUCT);
print(obj.size() == 4);
print(obj.a == "hello there");
print(obj.b == Boolean(1));
print(obj.c[1] == Boolean(0));
print(obj.c[2] == uninit);
print(obj.c.size() == 2);
print(TypeOfInt(obj.d) == OT_STRUCT);
print(obj.d.size() == 1);
print(obj.d.key == "value");
print(PackJSON(expr, 1) != json);
endprogram