merge two case files related to array/map indexing

This commit is contained in:
John Kerl 2020-11-28 22:13:49 -05:00
parent 1c7a73a425
commit 526fb949bf
8 changed files with 1064 additions and 363 deletions

View file

@ -32,18 +32,13 @@ rrv -C20 ./reg-test/cases/case-c-dsl-local-map-variable-write-read.sh
================================================================
ARRAY/MAP
rrv ./reg-test/cases/case-c-localvar-unsets.sh
rrv -C5 ./reg-test/cases/case-c-dsl-for-oosvar-loops.sh
rrv ./reg-test/cases/case-c-dsl-asserting.sh
rrv ./reg-test/cases/case-c-dsl-for-oosvar-loops.sh
rrv ./reg-test/cases/case-c-dsl-length-depth-leafcount.sh
rrv ./reg-test/cases/case-c-dsl-mapvar-assignments.sh
rrv ./reg-test/cases/case-c-dsl-mapvar-for-loops.sh
rrv ./reg-test/cases/case-c-dsl-split-join.sh
rrv -C5 ./reg-test/cases/case-c-dsl-asserting.sh
rrv -C1 ./reg-test/cases/case-c-dsl-length-depth-leafcount.sh
* int map keys
rrv -C1 ./reg-test/cases/case-c-dsl-mapvar-for-loops.sh
* int map keys
rrv ./reg-test/cases/case-c-localvar-unsets.sh
================================================================
PARTIALLY IMPLEMENTED:

View file

@ -1,11 +1,74 @@
# Right-hand sides, non-indexed
run_mlr --oxtab --from reg-test/input/abixy head -n 1 then put '
$_1 = ""; # just for visual output-spacing
$srec_keyed_by_2 = $[2];
$srec_name_2 = $[[2]];
$srec_value_2 = $[[[2]]];
$_2 = "";
$dollar_star_keyed_by_2 = $*[2];
$dollar_star_name_2 = $*[[2]];
$dollar_star_value_2 = $*[[[2]]];
$_3 = "";
mymap = {"a":7, "b":8, "c":9};
$mymap_keyed_by_2 = mymap[2];
$mymap_name_2 = mymap[[2]];
$mymap_value_2 = mymap[[[2]]];
$_4 = "";
myarray = [7, 8, 9];
$myarray_keyed_by_2 = myarray[2];
$myarray_name_2 = myarray[[2]];
$myarray_value_2 = myarray[[[2]]];
'
run_mlr --oxtab --from reg-test/input/abixy head -n 1 then put '
$_1 = ""; # just for visual output-spacing
$srec_keyed_by_2 = $[900];
$srec_name_2 = $[[900]];
$srec_value_2 = $[[[900]]];
$_2 = "";
$dollar_star_keyed_by_2 = $*[900];
$dollar_star_name_2 = $*[[900]];
$dollar_star_value_2 = $*[[[900]]];
$_3 = "";
mymap = {"a":7, "b":8, "c":9};
$mymap_keyed_by_2 = mymap[900];
$mymap_name_2 = mymap[[900]];
$mymap_value_2 = mymap[[[900]]];
$_4 = "";
myarray = [7, 8, 9];
$myarray_keyed_by_2 = myarray[900];
$myarray_name_2 = myarray[[900]];
$myarray_value_2 = myarray[[[900]]];
'
run_mlr --from $indir/s.dkvp --idkvp --opprint put '$z = [$a,$b,$i,$x,$y][1]'
run_mlr --from $indir/s.dkvp --idkvp --opprint put '$z = [$a,$b,$i,$x,$y][-1]'
run_mlr --from $indir/s.dkvp --idkvp --opprint put '$z = [$a,$b,$i,$x,$y][NR]'
run_mlr --opprint --from $indir/s.dkvp --from $indir/t.dkvp put '$up = $[NR]'
run_mlr --opprint --from $indir/s.dkvp --from $indir/t.dkvp put '$down = $[-NR]'
run_mlr --opprint --from $indir/s.dkvp --from $indir/t.dkvp put '$up = $*[NR]'
run_mlr --opprint --from $indir/s.dkvp --from $indir/t.dkvp put '$down = $*[-NR]'
run_mlr --opprint --from $indir/s.dkvp --from $indir/t.dkvp put '$up = $[NF]'
run_mlr --opprint --from $indir/s.dkvp --from $indir/t.dkvp put '$down = $[-NF]'
run_mlr --opprint --from $indir/s.dkvp --from $indir/t.dkvp put '$up = $*[NF]'
run_mlr --opprint --from $indir/s.dkvp --from $indir/t.dkvp put '$down = $*[-NF]'
run_mlr --opprint --from $indir/s.dkvp --from $indir/t.dkvp put '$up = $[[NF]]'
run_mlr --opprint --from $indir/s.dkvp --from $indir/t.dkvp put '$down = $[[-NF]]'
run_mlr --opprint --from $indir/s.dkvp --from $indir/t.dkvp put '$up = $*[[NF]]'
run_mlr --opprint --from $indir/s.dkvp --from $indir/t.dkvp put '$down = $[*[-NF]]'
run_mlr --opprint --from $indir/s.dkvp --from $indir/t.dkvp put '$up = $[[[NF]]]'
run_mlr --opprint --from $indir/s.dkvp --from $indir/t.dkvp put '$down = $[[[-NF]]]'
run_mlr --opprint --from $indir/s.dkvp --from $indir/t.dkvp put '$up = $*[[[NF]]]'
run_mlr --opprint --from $indir/s.dkvp --from $indir/t.dkvp put '$down = $*[[[-NF]]]'
# Unsets
run_mlr --opprint put 'unset $c' $indir/abixy
run_mlr --opprint put 'unset $c; $c="new"' $indir/abixy
run_mlr --opprint put '$c=$a.$b; unset $c; $c="new"' $indir/abixy
run_mlr --opprint put '$c=$a.$b; unset $c' $indir/abixy
# Left-hand sides, non-indexed
run_mlr --opprint --from $indir/s.dkvp --from $indir/t.dkvp put '$[1] = "new"'
run_mlr --opprint --from $indir/s.dkvp --from $indir/t.dkvp put '$[2] = "new"'
@ -57,3 +120,22 @@ run_mlr --opprint --from $indir/s.dkvp --from $indir/t.dkvp put '$*[[[-1]]] = "n
run_mlr --opprint --from $indir/s.dkvp --from $indir/t.dkvp put '$*[[[-2]]] = "new"'
run_mlr --opprint --from $indir/s.dkvp --from $indir/t.dkvp put '$*[[[-5]]] = "new"'
# Mix of left-hand and right-hand sides
run_mlr --opprint put '$NEW = $[[3]]' $indir/abixy
run_mlr --opprint put '$NEW = $[[[3]]]' $indir/abixy
run_mlr --opprint put '$NEW = $[[11]]' $indir/abixy
run_mlr --opprint put '$NEW = $[[[11]]]' $indir/abixy
run_mlr --opprint put '$[[3]] = "NEW"' $indir/abixy
run_mlr --opprint put '$[[[3]]] = "NEW"' $indir/abixy
run_mlr --opprint put '$[[11]] = "NEW"' $indir/abixy
run_mlr --opprint put '$[[[11]]] = "NEW"' $indir/abixy
run_mlr --opprint put '$[[1]] = $[[2]]' $indir/abixy
run_mlr --opprint put '$a = $[[2]]; unset $["a"]' $indir/abixy
run_mlr --opprint put '$[[1]] = $b; unset $[[1]]' $indir/abixy
run_mlr --opprint put '$[[1]] = $[[2]]; unset $["a"]' $indir/abixy

View file

