polserver/testsuite/escript/spread/into-array.src
Kevin Eady ec344a395d
Add support for sequence and index bindings (#760)
* update grammar

* add ast nodes; ast building

* Rename to unpacking

* semantic analysis

* executor work part 1, unpacking indices

* renamings; implement index binding

* small cleanup

* use multi_index; more tests

* use multi_index only for rest, otherwise list

* initial formatting

* add missing token decoding

* address self-review comments

* formatting tweaks

* add test for var binding in classes

* add StringIterator

* fix spread tests

* add cfgfile iterator; add cfgelem opersubscript; tests

* add iterator for SQLResultSet and SQLRow; tests

* Copy value in take global/local

* Allow any iterable can index rest unpacking
Always use dictionary as rest object in index unpacking

* add docs, core-changes, doc tests

* formatting changes...

* address self-review comments

* update formatter, format all binding test srcs

* address review comments
- unset var scope

* add cfgfile/cfgelem docs

* reformat objref svg
2025-02-17 21:59:42 +01:00

12 lines
551 B
Text

// These are the only imps that specialize ContIterator (excl. StorageArea)
var strct := struct{ a := "A", b := "B", c := "C" };
var dict := dictionary{ "a" -> "A", "b" -> "B", "c" -> "C" };
var arr := array{ 1, 2, 3 };
print( { arr ..., arr ... } ); // { 1, 2, 3, 1, 2, 3 }
print( { arr ..., strct ... } ); // { 1, 2, 3, A, B, C }
print( { arr ..., dict ... } ); // { 1, 2, 3, A, B, C }
// A generic ContIterator imp does nothing
print( { arr ..., uninit ... } ); // { 1, 2, 3 };
print( { arr ..., ( "foo" ) ... } ); // { 1, 2, 3, "f", "o", "o" };