This commit is contained in:
John Kerl 2020-11-23 12:29:33 -05:00
parent dea9978257
commit b1e55d3f4e
4 changed files with 167 additions and 200 deletions

View file

@ -1,28 +1,89 @@
================================================================
MULTI:
NEED MORE LOOKING:
rrv -C5 ./reg-test/cases/case-c-dsl-asserting.sh
rrv ./reg-test/cases/case-c-dsl-context-specific-validation.sh
rrv ./reg-test/cases/case-c-dsl-empty-statements.sh
rrv ./reg-test/cases/case-c-dsl-filter-pattern-action.sh
rrv ./reg-test/cases/case-c-dsl-for-bind-loops-for-valgrind.sh
rrv ./reg-test/cases/case-c-dsl-for-oosvar-loops.sh
rrv ./reg-test/cases/case-c-dsl-for-srec-loops.sh
rrv ./reg-test/cases/case-c-dsl-forbind-typedecl.sh
rrv ./reg-test/cases/case-c-dsl-from-file.sh
rrv ./reg-test/cases/case-c-dsl-length-depth-leafcount.sh
rrv ./reg-test/cases/case-c-dsl-local-map-variable-typedecl.sh
rrv ./reg-test/cases/case-c-dsl-local-map-variable-write-read.sh
rrv ./reg-test/cases/case-c-dsl-localvar-scope-and-extent.sh
rrv ./reg-test/cases/case-c-dsl-mapvar-assignments.sh
rrv ./reg-test/cases/case-c-dsl-mapvar-emit.sh
rrv ./reg-test/cases/case-c-dsl-mapvar-for-loops.sh
rrv ./reg-test/cases/case-c-dsl-mapvars-in-scalar-function-call-contexts.sh
rrv ./reg-test/cases/case-c-dsl-oosvar-assignments.sh
rrv ./reg-test/cases/case-c-dsl-oosvars.sh
rrv ./reg-test/cases/case-c-dsl-split-join.sh
rrv ./reg-test/cases/case-c-dsl-type-inference.sh
rrv ./reg-test/cases/case-c-dsl-type-predicates.sh
rrv ./reg-test/cases/case-c-dsl-typed-overlay.sh
rrv ./reg-test/cases/case-c-dsl-user-defined-functions-and-subroutines.sh
rrv ./reg-test/cases/case-c-dsl-user-defined-functions.sh
rrv ./reg-test/cases/case-c-dsl-user-defined-subroutines.sh
rrv ./reg-test/cases/case-c-format-conversion-keystroke-savers.sh
rrv ./reg-test/cases/case-c-implicit-header-csv-input.sh
rrv ./reg-test/cases/case-c-multi-character-ixs.sh
================================================================
MULTIPLE ISSUES:
rrv ./reg-test/cases/case-c-dsl-functional-tests.sh
* bug mlr filter $nosuchfield>.3 ./reg-test/input/abixy
* ofmt
* env
-> split up this big case-file
* typeof prints different things -- regularize ...
* 'x=' -> MT_EMPTY vs MT_STRING
================================================================
LF/CRLF ETC.
rrv ./reg-test/cases/case-c-missing-final-lf.sh
================================================================
BUG:
rrv ./reg-test/cases/case-c-dsl-multipart-scripts.sh
rrv ./reg-test/cases/case-c-dsl-localvar-typedecl.sh
* str s = "a"; s = 3 doesn't trigger -- needs gate-retention ...
rrv ./reg-test/cases/case-c-dsl-for-map-depth.sh
* Miller: looped-over item is not a map or array.
Needs to treat absent as zero-pass case
rrv ./reg-test/cases/case-c-dsl-map-variant-dumps.sh
* run_mlr --from $indir/abixy-het put -q 'dump {"a"."b":$a.$b}'
Miller: couldn't assign variable var a from value absent (absent)
rrv ./reg-test/cases/case-c-dsl-null-empty-handling.sh
* "conditional expression did not evaluate to boolean" -- versus @nonesuch {} P/A in C ...
rrv ./reg-test/cases/case-c-dsl-triple-for-loops.sh
* Needs to do this:
"Continuation statements are split into the final boolean, and the statements before (if any)."
rrv ./reg-test/cases/case-c-label.sh
* needs uniqueness-checker
================================================================
ENV
rrv ./reg-test/cases/case-c-dsl-functional-tests.sh
================================================================
PUT -S / -F
rrv ./reg-test/cases/case-c-dsl-pythonic-division.sh
================================================================
ARRAY/MAP
@ -31,10 +92,29 @@ rrv ./reg-test/cases/case-c-dsl-haskey.sh
rrv ./reg-test/cases/case-c-dsl-extended-typeof.sh
rrv ./reg-test/cases/case-c-dsl-is-predicates.sh
* {1:2} is empty-map in Go; should step up (populate) or step down (error)
func (this *Mlrval) MapPut(key *Mlrval, value *Mlrval) {
if this.mvtype != MT_MAP {
// TODO: need to be careful about semantics here.
// Silent no-ops are not good UX ...
return
}
if key.mvtype != MT_STRING {
// TODO: need to be careful about semantics here.
// Silent no-ops are not good UX ...
return
}
this.mapval.PutCopy(&key.printrep, value)
}
================================================================
SUBR
rrv ./reg-test/cases/case-c-dsl-trailing-commas.sh
rrv ./reg-test/cases/case-c-dsl-argpass-typedecl.sh
rrv ./reg-test/cases/case-c-dsl-multipart-scripts.sh
================================================================
FORMATTING?
@ -80,6 +160,9 @@ rrv ./reg-test/cases/case-c-dsl-lashed-emitp-singles.sh
================================================================
NOT IMPLEMENTED YET:
rrv ./reg-test/cases/case-c-het-pprint-input.sh
* new pprint reader not done yet
rrv ./reg-test/cases/case-c-auxents.sh
rrv ./reg-test/cases/case-c-bar.sh
rrv ./reg-test/cases/case-c-compressed-input.sh
@ -126,44 +209,3 @@ rrv ./reg-test/cases/case-c-step.sh
rrv ./reg-test/cases/case-c-top.sh
rrv ./reg-test/cases/case-c-uniq.sh
rrv ./reg-test/cases/case-c-utf8-bom.sh
================================================================
NEED MORE LOOKING:
rrv ./reg-test/cases/case-c-dsl-asserting.sh
rrv ./reg-test/cases/case-c-dsl-context-specific-validation.sh
rrv ./reg-test/cases/case-c-dsl-empty-statements.sh
rrv ./reg-test/cases/case-c-dsl-filter-pattern-action.sh
rrv ./reg-test/cases/case-c-dsl-for-bind-loops-for-valgrind.sh
rrv ./reg-test/cases/case-c-dsl-for-map-depth.sh
rrv ./reg-test/cases/case-c-dsl-for-oosvar-loops.sh
rrv ./reg-test/cases/case-c-dsl-for-srec-loops.sh
rrv ./reg-test/cases/case-c-dsl-forbind-typedecl.sh
rrv ./reg-test/cases/case-c-dsl-from-file.sh
rrv ./reg-test/cases/case-c-dsl-is-predicates.sh
rrv ./reg-test/cases/case-c-dsl-length-depth-leafcount.sh
rrv ./reg-test/cases/case-c-dsl-local-map-variable-typedecl.sh
rrv ./reg-test/cases/case-c-dsl-local-map-variable-write-read.sh
rrv ./reg-test/cases/case-c-dsl-localvar-scope-and-extent.sh
rrv ./reg-test/cases/case-c-dsl-localvar-typedecl.sh
rrv ./reg-test/cases/case-c-dsl-map-variant-dumps.sh
rrv ./reg-test/cases/case-c-dsl-mapvar-assignments.sh
rrv ./reg-test/cases/case-c-dsl-mapvar-emit.sh
rrv ./reg-test/cases/case-c-dsl-mapvar-for-loops.sh
rrv ./reg-test/cases/case-c-dsl-mapvars-in-scalar-function-call-contexts.sh
rrv ./reg-test/cases/case-c-dsl-oosvar-assignments.sh
rrv ./reg-test/cases/case-c-dsl-oosvars.sh
rrv ./reg-test/cases/case-c-dsl-pythonic-division.sh
rrv ./reg-test/cases/case-c-dsl-split-join.sh
rrv ./reg-test/cases/case-c-dsl-trailing-commas.sh
rrv ./reg-test/cases/case-c-dsl-type-inference.sh
rrv ./reg-test/cases/case-c-dsl-type-predicates.sh
rrv ./reg-test/cases/case-c-dsl-typed-overlay.sh
rrv ./reg-test/cases/case-c-dsl-user-defined-functions-and-subroutines.sh
rrv ./reg-test/cases/case-c-dsl-user-defined-functions.sh
rrv ./reg-test/cases/case-c-dsl-user-defined-subroutines.sh
rrv ./reg-test/cases/case-c-format-conversion-keystroke-savers.sh
rrv ./reg-test/cases/case-c-het-pprint-input.sh
rrv ./reg-test/cases/case-c-implicit-header-csv-input.sh
rrv ./reg-test/cases/case-c-missing-final-lf.sh
rrv ./reg-test/cases/case-c-multi-character-ixs.sh