@ -1,64 +0,0 @@
run_mlr --oxtab --from reg-test/input/abixy head -n 1 then put '
$_1 = ""; # just for visual output-spacing
$srec_keyed_by_2 = $[2];
$srec_name_2 = $[[2]];
$srec_value_2 = $[[[2]]];
$_2 = "";
$dollar_star_keyed_by_2 = $*[2];
$dollar_star_name_2 = $*[[2]];
$dollar_star_value_2 = $*[[[2]]];
$_3 = "";
mymap = {"a":7, "b":8, "c":9};
$mymap_keyed_by_2 = mymap[2];
$mymap_name_2 = mymap[[2]];
$mymap_value_2 = mymap[[[2]]];
$_4 = "";
myarray = [7, 8, 9];
$myarray_keyed_by_2 = myarray[2];
$myarray_name_2 = myarray[[2]];
$myarray_value_2 = myarray[[[2]]];
'
run_mlr --oxtab --from reg-test/input/abixy head -n 1 then put '
$_1 = ""; # just for visual output-spacing
$srec_keyed_by_2 = $[900];
$srec_name_2 = $[[900]];
$srec_value_2 = $[[[900]]];
$_2 = "";
$dollar_star_keyed_by_2 = $*[900];
$dollar_star_name_2 = $*[[900]];
$dollar_star_value_2 = $*[[[900]]];
$_3 = "";
mymap = {"a":7, "b":8, "c":9};
$mymap_keyed_by_2 = mymap[900];
$mymap_name_2 = mymap[[900]];
$mymap_value_2 = mymap[[[900]]];
$_4 = "";
myarray = [7, 8, 9];
$myarray_keyed_by_2 = myarray[900];
$myarray_name_2 = myarray[[900]];
$myarray_value_2 = myarray[[[900]]];
'
run_mlr --opprint put '$NEW = $[[3]]' $indir/abixy
run_mlr --opprint put '$NEW = $[[[3]]]' $indir/abixy
run_mlr --opprint put '$NEW = $[[11]]' $indir/abixy
run_mlr --opprint put '$NEW = $[[[11]]]' $indir/abixy
run_mlr --opprint put '$[[3]] = "NEW"' $indir/abixy
run_mlr --opprint put '$[[[3]]] = "NEW"' $indir/abixy
run_mlr --opprint put '$[[11]] = "NEW"' $indir/abixy
run_mlr --opprint put '$[[[11]]] = "NEW"' $indir/abixy
run_mlr --opprint put '$[[1]] = $[[2]]' $indir/abixy
run_mlr --opprint put '$a = $[[2]]; unset $["a"]' $indir/abixy
run_mlr --opprint put '$[[1]] = $b; unset $[[1]]' $indir/abixy
run_mlr --opprint put '$[[1]] = $[[2]]; unset $["a"]' $indir/abixy
run_mlr --opprint put 'unset $c' $indir/abixy
run_mlr --opprint put 'unset $c; $c="new"' $indir/abixy
run_mlr --opprint put '$c=$a.$b; unset $c; $c="new"' $indir/abixy
run_mlr --opprint put '$c=$a.$b; unset $c' $indir/abixy

View file

