mirror of
https://github.com/polserver/polserver
synced 2026-08-13 08:23:08 -04:00
* 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
12 lines
551 B
Text
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" };
|