View file

@ -1,23 +1,19 @@
mention 'for full oosvar'
run_mlr --from $indir/abixy put '@o[1][2] = 7; for(k1,v in @*) {$x+=10;$y+=100}'
run_mlr --from $indir/abixy put '@o[1][2] = 7; for((k1),v in @*) {$x+=10;$y+=100}'
run_mlr --from $indir/abixy put '@o[1][2] = 7; for((k1,k2),v in @*) {$x+=10;$y+=100}'
run_mlr --from $indir/abixy put '@o[1][2] = 7; for((k1,k2,k3),v in @*) {$x+=10;$y+=100}'
mention 'for oosvar submap'
run_mlr --from $indir/abixy put '@o[1][2][3] = 7; for(k1,v in @o[1][2]) {$x+=10;$y+=100}'
run_mlr --from $indir/abixy put '@o[1][2][3] = 7; for((k1),v in @o[1][2]) {$x+=10;$y+=100}'
run_mlr --from $indir/abixy put '@o[1][2][3] = 7; for((k1,k2),v in @o[1][2]) {$x+=10;$y+=100}'
run_mlr --from $indir/abixy put '@o[1][2][3] = 7; for((k1,k2,k3),v in @o[1][2]) {$x+=10;$y+=100}'
mention 'for local'
run_mlr --from $indir/abixy put 'o[1][2] = 7; for(k1,v in o) {$x+=10;$y+=100}'
run_mlr --from $indir/abixy put 'o[1][2] = 7; for((k1),v in o) {$x+=10;$y+=100}'
run_mlr --from $indir/abixy put 'o[1][2] = 7; for((k1,k2),v in o) {$x+=10;$y+=100}'
run_mlr --from $indir/abixy put 'o[1][2] = 7; for((k1,k2,k3),v in o) {$x+=10;$y+=100}'
mention 'for map-literal'
run_mlr --from $indir/abixy put 'for(k1,v in {1:{2:7}}) {$x+=10;$y+=100}'
run_mlr --from $indir/abixy put 'for((k1),v in {1:{2:7}}) {$x+=10;$y+=100}'
run_mlr --from $indir/abixy put 'for((k1,k2),v in {1:{2:7}}) {$x+=10;$y+=100}'
run_mlr --from $indir/abixy put 'for((k1,k2,k3),v in {1:{2:7}}) {$x+=10;$y+=100}'