@ -0,0 +1,778 @@
mlr --oxtab --from reg-test/input/abixy head -n 1 then put
$_1 = ""; # just for visual output-spacing
$srec_keyed_by_2 = $[2];
$srec_name_2 = $[[2]];
$srec_value_2 = $[[[2]]];
$_2 = "";
$dollar_star_keyed_by_2 = $*[2];
$dollar_star_name_2 = $*[[2]];
$dollar_star_value_2 = $*[[[2]]];
$_3 = "";
mymap = {"a":7, "b":8, "c":9};
$mymap_keyed_by_2 = mymap[2];
$mymap_name_2 = mymap[[2]];
$mymap_value_2 = mymap[[[2]]];
$_4 = "";
myarray = [7, 8, 9];
$myarray_keyed_by_2 = myarray[2];
$myarray_name_2 = myarray[[2]];
$myarray_value_2 = myarray[[[2]]];
a pan
b pan
i 1
x 0.3467901443380824
y 0.7268028627434533
_1
srec_name_2 b
srec_value_2 pan
_2
dollar_star_name_2 b
dollar_star_value_2 pan
_3
mymap_name_2 b
mymap_value_2 8
_4
myarray_keyed_by_2 8
myarray_name_2 2
myarray_value_2 8
mlr --oxtab --from reg-test/input/abixy head -n 1 then put
$_1 = ""; # just for visual output-spacing
$srec_keyed_by_2 = $[900];
$srec_name_2 = $[[900]];
$srec_value_2 = $[[[900]]];
$_2 = "";
$dollar_star_keyed_by_2 = $*[900];
$dollar_star_name_2 = $*[[900]];
$dollar_star_value_2 = $*[[[900]]];
$_3 = "";
mymap = {"a":7, "b":8, "c":9};
$mymap_keyed_by_2 = mymap[900];
$mymap_name_2 = mymap[[900]];
$mymap_value_2 = mymap[[[900]]];
$_4 = "";
myarray = [7, 8, 9];
$myarray_keyed_by_2 = myarray[900];
$myarray_name_2 = myarray[[900]];
$myarray_value_2 = myarray[[[900]]];
a pan
b pan
i 1
x 0.3467901443380824
y 0.7268028627434533
_1
_2
_3
_4
mlr --from ./reg-test/input/s.dkvp --idkvp --opprint put $z = [$a,$b,$i,$x,$y][1]
a b i x y z
pan pan 1 0.3467901443380824 0.7268028627434533 pan
eks pan 2 0.7586799647899636 0.5221511083334797 eks
wye wye 3 0.20460330576630303 0.33831852551664776 wye
eks wye 4 0.38139939387114097 0.13418874328430463 eks
mlr --from ./reg-test/input/s.dkvp --idkvp --opprint put $z = [$a,$b,$i,$x,$y][-1]
a b i x y z
pan pan 1 0.3467901443380824 0.7268028627434533 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797 0.5221511083334797
wye wye 3 0.20460330576630303 0.33831852551664776 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463 0.13418874328430463
mlr --from ./reg-test/input/s.dkvp --idkvp --opprint put $z = [$a,$b,$i,$x,$y][NR]
a b i x y z
pan pan 1 0.3467901443380824 0.7268028627434533 pan
eks pan 2 0.7586799647899636 0.5221511083334797 pan
wye wye 3 0.20460330576630303 0.33831852551664776 3
eks wye 4 0.38139939387114097 0.13418874328430463 0.38139939387114097
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $up = $[NF]
a b i x y
pan pan 1 0.3467901443380824 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797
wye wye 3 0.20460330576630303 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463
wye pan 5 0.5732889198020006 0.8636244699032729
zee pan 6 0.5271261600918548 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $down = $[-NF]
a b i x y
pan pan 1 0.3467901443380824 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797
wye wye 3 0.20460330576630303 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463
wye pan 5 0.5732889198020006 0.8636244699032729
zee pan 6 0.5271261600918548 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $up = $*[NF]
a b i x y
pan pan 1 0.3467901443380824 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797
wye wye 3 0.20460330576630303 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463
wye pan 5 0.5732889198020006 0.8636244699032729
zee pan 6 0.5271261600918548 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $down = $*[-NF]
a b i x y
pan pan 1 0.3467901443380824 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797
wye wye 3 0.20460330576630303 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463
wye pan 5 0.5732889198020006 0.8636244699032729
zee pan 6 0.5271261600918548 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $up = $[[NF]]
a b i x y up
pan pan 1 0.3467901443380824 0.7268028627434533 y
eks pan 2 0.7586799647899636 0.5221511083334797 y
wye wye 3 0.20460330576630303 0.33831852551664776 y
eks wye 4 0.38139939387114097 0.13418874328430463 y
wye pan 5 0.5732889198020006 0.8636244699032729 y
zee pan 6 0.5271261600918548 0.49322128674835697 y
eks zee 7 0.6117840605678454 0.1878849191181694 y
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $down = $[[-NF]]
a b i x y down
pan pan 1 0.3467901443380824 0.7268028627434533 a
eks pan 2 0.7586799647899636 0.5221511083334797 a
wye wye 3 0.20460330576630303 0.33831852551664776 a
eks wye 4 0.38139939387114097 0.13418874328430463 a
wye pan 5 0.5732889198020006 0.8636244699032729 a
zee pan 6 0.5271261600918548 0.49322128674835697 a
eks zee 7 0.6117840605678454 0.1878849191181694 a
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $up = $*[[NF]]
a b i x y up
pan pan 1 0.3467901443380824 0.7268028627434533 y
eks pan 2 0.7586799647899636 0.5221511083334797 y
wye wye 3 0.20460330576630303 0.33831852551664776 y
eks wye 4 0.38139939387114097 0.13418874328430463 y
wye pan 5 0.5732889198020006 0.8636244699032729 y
zee pan 6 0.5271261600918548 0.49322128674835697 y
eks zee 7 0.6117840605678454 0.1878849191181694 y
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $down = $[*[-NF]]
Exit status was 1; expected 0.
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $up = $[[[NF]]]
a b i x y up
pan pan 1 0.3467901443380824 0.7268028627434533 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797 0.5221511083334797
wye wye 3 0.20460330576630303 0.33831852551664776 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463 0.13418874328430463
wye pan 5 0.5732889198020006 0.8636244699032729 0.8636244699032729
zee pan 6 0.5271261600918548 0.49322128674835697 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $down = $[[[-NF]]]
a b i x y down
pan pan 1 0.3467901443380824 0.7268028627434533 pan
eks pan 2 0.7586799647899636 0.5221511083334797 eks
wye wye 3 0.20460330576630303 0.33831852551664776 wye
eks wye 4 0.38139939387114097 0.13418874328430463 eks
wye pan 5 0.5732889198020006 0.8636244699032729 wye
zee pan 6 0.5271261600918548 0.49322128674835697 zee
eks zee 7 0.6117840605678454 0.1878849191181694 eks
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $up = $*[[[NF]]]
a b i x y up
pan pan 1 0.3467901443380824 0.7268028627434533 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797 0.5221511083334797
wye wye 3 0.20460330576630303 0.33831852551664776 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463 0.13418874328430463
wye pan 5 0.5732889198020006 0.8636244699032729 0.8636244699032729
zee pan 6 0.5271261600918548 0.49322128674835697 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $down = $*[[[-NF]]]
a b i x y down
pan pan 1 0.3467901443380824 0.7268028627434533 pan
eks pan 2 0.7586799647899636 0.5221511083334797 eks
wye wye 3 0.20460330576630303 0.33831852551664776 wye
eks wye 4 0.38139939387114097 0.13418874328430463 eks
wye pan 5 0.5732889198020006 0.8636244699032729 wye
zee pan 6 0.5271261600918548 0.49322128674835697 zee
eks zee 7 0.6117840605678454 0.1878849191181694 eks
mlr --opprint put unset $c ./reg-test/input/abixy
a b i x y
pan pan 1 0.3467901443380824 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797
wye wye 3 0.20460330576630303 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463
wye pan 5 0.5732889198020006 0.8636244699032729
zee pan 6 0.5271261600918548 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694
zee wye 8 0.5985540091064224 0.976181385699006
hat wye 9 0.03144187646093577 0.7495507603507059
pan wye 10 0.5026260055412137 0.9526183602969864
mlr --opprint put unset $c; $c="new" ./reg-test/input/abixy
a b i x y c
pan pan 1 0.3467901443380824 0.7268028627434533 new
eks pan 2 0.7586799647899636 0.5221511083334797 new
wye wye 3 0.20460330576630303 0.33831852551664776 new
eks wye 4 0.38139939387114097 0.13418874328430463 new
wye pan 5 0.5732889198020006 0.8636244699032729 new
zee pan 6 0.5271261600918548 0.49322128674835697 new
eks zee 7 0.6117840605678454 0.1878849191181694 new
zee wye 8 0.5985540091064224 0.976181385699006 new
hat wye 9 0.03144187646093577 0.7495507603507059 new
pan wye 10 0.5026260055412137 0.9526183602969864 new
mlr --opprint put $c=$a.$b; unset $c; $c="new" ./reg-test/input/abixy
a b i x y c
pan pan 1 0.3467901443380824 0.7268028627434533 new
eks pan 2 0.7586799647899636 0.5221511083334797 new
wye wye 3 0.20460330576630303 0.33831852551664776 new
eks wye 4 0.38139939387114097 0.13418874328430463 new
wye pan 5 0.5732889198020006 0.8636244699032729 new
zee pan 6 0.5271261600918548 0.49322128674835697 new
eks zee 7 0.6117840605678454 0.1878849191181694 new
zee wye 8 0.5985540091064224 0.976181385699006 new
hat wye 9 0.03144187646093577 0.7495507603507059 new
pan wye 10 0.5026260055412137 0.9526183602969864 new
mlr --opprint put $c=$a.$b; unset $c ./reg-test/input/abixy
a b i x y
pan pan 1 0.3467901443380824 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797
wye wye 3 0.20460330576630303 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463
wye pan 5 0.5732889198020006 0.8636244699032729
zee pan 6 0.5271261600918548 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694
zee wye 8 0.5985540091064224 0.976181385699006
hat wye 9 0.03144187646093577 0.7495507603507059
pan wye 10 0.5026260055412137 0.9526183602969864
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[1] = "new"
a b i x y 1
pan pan 1 0.3467901443380824 0.7268028627434533 new
eks pan 2 0.7586799647899636 0.5221511083334797 new
wye wye 3 0.20460330576630303 0.33831852551664776 new
eks wye 4 0.38139939387114097 0.13418874328430463 new
wye pan 5 0.5732889198020006 0.8636244699032729 new
zee pan 6 0.5271261600918548 0.49322128674835697 new
eks zee 7 0.6117840605678454 0.1878849191181694 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[2] = "new"
a b i x y 2
pan pan 1 0.3467901443380824 0.7268028627434533 new
eks pan 2 0.7586799647899636 0.5221511083334797 new
wye wye 3 0.20460330576630303 0.33831852551664776 new
eks wye 4 0.38139939387114097 0.13418874328430463 new
wye pan 5 0.5732889198020006 0.8636244699032729 new
zee pan 6 0.5271261600918548 0.49322128674835697 new
eks zee 7 0.6117840605678454 0.1878849191181694 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[5] = "new"
a b i x y 5
pan pan 1 0.3467901443380824 0.7268028627434533 new
eks pan 2 0.7586799647899636 0.5221511083334797 new
wye wye 3 0.20460330576630303 0.33831852551664776 new
eks wye 4 0.38139939387114097 0.13418874328430463 new
wye pan 5 0.5732889198020006 0.8636244699032729 new
zee pan 6 0.5271261600918548 0.49322128674835697 new
eks zee 7 0.6117840605678454 0.1878849191181694 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[-1] = "new"
a b i x y -1
pan pan 1 0.3467901443380824 0.7268028627434533 new
eks pan 2 0.7586799647899636 0.5221511083334797 new
wye wye 3 0.20460330576630303 0.33831852551664776 new
eks wye 4 0.38139939387114097 0.13418874328430463 new
wye pan 5 0.5732889198020006 0.8636244699032729 new
zee pan 6 0.5271261600918548 0.49322128674835697 new
eks zee 7 0.6117840605678454 0.1878849191181694 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[-2] = "new"
a b i x y -2
pan pan 1 0.3467901443380824 0.7268028627434533 new
eks pan 2 0.7586799647899636 0.5221511083334797 new
wye wye 3 0.20460330576630303 0.33831852551664776 new
eks wye 4 0.38139939387114097 0.13418874328430463 new
wye pan 5 0.5732889198020006 0.8636244699032729 new
zee pan 6 0.5271261600918548 0.49322128674835697 new
eks zee 7 0.6117840605678454 0.1878849191181694 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[-5] = "new"
a b i x y -5
pan pan 1 0.3467901443380824 0.7268028627434533 new
eks pan 2 0.7586799647899636 0.5221511083334797 new
wye wye 3 0.20460330576630303 0.33831852551664776 new
eks wye 4 0.38139939387114097 0.13418874328430463 new
wye pan 5 0.5732889198020006 0.8636244699032729 new
zee pan 6 0.5271261600918548 0.49322128674835697 new
eks zee 7 0.6117840605678454 0.1878849191181694 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put @idx = NR % 5; @idx = @idx == 0 ? 5 : @idx; $[@idx] = "NEW"
a b i x y 1
pan pan 1 0.3467901443380824 0.7268028627434533 NEW
a b i x y 2
eks pan 2 0.7586799647899636 0.5221511083334797 NEW
a b i x y 3
wye wye 3 0.20460330576630303 0.33831852551664776 NEW
a b i x y 4
eks wye 4 0.38139939387114097 0.13418874328430463 NEW
a b i x y 5
wye pan 5 0.5732889198020006 0.8636244699032729 NEW
a b i x y 1
zee pan 6 0.5271261600918548 0.49322128674835697 NEW
a b i x y 2
eks zee 7 0.6117840605678454 0.1878849191181694 NEW
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[1] = "new"
a b i x y 1
pan pan 1 0.3467901443380824 0.7268028627434533 new
eks pan 2 0.7586799647899636 0.5221511083334797 new
wye wye 3 0.20460330576630303 0.33831852551664776 new
eks wye 4 0.38139939387114097 0.13418874328430463 new
wye pan 5 0.5732889198020006 0.8636244699032729 new
zee pan 6 0.5271261600918548 0.49322128674835697 new
eks zee 7 0.6117840605678454 0.1878849191181694 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[2] = "new"
a b i x y 2
pan pan 1 0.3467901443380824 0.7268028627434533 new
eks pan 2 0.7586799647899636 0.5221511083334797 new
wye wye 3 0.20460330576630303 0.33831852551664776 new
eks wye 4 0.38139939387114097 0.13418874328430463 new
wye pan 5 0.5732889198020006 0.8636244699032729 new
zee pan 6 0.5271261600918548 0.49322128674835697 new
eks zee 7 0.6117840605678454 0.1878849191181694 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[5] = "new"
a b i x y 5
pan pan 1 0.3467901443380824 0.7268028627434533 new
eks pan 2 0.7586799647899636 0.5221511083334797 new
wye wye 3 0.20460330576630303 0.33831852551664776 new
eks wye 4 0.38139939387114097 0.13418874328430463 new
wye pan 5 0.5732889198020006 0.8636244699032729 new
zee pan 6 0.5271261600918548 0.49322128674835697 new
eks zee 7 0.6117840605678454 0.1878849191181694 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[-1] = "new"
a b i x y -1
pan pan 1 0.3467901443380824 0.7268028627434533 new
eks pan 2 0.7586799647899636 0.5221511083334797 new
wye wye 3 0.20460330576630303 0.33831852551664776 new
eks wye 4 0.38139939387114097 0.13418874328430463 new
wye pan 5 0.5732889198020006 0.8636244699032729 new
zee pan 6 0.5271261600918548 0.49322128674835697 new
eks zee 7 0.6117840605678454 0.1878849191181694 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[-2] = "new"
a b i x y -2
pan pan 1 0.3467901443380824 0.7268028627434533 new
eks pan 2 0.7586799647899636 0.5221511083334797 new
wye wye 3 0.20460330576630303 0.33831852551664776 new
eks wye 4 0.38139939387114097 0.13418874328430463 new
wye pan 5 0.5732889198020006 0.8636244699032729 new
zee pan 6 0.5271261600918548 0.49322128674835697 new
eks zee 7 0.6117840605678454 0.1878849191181694 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[-5] = "new"
a b i x y -5
pan pan 1 0.3467901443380824 0.7268028627434533 new
eks pan 2 0.7586799647899636 0.5221511083334797 new
wye wye 3 0.20460330576630303 0.33831852551664776 new
eks wye 4 0.38139939387114097 0.13418874328430463 new
wye pan 5 0.5732889198020006 0.8636244699032729 new
zee pan 6 0.5271261600918548 0.49322128674835697 new
eks zee 7 0.6117840605678454 0.1878849191181694 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[[1]] = "new"
new b i x y
pan pan 1 0.3467901443380824 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797
wye wye 3 0.20460330576630303 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463
wye pan 5 0.5732889198020006 0.8636244699032729
zee pan 6 0.5271261600918548 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[[2]] = "new"
a new i x y
pan pan 1 0.3467901443380824 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797
wye wye 3 0.20460330576630303 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463
wye pan 5 0.5732889198020006 0.8636244699032729
zee pan 6 0.5271261600918548 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[[5]] = "new"
a b i x new
pan pan 1 0.3467901443380824 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797
wye wye 3 0.20460330576630303 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463
wye pan 5 0.5732889198020006 0.8636244699032729
zee pan 6 0.5271261600918548 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[[-1]] = "new"
a b i x new
pan pan 1 0.3467901443380824 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797
wye wye 3 0.20460330576630303 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463
wye pan 5 0.5732889198020006 0.8636244699032729
zee pan 6 0.5271261600918548 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[[-2]] = "new"
a b i new y
pan pan 1 0.3467901443380824 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797
wye wye 3 0.20460330576630303 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463
wye pan 5 0.5732889198020006 0.8636244699032729
zee pan 6 0.5271261600918548 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[[-5]] = "new"
new b i x y
pan pan 1 0.3467901443380824 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797
wye wye 3 0.20460330576630303 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463
wye pan 5 0.5732889198020006 0.8636244699032729
zee pan 6 0.5271261600918548 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[[[1]]] = "new"
a b i x y
new pan 1 0.3467901443380824 0.7268028627434533
new pan 2 0.7586799647899636 0.5221511083334797
new wye 3 0.20460330576630303 0.33831852551664776
new wye 4 0.38139939387114097 0.13418874328430463
new pan 5 0.5732889198020006 0.8636244699032729
new pan 6 0.5271261600918548 0.49322128674835697
new zee 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[[[2]]] = "new"
a b i x y
pan new 1 0.3467901443380824 0.7268028627434533
eks new 2 0.7586799647899636 0.5221511083334797
wye new 3 0.20460330576630303 0.33831852551664776
eks new 4 0.38139939387114097 0.13418874328430463
wye new 5 0.5732889198020006 0.8636244699032729
zee new 6 0.5271261600918548 0.49322128674835697
eks new 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[[[5]]] = "new"
a b i x y
pan pan 1 0.3467901443380824 new
eks pan 2 0.7586799647899636 new
wye wye 3 0.20460330576630303 new
eks wye 4 0.38139939387114097 new
wye pan 5 0.5732889198020006 new
zee pan 6 0.5271261600918548 new
eks zee 7 0.6117840605678454 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[[[-1]]] = "new"
a b i x y
pan pan 1 0.3467901443380824 new
eks pan 2 0.7586799647899636 new
wye wye 3 0.20460330576630303 new
eks wye 4 0.38139939387114097 new
wye pan 5 0.5732889198020006 new
zee pan 6 0.5271261600918548 new
eks zee 7 0.6117840605678454 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[[[-2]]] = "new"
a b i x y
pan pan 1 new 0.7268028627434533
eks pan 2 new 0.5221511083334797
wye wye 3 new 0.33831852551664776
eks wye 4 new 0.13418874328430463
wye pan 5 new 0.8636244699032729
zee pan 6 new 0.49322128674835697
eks zee 7 new 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[[[-5]]] = "new"
a b i x y
new pan 1 0.3467901443380824 0.7268028627434533
new pan 2 0.7586799647899636 0.5221511083334797
new wye 3 0.20460330576630303 0.33831852551664776
new wye 4 0.38139939387114097 0.13418874328430463
new pan 5 0.5732889198020006 0.8636244699032729
new pan 6 0.5271261600918548 0.49322128674835697
new zee 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[1] = "new"
a b i x y 1
pan pan 1 0.3467901443380824 0.7268028627434533 new
eks pan 2 0.7586799647899636 0.5221511083334797 new
wye wye 3 0.20460330576630303 0.33831852551664776 new
eks wye 4 0.38139939387114097 0.13418874328430463 new
wye pan 5 0.5732889198020006 0.8636244699032729 new
zee pan 6 0.5271261600918548 0.49322128674835697 new
eks zee 7 0.6117840605678454 0.1878849191181694 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[2] = "new"
a b i x y 2
pan pan 1 0.3467901443380824 0.7268028627434533 new
eks pan 2 0.7586799647899636 0.5221511083334797 new
wye wye 3 0.20460330576630303 0.33831852551664776 new
eks wye 4 0.38139939387114097 0.13418874328430463 new
wye pan 5 0.5732889198020006 0.8636244699032729 new
zee pan 6 0.5271261600918548 0.49322128674835697 new
eks zee 7 0.6117840605678454 0.1878849191181694 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[5] = "new"
a b i x y 5
pan pan 1 0.3467901443380824 0.7268028627434533 new
eks pan 2 0.7586799647899636 0.5221511083334797 new
wye wye 3 0.20460330576630303 0.33831852551664776 new
eks wye 4 0.38139939387114097 0.13418874328430463 new
wye pan 5 0.5732889198020006 0.8636244699032729 new
zee pan 6 0.5271261600918548 0.49322128674835697 new
eks zee 7 0.6117840605678454 0.1878849191181694 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[-1] = "new"
a b i x y -1
pan pan 1 0.3467901443380824 0.7268028627434533 new
eks pan 2 0.7586799647899636 0.5221511083334797 new
wye wye 3 0.20460330576630303 0.33831852551664776 new
eks wye 4 0.38139939387114097 0.13418874328430463 new
wye pan 5 0.5732889198020006 0.8636244699032729 new
zee pan 6 0.5271261600918548 0.49322128674835697 new
eks zee 7 0.6117840605678454 0.1878849191181694 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[-2] = "new"
a b i x y -2
pan pan 1 0.3467901443380824 0.7268028627434533 new
eks pan 2 0.7586799647899636 0.5221511083334797 new
wye wye 3 0.20460330576630303 0.33831852551664776 new
eks wye 4 0.38139939387114097 0.13418874328430463 new
wye pan 5 0.5732889198020006 0.8636244699032729 new
zee pan 6 0.5271261600918548 0.49322128674835697 new
eks zee 7 0.6117840605678454 0.1878849191181694 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[-5] = "new"
a b i x y -5
pan pan 1 0.3467901443380824 0.7268028627434533 new
eks pan 2 0.7586799647899636 0.5221511083334797 new
wye wye 3 0.20460330576630303 0.33831852551664776 new
eks wye 4 0.38139939387114097 0.13418874328430463 new
wye pan 5 0.5732889198020006 0.8636244699032729 new
zee pan 6 0.5271261600918548 0.49322128674835697 new
eks zee 7 0.6117840605678454 0.1878849191181694 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[[1]] = "new"
Exit status was 2; expected 0.
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[[2]] = "new"
Exit status was 2; expected 0.
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[[5]] = "new"
Exit status was 2; expected 0.
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[[-1]] = "new"
Exit status was 2; expected 0.
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[[-2]] = "new"
Exit status was 2; expected 0.
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[[-5]] = "new"
Exit status was 2; expected 0.
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[[[1]]] = "new"
Exit status was 2; expected 0.
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[[[2]]] = "new"
Exit status was 2; expected 0.
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[[[5]]] = "new"
Exit status was 2; expected 0.
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[[[-1]]] = "new"
Exit status was 2; expected 0.
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[[[-2]]] = "new"
Exit status was 2; expected 0.
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[[[-5]]] = "new"
Exit status was 2; expected 0.
mlr --opprint put $NEW = $[[3]] ./reg-test/input/abixy
a b i x y NEW
pan pan 1 0.3467901443380824 0.7268028627434533 i
eks pan 2 0.7586799647899636 0.5221511083334797 i
wye wye 3 0.20460330576630303 0.33831852551664776 i
eks wye 4 0.38139939387114097 0.13418874328430463 i
wye pan 5 0.5732889198020006 0.8636244699032729 i
zee pan 6 0.5271261600918548 0.49322128674835697 i
eks zee 7 0.6117840605678454 0.1878849191181694 i
zee wye 8 0.5985540091064224 0.976181385699006 i
hat wye 9 0.03144187646093577 0.7495507603507059 i
pan wye 10 0.5026260055412137 0.9526183602969864 i
mlr --opprint put $NEW = $[[[3]]] ./reg-test/input/abixy
a b i x y NEW
pan pan 1 0.3467901443380824 0.7268028627434533 1
eks pan 2 0.7586799647899636 0.5221511083334797 2
wye wye 3 0.20460330576630303 0.33831852551664776 3
eks wye 4 0.38139939387114097 0.13418874328430463 4
wye pan 5 0.5732889198020006 0.8636244699032729 5
zee pan 6 0.5271261600918548 0.49322128674835697 6
eks zee 7 0.6117840605678454 0.1878849191181694 7
zee wye 8 0.5985540091064224 0.976181385699006 8
hat wye 9 0.03144187646093577 0.7495507603507059 9
pan wye 10 0.5026260055412137 0.9526183602969864 10
mlr --opprint put $NEW = $[[11]] ./reg-test/input/abixy
a b i x y
pan pan 1 0.3467901443380824 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797
wye wye 3 0.20460330576630303 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463
wye pan 5 0.5732889198020006 0.8636244699032729
zee pan 6 0.5271261600918548 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694
zee wye 8 0.5985540091064224 0.976181385699006
hat wye 9 0.03144187646093577 0.7495507603507059
pan wye 10 0.5026260055412137 0.9526183602969864
mlr --opprint put $NEW = $[[[11]]] ./reg-test/input/abixy
a b i x y
pan pan 1 0.3467901443380824 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797
wye wye 3 0.20460330576630303 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463
wye pan 5 0.5732889198020006 0.8636244699032729
zee pan 6 0.5271261600918548 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694
zee wye 8 0.5985540091064224 0.976181385699006
hat wye 9 0.03144187646093577 0.7495507603507059
pan wye 10 0.5026260055412137 0.9526183602969864
mlr --opprint put $[[3]] = "NEW" ./reg-test/input/abixy
a b NEW x y
pan pan 1 0.3467901443380824 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797
wye wye 3 0.20460330576630303 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463
wye pan 5 0.5732889198020006 0.8636244699032729
zee pan 6 0.5271261600918548 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694
zee wye 8 0.5985540091064224 0.976181385699006
hat wye 9 0.03144187646093577 0.7495507603507059
pan wye 10 0.5026260055412137 0.9526183602969864
mlr --opprint put $[[[3]]] = "NEW" ./reg-test/input/abixy
a b i x y
pan pan NEW 0.3467901443380824 0.7268028627434533
eks pan NEW 0.7586799647899636 0.5221511083334797
wye wye NEW 0.20460330576630303 0.33831852551664776
eks wye NEW 0.38139939387114097 0.13418874328430463
wye pan NEW 0.5732889198020006 0.8636244699032729
zee pan NEW 0.5271261600918548 0.49322128674835697
eks zee NEW 0.6117840605678454 0.1878849191181694
zee wye NEW 0.5985540091064224 0.976181385699006
hat wye NEW 0.03144187646093577 0.7495507603507059
pan wye NEW 0.5026260055412137 0.9526183602969864
mlr --opprint put $[[11]] = "NEW" ./reg-test/input/abixy
a b i x y
pan pan 1 0.3467901443380824 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797
wye wye 3 0.20460330576630303 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463
wye pan 5 0.5732889198020006 0.8636244699032729
zee pan 6 0.5271261600918548 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694
zee wye 8 0.5985540091064224 0.976181385699006
hat wye 9 0.03144187646093577 0.7495507603507059
pan wye 10 0.5026260055412137 0.9526183602969864
mlr --opprint put $[[[11]]] = "NEW" ./reg-test/input/abixy
a b i x y
pan pan 1 0.3467901443380824 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797
wye wye 3 0.20460330576630303 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463
wye pan 5 0.5732889198020006 0.8636244699032729
zee pan 6 0.5271261600918548 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694
zee wye 8 0.5985540091064224 0.976181385699006
hat wye 9 0.03144187646093577 0.7495507603507059
pan wye 10 0.5026260055412137 0.9526183602969864
mlr --opprint put $[[1]] = $[[2]] ./reg-test/input/abixy
b b i x y
pan pan 1 0.3467901443380824 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797
wye wye 3 0.20460330576630303 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463
wye pan 5 0.5732889198020006 0.8636244699032729
zee pan 6 0.5271261600918548 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694
zee wye 8 0.5985540091064224 0.976181385699006
hat wye 9 0.03144187646093577 0.7495507603507059
pan wye 10 0.5026260055412137 0.9526183602969864
mlr --opprint put $a = $[[2]]; unset $["a"] ./reg-test/input/abixy
b i x y
pan 1 0.3467901443380824 0.7268028627434533
pan 2 0.7586799647899636 0.5221511083334797
wye 3 0.20460330576630303 0.33831852551664776
wye 4 0.38139939387114097 0.13418874328430463
pan 5 0.5732889198020006 0.8636244699032729
pan 6 0.5271261600918548 0.49322128674835697
zee 7 0.6117840605678454 0.1878849191181694
wye 8 0.5985540091064224 0.976181385699006
wye 9 0.03144187646093577 0.7495507603507059
wye 10 0.5026260055412137 0.9526183602969864
mlr --opprint put $[[1]] = $b; unset $[[1]] ./reg-test/input/abixy
pan b i x y
pan pan 1 0.3467901443380824 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797
wye b i x y
wye wye 3 0.20460330576630303 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463
pan b i x y
wye pan 5 0.5732889198020006 0.8636244699032729
zee pan 6 0.5271261600918548 0.49322128674835697
zee b i x y
eks zee 7 0.6117840605678454 0.1878849191181694
wye b i x y
zee wye 8 0.5985540091064224 0.976181385699006
hat wye 9 0.03144187646093577 0.7495507603507059
pan wye 10 0.5026260055412137 0.9526183602969864
mlr --opprint put $[[1]] = $[[2]]; unset $["a"] ./reg-test/input/abixy
b i x y
pan 1 0.3467901443380824 0.7268028627434533
pan 2 0.7586799647899636 0.5221511083334797
wye 3 0.20460330576630303 0.33831852551664776
wye 4 0.38139939387114097 0.13418874328430463
pan 5 0.5732889198020006 0.8636244699032729
pan 6 0.5271261600918548 0.49322128674835697
zee 7 0.6117840605678454 0.1878849191181694
wye 8 0.5985540091064224 0.976181385699006
wye 9 0.03144187646093577 0.7495507603507059
wye 10 0.5026260055412137 0.9526183602969864

