polserver/testsuite/escript/uninit/uninit01.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

23 lines
413 B
Text

print(uninit);
uninit := 5;
print(uninit);
// `uninit` is an expression, so this should work, just like `++1++`.
++uninit++;
print(uninit);
print({ 1, 2, uninit });
print(struct{ foo := uninit });
print(dictionary{ "foo" -> uninit });
enum E
FOO := uninit
endenum
print(FOO);
const BAR := uninit;
print(BAR);
function blubb(bar, baz := uninit) print($"bar: {bar} baz: {baz}"); endfunction
blubb("BAR");