View file

@ -2,142 +2,93 @@
---------------------------------------------------------------- for full oosvar
mlr --from ./reg-test/input/abixy put @o[1][2] = 7; for(k1,v in @*) {$x+=10;$y+=100}
a=pan,b=pan,i=1,x=10.346790,y=100.726803
a=eks,b=pan,i=2,x=10.758680,y=100.522151
a=wye,b=wye,i=3,x=10.204603,y=100.338319
a=eks,b=wye,i=4,x=10.381399,y=100.134189
a=wye,b=pan,i=5,x=10.573289,y=100.863624
a=zee,b=pan,i=6,x=10.527126,y=100.493221
a=eks,b=zee,i=7,x=10.611784,y=100.187885
a=zee,b=wye,i=8,x=10.598554,y=100.976181
a=hat,b=wye,i=9,x=10.031442,y=100.749551
a=pan,b=wye,i=10,x=10.502626,y=100.952618
mlr --from ./reg-test/input/abixy put @o[1][2] = 7; for((k1),v in @*) {$x+=10;$y+=100}
a=pan,b=pan,i=1,x=10.346790,y=100.726803
a=eks,b=pan,i=2,x=10.758680,y=100.522151
a=wye,b=wye,i=3,x=10.204603,y=100.338319
a=eks,b=wye,i=4,x=10.381399,y=100.134189
a=wye,b=pan,i=5,x=10.573289,y=100.863624
a=zee,b=pan,i=6,x=10.527126,y=100.493221
a=eks,b=zee,i=7,x=10.611784,y=100.187885
a=zee,b=wye,i=8,x=10.598554,y=100.976181
a=hat,b=wye,i=9,x=10.031442,y=100.749551
a=pan,b=wye,i=10,x=10.502626,y=100.952618
a=pan,b=pan,i=1,x=10.346790144338083,y=100.72680286274345
a=eks,b=pan,i=2,x=10.758679964789964,y=100.52215110833347
a=wye,b=wye,i=3,x=10.204603305766303,y=100.33831852551664
a=eks,b=wye,i=4,x=10.38139939387114,y=100.1341887432843
a=wye,b=pan,i=5,x=10.573288919802,y=100.86362446990327
a=zee,b=pan,i=6,x=10.527126160091855,y=100.49322128674835
a=eks,b=zee,i=7,x=10.611784060567846,y=100.18788491911818
a=zee,b=wye,i=8,x=10.598554009106422,y=100.97618138569901
a=hat,b=wye,i=9,x=10.031441876460935,y=100.7495507603507
a=pan,b=wye,i=10,x=10.502626005541213,y=100.95261836029698
mlr --from ./reg-test/input/abixy put @o[1][2] = 7; for((k1,k2),v in @*) {$x+=10;$y+=100}
a=pan,b=pan,i=1,x=10.346790,y=100.726803
a=eks,b=pan,i=2,x=10.758680,y=100.522151
a=wye,b=wye,i=3,x=10.204603,y=100.338319
a=eks,b=wye,i=4,x=10.381399,y=100.134189
a=wye,b=pan,i=5,x=10.573289,y=100.863624
a=zee,b=pan,i=6,x=10.527126,y=100.493221
a=eks,b=zee,i=7,x=10.611784,y=100.187885
a=zee,b=wye,i=8,x=10.598554,y=100.976181
a=hat,b=wye,i=9,x=10.031442,y=100.749551
a=pan,b=wye,i=10,x=10.502626,y=100.952618
a=pan,b=pan,i=1,x=10.346790144338083,y=100.72680286274345
a=eks,b=pan,i=2,x=10.758679964789964,y=100.52215110833347
a=wye,b=wye,i=3,x=10.204603305766303,y=100.33831852551664
a=eks,b=wye,i=4,x=10.38139939387114,y=100.1341887432843
a=wye,b=pan,i=5,x=10.573288919802,y=100.86362446990327
a=zee,b=pan,i=6,x=10.527126160091855,y=100.49322128674835
a=eks,b=zee,i=7,x=10.611784060567846,y=100.18788491911818
a=zee,b=wye,i=8,x=10.598554009106422,y=100.97618138569901
a=hat,b=wye,i=9,x=10.031441876460935,y=100.7495507603507
a=pan,b=wye,i=10,x=10.502626005541213,y=100.95261836029698
mlr --from ./reg-test/input/abixy put @o[1][2] = 7; for((k1,k2,k3),v in @*) {$x+=10;$y+=100}
a=pan,b=pan,i=1,x=10.346790,y=100.726803
a=eks,b=pan,i=2,x=10.758680,y=100.522151
a=wye,b=wye,i=3,x=10.204603,y=100.338319
a=eks,b=wye,i=4,x=10.381399,y=100.134189
a=wye,b=pan,i=5,x=10.573289,y=100.863624
a=zee,b=pan,i=6,x=10.527126,y=100.493221
a=eks,b=zee,i=7,x=10.611784,y=100.187885
a=zee,b=wye,i=8,x=10.598554,y=100.976181
a=hat,b=wye,i=9,x=10.031442,y=100.749551
a=pan,b=wye,i=10,x=10.502626,y=100.952618
a=pan,b=pan,i=1,x=20.346790144338083,y=200.72680286274345
a=eks,b=pan,i=2,x=20.758679964789962,y=200.52215110833347
a=wye,b=wye,i=3,x=20.204603305766305,y=200.33831852551663
a=eks,b=wye,i=4,x=20.381399393871142,y=200.1341887432843
a=wye,b=pan,i=5,x=20.573288919802,y=200.86362446990327
a=zee,b=pan,i=6,x=20.527126160091854,y=200.49322128674834
a=eks,b=zee,i=7,x=20.611784060567846,y=200.18788491911818
a=zee,b=wye,i=8,x=20.598554009106422,y=200.97618138569902
a=hat,b=wye,i=9,x=20.031441876460935,y=200.7495507603507
a=pan,b=wye,i=10,x=20.502626005541213,y=200.95261836029698
---------------------------------------------------------------- for oosvar submap
mlr --from ./reg-test/input/abixy put @o[1][2][3] = 7; for(k1,v in @o[1][2]) {$x+=10;$y+=100}
a=pan,b=pan,i=1,x=10.346790,y=100.726803
a=eks,b=pan,i=2,x=10.758680,y=100.522151
a=wye,b=wye,i=3,x=10.204603,y=100.338319
a=eks,b=wye,i=4,x=10.381399,y=100.134189
a=wye,b=pan,i=5,x=10.573289,y=100.863624
a=zee,b=pan,i=6,x=10.527126,y=100.493221
a=eks,b=zee,i=7,x=10.611784,y=100.187885
a=zee,b=wye,i=8,x=10.598554,y=100.976181
a=hat,b=wye,i=9,x=10.031442,y=100.749551
a=pan,b=wye,i=10,x=10.502626,y=100.952618
mlr --from ./reg-test/input/abixy put @o[1][2][3] = 7; for((k1),v in @o[1][2]) {$x+=10;$y+=100}
a=pan,b=pan,i=1,x=10.346790,y=100.726803
a=eks,b=pan,i=2,x=10.758680,y=100.522151
a=wye,b=wye,i=3,x=10.204603,y=100.338319
a=eks,b=wye,i=4,x=10.381399,y=100.134189
a=wye,b=pan,i=5,x=10.573289,y=100.863624
a=zee,b=pan,i=6,x=10.527126,y=100.493221
a=eks,b=zee,i=7,x=10.611784,y=100.187885
a=zee,b=wye,i=8,x=10.598554,y=100.976181
a=hat,b=wye,i=9,x=10.031442,y=100.749551
a=pan,b=wye,i=10,x=10.502626,y=100.952618
a=pan,b=pan,i=1,x=30.346790144338083,y=300.72680286274345
a=eks,b=pan,i=2,x=30.758679964789962,y=300.52215110833345
a=wye,b=wye,i=3,x=30.204603305766305,y=300.3383185255166
a=eks,b=wye,i=4,x=30.381399393871142,y=300.1341887432843
a=wye,b=pan,i=5,x=30.573288919802,y=300.86362446990324
a=zee,b=pan,i=6,x=30.527126160091854,y=300.49322128674834
a=eks,b=zee,i=7,x=30.611784060567846,y=300.1878849191182
a=zee,b=wye,i=8,x=30.598554009106422,y=300.976181385699
a=hat,b=wye,i=9,x=30.031441876460935,y=300.7495507603507
a=pan,b=wye,i=10,x=30.502626005541213,y=300.952618360297
mlr --from ./reg-test/input/abixy put @o[1][2][3] = 7; for((k1,k2),v in @o[1][2]) {$x+=10;$y+=100}
a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533
a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797
a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776
a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463
a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729
a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697
a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694
a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006
a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059
a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864
Exit status was 1; expected 0.
mlr --from ./reg-test/input/abixy put @o[1][2][3] = 7; for((k1,k2,k3),v in @o[1][2]) {$x+=10;$y+=100}
a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533
a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797
a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776
a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463
a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729
a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697
a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694
a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006
a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059
a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864
Exit status was 1; expected 0.
---------------------------------------------------------------- for local
mlr --from ./reg-test/input/abixy put o[1][2] = 7; for(k1,v in o) {$x+=10;$y+=100}
a=pan,b=pan,i=1,x=10.346790,y=100.726803
a=eks,b=pan,i=2,x=10.758680,y=100.522151
a=wye,b=wye,i=3,x=10.204603,y=100.338319
a=eks,b=wye,i=4,x=10.381399,y=100.134189
a=wye,b=pan,i=5,x=10.573289,y=100.863624
a=zee,b=pan,i=6,x=10.527126,y=100.493221
a=eks,b=zee,i=7,x=10.611784,y=100.187885
a=zee,b=wye,i=8,x=10.598554,y=100.976181
a=hat,b=wye,i=9,x=10.031442,y=100.749551
a=pan,b=wye,i=10,x=10.502626,y=100.952618
mlr --from ./reg-test/input/abixy put o[1][2] = 7; for((k1),v in o) {$x+=10;$y+=100}
a=pan,b=pan,i=1,x=10.346790,y=100.726803
a=eks,b=pan,i=2,x=10.758680,y=100.522151
a=wye,b=wye,i=3,x=10.204603,y=100.338319
a=eks,b=wye,i=4,x=10.381399,y=100.134189
a=wye,b=pan,i=5,x=10.573289,y=100.863624
a=zee,b=pan,i=6,x=10.527126,y=100.493221
a=eks,b=zee,i=7,x=10.611784,y=100.187885
a=zee,b=wye,i=8,x=10.598554,y=100.976181
a=hat,b=wye,i=9,x=10.031442,y=100.749551
a=pan,b=wye,i=10,x=10.502626,y=100.952618
a=pan,b=pan,i=1,x=10.346790144338083,y=100.72680286274345
a=eks,b=pan,i=2,x=10.758679964789964,y=100.52215110833347
a=wye,b=wye,i=3,x=10.204603305766303,y=100.33831852551664
a=eks,b=wye,i=4,x=10.38139939387114,y=100.1341887432843
a=wye,b=pan,i=5,x=10.573288919802,y=100.86362446990327
a=zee,b=pan,i=6,x=10.527126160091855,y=100.49322128674835
a=eks,b=zee,i=7,x=10.611784060567846,y=100.18788491911818
a=zee,b=wye,i=8,x=10.598554009106422,y=100.97618138569901
a=hat,b=wye,i=9,x=10.031441876460935,y=100.7495507603507
a=pan,b=wye,i=10,x=10.502626005541213,y=100.95261836029698
mlr --from ./reg-test/input/abixy put o[1][2] = 7; for((k1,k2),v in o) {$x+=10;$y+=100}
a=pan,b=pan,i=1,x=10.346790,y=100.726803
a=eks,b=pan,i=2,x=10.758680,y=100.522151
a=wye,b=wye,i=3,x=10.204603,y=100.338319
a=eks,b=wye,i=4,x=10.381399,y=100.134189
a=wye,b=pan,i=5,x=10.573289,y=100.863624
a=zee,b=pan,i=6,x=10.527126,y=100.493221
a=eks,b=zee,i=7,x=10.611784,y=100.187885
a=zee,b=wye,i=8,x=10.598554,y=100.976181
a=hat,b=wye,i=9,x=10.031442,y=100.749551
a=pan,b=wye,i=10,x=10.502626,y=100.952618
a=pan,b=pan,i=1,x=20.346790144338083,y=200.72680286274345
a=eks,b=pan,i=2,x=20.758679964789962,y=200.52215110833347
a=wye,b=wye,i=3,x=20.204603305766305,y=200.33831852551663
a=eks,b=wye,i=4,x=20.381399393871142,y=200.1341887432843
a=wye,b=pan,i=5,x=20.573288919802,y=200.86362446990327
a=zee,b=pan,i=6,x=20.527126160091854,y=200.49322128674834
a=eks,b=zee,i=7,x=20.611784060567846,y=200.18788491911818
a=zee,b=wye,i=8,x=20.598554009106422,y=200.97618138569902
a=hat,b=wye,i=9,x=20.031441876460935,y=200.7495507603507
a=pan,b=wye,i=10,x=20.502626005541213,y=200.95261836029698
mlr --from ./reg-test/input/abixy put o[1][2] = 7; for((k1,k2,k3),v in o) {$x+=10;$y+=100}
Exit status was 1; expected 0.
---------------------------------------------------------------- for map-literal
mlr --from ./reg-test/input/abixy put for(k1,v in {1:{2:7}}) {$x+=10;$y+=100}
a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533
a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797
a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776
@ -149,43 +100,17 @@ a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006
a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059
a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864
---------------------------------------------------------------- for map-literal
mlr --from ./reg-test/input/abixy put for(k1,v in {1:{2:7}}) {$x+=10;$y+=100}
a=pan,b=pan,i=1,x=10.346790,y=100.726803
a=eks,b=pan,i=2,x=10.758680,y=100.522151
a=wye,b=wye,i=3,x=10.204603,y=100.338319
a=eks,b=wye,i=4,x=10.381399,y=100.134189
a=wye,b=pan,i=5,x=10.573289,y=100.863624
a=zee,b=pan,i=6,x=10.527126,y=100.493221
a=eks,b=zee,i=7,x=10.611784,y=100.187885
a=zee,b=wye,i=8,x=10.598554,y=100.976181
a=hat,b=wye,i=9,x=10.031442,y=100.749551
a=pan,b=wye,i=10,x=10.502626,y=100.952618
mlr --from ./reg-test/input/abixy put for((k1),v in {1:{2:7}}) {$x+=10;$y+=100}
a=pan,b=pan,i=1,x=10.346790,y=100.726803
a=eks,b=pan,i=2,x=10.758680,y=100.522151
a=wye,b=wye,i=3,x=10.204603,y=100.338319
a=eks,b=wye,i=4,x=10.381399,y=100.134189
a=wye,b=pan,i=5,x=10.573289,y=100.863624
a=zee,b=pan,i=6,x=10.527126,y=100.493221
a=eks,b=zee,i=7,x=10.611784,y=100.187885
a=zee,b=wye,i=8,x=10.598554,y=100.976181
a=hat,b=wye,i=9,x=10.031442,y=100.749551
a=pan,b=wye,i=10,x=10.502626,y=100.952618
mlr --from ./reg-test/input/abixy put for((k1,k2),v in {1:{2:7}}) {$x+=10;$y+=100}
a=pan,b=pan,i=1,x=10.346790,y=100.726803
a=eks,b=pan,i=2,x=10.758680,y=100.522151
a=wye,b=wye,i=3,x=10.204603,y=100.338319
a=eks,b=wye,i=4,x=10.381399,y=100.134189
a=wye,b=pan,i=5,x=10.573289,y=100.863624
a=zee,b=pan,i=6,x=10.527126,y=100.493221
a=eks,b=zee,i=7,x=10.611784,y=100.187885
a=zee,b=wye,i=8,x=10.598554,y=100.976181
a=hat,b=wye,i=9,x=10.031442,y=100.749551
a=pan,b=wye,i=10,x=10.502626,y=100.952618
a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533
a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797
a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776
a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463
a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729
a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697
a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694
a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006
a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059
a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864
mlr --from ./reg-test/input/abixy put for((k1,k2,k3),v in {1:{2:7}}) {$x+=10;$y+=100}
a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533

View file

@ -703,7 +703,11 @@ func (this *RootNode) BuildTripleForLoopNode(astNode *dsl.ASTNode) (*TripleForLo
// empty is true
if len(continuationExpressionASTNode.Children) == 1 {
bareBooleanASTNode := continuationExpressionASTNode.Children[0]
lib.InternalCodingErrorIf(bareBooleanASTNode.Type != dsl.NodeTypeBareBoolean)
if bareBooleanASTNode.Type != dsl.NodeTypeBareBoolean {
return nil, errors.New(
"Miller: the triple-for continutation statement must be a bare boolean.",
)
}
lib.InternalCodingErrorIf(len(bareBooleanASTNode.Children) != 1)
continuationExpressionNode, err = this.BuildEvaluableNode(bareBooleanASTNode.Children[0])