View file

@ -1,210 +0,0 @@
mlr --from ./reg-test/input/s.dkvp --idkvp --opprint put $z = [$a,$b,$i,$x,$y][1]
a b i x y z
pan pan 1 0.3467901443380824 0.7268028627434533 pan
eks pan 2 0.7586799647899636 0.5221511083334797 eks
wye wye 3 0.20460330576630303 0.33831852551664776 wye
eks wye 4 0.38139939387114097 0.13418874328430463 eks
mlr --from ./reg-test/input/s.dkvp --idkvp --opprint put $z = [$a,$b,$i,$x,$y][-1]
a b i x y z
pan pan 1 0.3467901443380824 0.7268028627434533 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797 0.5221511083334797
wye wye 3 0.20460330576630303 0.33831852551664776 0.33831852551664776
eks wye 4 0.38139939387114097 0.13418874328430463 0.13418874328430463
mlr --from ./reg-test/input/s.dkvp --idkvp --opprint put $z = [$a,$b,$i,$x,$y][NR]
a b i x y z
pan pan 1 0.3467901443380824 0.7268028627434533 pan
eks pan 2 0.7586799647899636 0.5221511083334797 pan
wye wye 3 0.20460330576630303 0.33831852551664776 3
eks wye 4 0.38139939387114097 0.13418874328430463 0.38139939387114097
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $up = $[NR]
a b i x y up
pan pan 1 0.3467901443380824 0.7268028627434533 pan
eks pan 2 0.7586799647899636 0.5221511083334797 pan
wye wye 3 0.20460330576630303 0.33831852551664776 3
eks wye 4 0.38139939387114097 0.13418874328430463 0.38139939387114097
wye pan 5 0.5732889198020006 0.8636244699032729 0.8636244699032729
a b i x y
zee pan 6 0.5271261600918548 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $down = $[-NR]
a b i x y down
pan pan 1 0.3467901443380824 0.7268028627434533 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797 0.7586799647899636
wye wye 3 0.20460330576630303 0.33831852551664776 3
eks wye 4 0.38139939387114097 0.13418874328430463 wye
wye pan 5 0.5732889198020006 0.8636244699032729 wye
a b i x y
zee pan 6 0.5271261600918548 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $up = $*[NR]
a b i x y up
pan pan 1 0.3467901443380824 0.7268028627434533 pan
eks pan 2 0.7586799647899636 0.5221511083334797 pan
wye wye 3 0.20460330576630303 0.33831852551664776 3
eks wye 4 0.38139939387114097 0.13418874328430463 0.38139939387114097
wye pan 5 0.5732889198020006 0.8636244699032729 0.8636244699032729
a b i x y
zee pan 6 0.5271261600918548 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $down = $*[-NR]
a b i x y down
pan pan 1 0.3467901443380824 0.7268028627434533 0.7268028627434533
eks pan 2 0.7586799647899636 0.5221511083334797 0.7586799647899636
wye wye 3 0.20460330576630303 0.33831852551664776 3
eks wye 4 0.38139939387114097 0.13418874328430463 wye
wye pan 5 0.5732889198020006 0.8636244699032729 wye
a b i x y
zee pan 6 0.5271261600918548 0.49322128674835697
eks zee 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[1] = "new"
a b i x y
new pan 1 0.3467901443380824 0.7268028627434533
new pan 2 0.7586799647899636 0.5221511083334797
new wye 3 0.20460330576630303 0.33831852551664776
new wye 4 0.38139939387114097 0.13418874328430463
new pan 5 0.5732889198020006 0.8636244699032729
new pan 6 0.5271261600918548 0.49322128674835697
new zee 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[2] = "new"
a b i x y
pan new 1 0.3467901443380824 0.7268028627434533
eks new 2 0.7586799647899636 0.5221511083334797
wye new 3 0.20460330576630303 0.33831852551664776
eks new 4 0.38139939387114097 0.13418874328430463
wye new 5 0.5732889198020006 0.8636244699032729
zee new 6 0.5271261600918548 0.49322128674835697
eks new 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[5] = "new"
a b i x y
pan pan 1 0.3467901443380824 new
eks pan 2 0.7586799647899636 new
wye wye 3 0.20460330576630303 new
eks wye 4 0.38139939387114097 new
wye pan 5 0.5732889198020006 new
zee pan 6 0.5271261600918548 new
eks zee 7 0.6117840605678454 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[-1] = "new"
a b i x y
pan pan 1 0.3467901443380824 new
eks pan 2 0.7586799647899636 new
wye wye 3 0.20460330576630303 new
eks wye 4 0.38139939387114097 new
wye pan 5 0.5732889198020006 new
zee pan 6 0.5271261600918548 new
eks zee 7 0.6117840605678454 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[-2] = "new"
a b i x y
pan pan 1 new 0.7268028627434533
eks pan 2 new 0.5221511083334797
wye wye 3 new 0.33831852551664776
eks wye 4 new 0.13418874328430463
wye pan 5 new 0.8636244699032729
zee pan 6 new 0.49322128674835697
eks zee 7 new 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $[-5] = "new"
a b i x y
new pan 1 0.3467901443380824 0.7268028627434533
new pan 2 0.7586799647899636 0.5221511083334797
new wye 3 0.20460330576630303 0.33831852551664776
new wye 4 0.38139939387114097 0.13418874328430463
new pan 5 0.5732889198020006 0.8636244699032729
new pan 6 0.5271261600918548 0.49322128674835697
new zee 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put @idx = NR % 5; @idx = @idx == 0 ? 5 : @idx; $[@idx] = "NEW"
a b i x y
NEW pan 1 0.3467901443380824 0.7268028627434533
eks NEW 2 0.7586799647899636 0.5221511083334797
wye wye NEW 0.20460330576630303 0.33831852551664776
eks wye 4 NEW 0.13418874328430463
wye pan 5 0.5732889198020006 NEW
NEW pan 6 0.5271261600918548 0.49322128674835697
eks NEW 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[1] = "new"
a b i x y
new pan 1 0.3467901443380824 0.7268028627434533
new pan 2 0.7586799647899636 0.5221511083334797
new wye 3 0.20460330576630303 0.33831852551664776
new wye 4 0.38139939387114097 0.13418874328430463
new pan 5 0.5732889198020006 0.8636244699032729
new pan 6 0.5271261600918548 0.49322128674835697
new zee 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[2] = "new"
a b i x y
pan new 1 0.3467901443380824 0.7268028627434533
eks new 2 0.7586799647899636 0.5221511083334797
wye new 3 0.20460330576630303 0.33831852551664776
eks new 4 0.38139939387114097 0.13418874328430463
wye new 5 0.5732889198020006 0.8636244699032729
zee new 6 0.5271261600918548 0.49322128674835697
eks new 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[5] = "new"
a b i x y
pan pan 1 0.3467901443380824 new
eks pan 2 0.7586799647899636 new
wye wye 3 0.20460330576630303 new
eks wye 4 0.38139939387114097 new
wye pan 5 0.5732889198020006 new
zee pan 6 0.5271261600918548 new
eks zee 7 0.6117840605678454 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[-1] = "new"
a b i x y
pan pan 1 0.3467901443380824 new
eks pan 2 0.7586799647899636 new
wye wye 3 0.20460330576630303 new
eks wye 4 0.38139939387114097 new
wye pan 5 0.5732889198020006 new
zee pan 6 0.5271261600918548 new
eks zee 7 0.6117840605678454 new
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[-2] = "new"
a b i x y
pan pan 1 new 0.7268028627434533
eks pan 2 new 0.5221511083334797
wye wye 3 new 0.33831852551664776
eks wye 4 new 0.13418874328430463
wye pan 5 new 0.8636244699032729
zee pan 6 new 0.49322128674835697
eks zee 7 new 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put $*[-5] = "new"
a b i x y
new pan 1 0.3467901443380824 0.7268028627434533
new pan 2 0.7586799647899636 0.5221511083334797
new wye 3 0.20460330576630303 0.33831852551664776
new wye 4 0.38139939387114097 0.13418874328430463
new pan 5 0.5732889198020006 0.8636244699032729
new pan 6 0.5271261600918548 0.49322128674835697
new zee 7 0.6117840605678454 0.1878849191181694
mlr --opprint --from ./reg-test/input/s.dkvp --from ./reg-test/input/t.dkvp put @idx = NR % 5; @idx = @idx == 0 ? 5 : @idx; $*[@idx] = "NEW"
a b i x y
NEW pan 1 0.3467901443380824 0.7268028627434533
eks NEW 2 0.7586799647899636 0.5221511083334797
wye wye NEW 0.20460330576630303 0.33831852551664776
eks wye 4 NEW 0.13418874328430463
wye pan 5 0.5732889198020006 NEW
NEW pan 6 0.5271261600918548 0.49322128674835697
eks NEW 7 0.6117840605678454 0.1878849191181694

View file

@ -1,70 +0,0 @@
mlr --oxtab --from reg-test/input/abixy head -n 1 then put
$_1 = ""; # just for visual output-spacing
$srec_keyed_by_2 = $[2];
$srec_name_2 = $[[2]];
$srec_value_2 = $[[[2]]];
$_2 = "";
$dollar_star_keyed_by_2 = $*[2];
$dollar_star_name_2 = $*[[2]];
$dollar_star_value_2 = $*[[[2]]];
$_3 = "";
mymap = {"a":7, "b":8, "c":9};
$mymap_keyed_by_2 = mymap[2];
$mymap_name_2 = mymap[[2]];
$mymap_value_2 = mymap[[[2]]];
$_4 = "";
myarray = [7, 8, 9];
$myarray_keyed_by_2 = myarray[2];
$myarray_name_2 = myarray[[2]];
$myarray_value_2 = myarray[[[2]]];
a pan
b pan
i 1
x 0.3467901443380824
y 0.7268028627434533
_1
srec_name_2 b
srec_value_2 pan
_2
dollar_star_name_2 b
dollar_star_value_2 pan
_3
mymap_name_2 b
mymap_value_2 8
_4
myarray_keyed_by_2 8
myarray_name_2 2
myarray_value_2 8
mlr --oxtab --from reg-test/input/abixy head -n 1 then put
$_1 = ""; # just for visual output-spacing
$srec_keyed_by_2 = $[900];
$srec_name_2 = $[[900]];
$srec_value_2 = $[[[900]]];
$_2 = "";
$dollar_star_keyed_by_2 = $*[900];
$dollar_star_name_2 = $*[[900]];
$dollar_star_value_2 = $*[[[900]]];
$_3 = "";
mymap = {"a":7, "b":8, "c":9};
$mymap_keyed_by_2 = mymap[900];
$mymap_name_2 = mymap[[900]];
$mymap_value_2 = mymap[[[900]]];
$_4 = "";
myarray = [7, 8, 9];
$myarray_keyed_by_2 = myarray[900];
$myarray_name_2 = myarray[[900]];
$myarray_value_2 = myarray[[[900]]];
a pan
b pan
i 1
x 0.3467901443380824
y 0.7268028627434533
_1
_2
_3
_4

View file

@ -52,14 +52,15 @@ func (this *RootNode) BuildAssignableNode(
return this.BuildLocalVariableLvalueNode(astNode)
break
case dsl.NodeTypeArrayOrMapIndexAccess:
return this.BuildIndexedLvalueNode(astNode)
break
case dsl.NodeTypeArrayOrMapPositionalNameAccess:
return nil, nil // TODO
return this.BuildArrayOrMapPositionalNameAccessLvalueNode(astNode)
break
case dsl.NodeTypeArrayOrMapPositionalValueAccess:
return nil, nil // TODO
return this.BuildArrayOrMapPositionalValueAccessLvalueNode(astNode)
break
case dsl.NodeTypeArrayOrMapIndexAccess:
return this.BuildIndexedLvalueNode(astNode)
break
case dsl.NodeTypeEnvironmentVariable:
@ -773,6 +774,195 @@ func (this *LocalVariableLvalueNode) UnsetIndexed(
}
}
// ----------------------------------------------------------------
// Set the name at 2nd positional index in the current stream record: e.g.
// '$[[2]] = "abc"
type ArrayOrMapPositionalNameAccessLvalueNode struct {
lhsFieldIndexExpression IEvaluable
}
func (this *RootNode) BuildArrayOrMapPositionalNameAccessLvalueNode(
astNode *dsl.ASTNode,
) (IAssignable, error) {
lib.InternalCodingErrorIf(astNode.Type != dsl.NodeTypeArrayOrMapPositionalNameAccess)
lib.InternalCodingErrorIf(astNode == nil)
lib.InternalCodingErrorIf(len(astNode.Children) != 1)
lhsFieldIndexExpression, err := this.BuildEvaluableNode(astNode.Children[0])
if err != nil {
return nil, err
}
return NewArrayOrMapPositionalNameAccessLvalueNode(lhsFieldIndexExpression), nil
}
func NewArrayOrMapPositionalNameAccessLvalueNode(
lhsFieldIndexExpression IEvaluable,
) *ArrayOrMapPositionalNameAccessLvalueNode {
return &ArrayOrMapPositionalNameAccessLvalueNode{
lhsFieldIndexExpression: lhsFieldIndexExpression,
}
}
func (this *ArrayOrMapPositionalNameAccessLvalueNode) Assign(
rvalue *types.Mlrval,
state *State,
) error {
// AssignmentNode checks for absentness of the rvalue, so we just assign
// whatever we get
lib.InternalCodingErrorIf(rvalue.IsAbsent())
lhsFieldIndex := this.lhsFieldIndexExpression.Evaluate(state)
index, ok := lhsFieldIndex.GetIntValue()
if ok {
// TODO: incorporate error-return into this API
state.Inrec.PutNameWithPositionalIndex(index, rvalue)
return nil
} else {
return errors.New(
fmt.Sprintf(
"Miller: positional index for $[[...]] assignment must be integer; got %s.",
lhsFieldIndex.GetTypeName(),
),
)
}
}
func (this *ArrayOrMapPositionalNameAccessLvalueNode) AssignIndexed(
rvalue *types.Mlrval,
indices []*types.Mlrval,
state *State,
) error {
// TODO: reconsider this if /when we decide to allow string-slice
// assignments.
return errors.New(
"Miller: $[[...]] = ... expressions are not indexable.",
)
}
func (this *ArrayOrMapPositionalNameAccessLvalueNode) Unset(
state *State,
) {
this.UnsetIndexed(nil, state)
}
func (this *ArrayOrMapPositionalNameAccessLvalueNode) UnsetIndexed(
indices []*types.Mlrval,
state *State,
) {
lhsFieldIndex := this.lhsFieldIndexExpression.Evaluate(state)
if indices == nil {
name := lhsFieldIndex.String()
// xxx positional
state.Inrec.Remove(&name)
} else {
// xxx positional
state.Inrec.UnsetIndexed(
append([]*types.Mlrval{&lhsFieldIndex}, indices...),
)
}
}
// ----------------------------------------------------------------
// Set the value at 2nd positional index in the current stream record: e.g.
// '$[[[2]]] = "abc"
type ArrayOrMapPositionalValueAccessLvalueNode struct {
lhsFieldIndexExpression IEvaluable
}
func (this *RootNode) BuildArrayOrMapPositionalValueAccessLvalueNode(
astNode *dsl.ASTNode,
) (IAssignable, error) {
lib.InternalCodingErrorIf(astNode.Type != dsl.NodeTypeArrayOrMapPositionalValueAccess)
lib.InternalCodingErrorIf(astNode == nil)
lib.InternalCodingErrorIf(len(astNode.Children) != 1)
lhsFieldIndexExpression, err := this.BuildEvaluableNode(astNode.Children[0])
if err != nil {
return nil, err
}
return NewArrayOrMapPositionalValueAccessLvalueNode(lhsFieldIndexExpression), nil
}
func NewArrayOrMapPositionalValueAccessLvalueNode(
lhsFieldIndexExpression IEvaluable,
) *ArrayOrMapPositionalValueAccessLvalueNode {
return &ArrayOrMapPositionalValueAccessLvalueNode{
lhsFieldIndexExpression: lhsFieldIndexExpression,
}
}
func (this *ArrayOrMapPositionalValueAccessLvalueNode) Assign(
rvalue *types.Mlrval,
state *State,
) error {
return this.AssignIndexed(rvalue, nil, state)
}
func (this *ArrayOrMapPositionalValueAccessLvalueNode) AssignIndexed(
rvalue *types.Mlrval,
indices []*types.Mlrval,
state *State,
) error {
// AssignmentNode checks for absentness of the rvalue, so we just assign
// whatever we get
lib.InternalCodingErrorIf(rvalue.IsAbsent())
lhsFieldIndex := this.lhsFieldIndexExpression.Evaluate(state)
if indices == nil {
index, ok := lhsFieldIndex.GetIntValue()
if ok {
// TODO: incorporate error-return into this API
//err := state.Inrec.PutCopyWithPositionalIndex(&lhsFieldIndex, rvalue)
//if err != nil {
//return err
//}
//return nil
state.Inrec.PutCopyWithPositionalIndex(index, rvalue)
return nil
} else {
return errors.New(
fmt.Sprintf(
"Miller: positional index for $[[[...]]] assignment must be integer; got %s.",
lhsFieldIndex.GetTypeName(),
),
)
}
} else {
// xxx positional
return state.Inrec.PutIndexed(
append([]*types.Mlrval{&lhsFieldIndex}, indices...),
rvalue,
)
}
}
func (this *ArrayOrMapPositionalValueAccessLvalueNode) Unset(
state *State,
) {
this.UnsetIndexed(nil, state)
}
func (this *ArrayOrMapPositionalValueAccessLvalueNode) UnsetIndexed(
indices []*types.Mlrval,
state *State,
) {
lhsFieldIndex := this.lhsFieldIndexExpression.Evaluate(state)
if indices == nil {
name := lhsFieldIndex.String()
// xxx positional
state.Inrec.Remove(&name)
} else {
// xxx positional
state.Inrec.UnsetIndexed(
append([]*types.Mlrval{&lhsFieldIndex}, indices...),
)
}
}
// ----------------------------------------------------------------
// IndexedValueNode is a delegator to base-lvalue types.
// * The baseLvalue is some IAssignable