mirror of
https://github.com/johnkerl/miller.git
synced 2026-07-22 15:37:59 +00:00
break/continue UT iterate
This commit is contained in:
parent
e6847dfc01
commit
dfec9033f2
3 changed files with 510 additions and 2 deletions
|
|
@ -1629,10 +1629,10 @@ static void handle_for_srec(
|
|||
// xxx funcptrize
|
||||
handle_statement_list_with_break_continue(pnode->pblock_statements, pvars, pcst_outputs);
|
||||
if (pvars->loop_broken_or_continued & LOOP_BROKEN) {
|
||||
pvars->loop_broken_or_continued |= ~LOOP_BROKEN;
|
||||
pvars->loop_broken_or_continued &= ~LOOP_BROKEN;
|
||||
break;
|
||||
} else if (pvars->loop_broken_or_continued & LOOP_CONTINUED) {
|
||||
pvars->loop_broken_or_continued |= ~LOOP_CONTINUED;
|
||||
pvars->loop_broken_or_continued &= ~LOOP_CONTINUED;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15912,6 +15912,426 @@ mean hat cat 0.503701
|
|||
mean hat dog 0.475824
|
||||
|
||||
|
||||
================================================================
|
||||
BREAK/CONTINUE
|
||||
|
||||
mlr --opprint --from ./reg_test/input/abixy put -q
|
||||
for (k,v in $*) {
|
||||
@logging1[NR][k] = v;
|
||||
if (k == "x") {
|
||||
break;
|
||||
}
|
||||
}
|
||||
end {
|
||||
emitp @logging1, "NR", "k";
|
||||
}
|
||||
|
||||
NR k logging1
|
||||
1 a pan
|
||||
1 b pan
|
||||
1 i 1
|
||||
1 x 0.3467901443380824
|
||||
2 a eks
|
||||
2 b pan
|
||||
2 i 2
|
||||
2 x 0.7586799647899636
|
||||
3 a wye
|
||||
3 b wye
|
||||
3 i 3
|
||||
3 x 0.20460330576630303
|
||||
4 a eks
|
||||
4 b wye
|
||||
4 i 4
|
||||
4 x 0.38139939387114097
|
||||
5 a wye
|
||||
5 b pan
|
||||
5 i 5
|
||||
5 x 0.5732889198020006
|
||||
6 a zee
|
||||
6 b pan
|
||||
6 i 6
|
||||
6 x 0.5271261600918548
|
||||
7 a eks
|
||||
7 b zee
|
||||
7 i 7
|
||||
7 x 0.6117840605678454
|
||||
8 a zee
|
||||
8 b wye
|
||||
8 i 8
|
||||
8 x 0.5985540091064224
|
||||
9 a hat
|
||||
9 b wye
|
||||
9 i 9
|
||||
9 x 0.03144187646093577
|
||||
10 a pan
|
||||
10 b wye
|
||||
10 i 10
|
||||
10 x 0.5026260055412137
|
||||
|
||||
mlr --opprint --from ./reg_test/input/abixy put -q
|
||||
for (k,v in $*) {
|
||||
if (k == "x") {
|
||||
break;
|
||||
}
|
||||
@logging2[NR][k] = v;
|
||||
}
|
||||
end {
|
||||
emitp @logging2, "NR", "k";
|
||||
}
|
||||
|
||||
NR k logging2
|
||||
1 a pan
|
||||
1 b pan
|
||||
1 i 1
|
||||
2 a eks
|
||||
2 b pan
|
||||
2 i 2
|
||||
3 a wye
|
||||
3 b wye
|
||||
3 i 3
|
||||
4 a eks
|
||||
4 b wye
|
||||
4 i 4
|
||||
5 a wye
|
||||
5 b pan
|
||||
5 i 5
|
||||
6 a zee
|
||||
6 b pan
|
||||
6 i 6
|
||||
7 a eks
|
||||
7 b zee
|
||||
7 i 7
|
||||
8 a zee
|
||||
8 b wye
|
||||
8 i 8
|
||||
9 a hat
|
||||
9 b wye
|
||||
9 i 9
|
||||
10 a pan
|
||||
10 b wye
|
||||
10 i 10
|
||||
|
||||
mlr --opprint --from ./reg_test/input/abixy put -q
|
||||
for (k,v in $*) {
|
||||
@logging3[NR][k] = v;
|
||||
if (k == "x") {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
end {
|
||||
emitp @logging3, "NR", "k";
|
||||
}
|
||||
|
||||
NR k logging3
|
||||
1 a pan
|
||||
1 b pan
|
||||
1 i 1
|
||||
1 x 0.3467901443380824
|
||||
1 y 0.7268028627434533
|
||||
2 a eks
|
||||
2 b pan
|
||||
2 i 2
|
||||
2 x 0.7586799647899636
|
||||
2 y 0.5221511083334797
|
||||
3 a wye
|
||||
3 b wye
|
||||
3 i 3
|
||||
3 x 0.20460330576630303
|
||||
3 y 0.33831852551664776
|
||||
4 a eks
|
||||
4 b wye
|
||||
4 i 4
|
||||
4 x 0.38139939387114097
|
||||
4 y 0.13418874328430463
|
||||
5 a wye
|
||||
5 b pan
|
||||
5 i 5
|
||||
5 x 0.5732889198020006
|
||||
5 y 0.8636244699032729
|
||||
6 a zee
|
||||
6 b pan
|
||||
6 i 6
|
||||
6 x 0.5271261600918548
|
||||
6 y 0.49322128674835697
|
||||
7 a eks
|
||||
7 b zee
|
||||
7 i 7
|
||||
7 x 0.6117840605678454
|
||||
7 y 0.1878849191181694
|
||||
8 a zee
|
||||
8 b wye
|
||||
8 i 8
|
||||
8 x 0.5985540091064224
|
||||
8 y 0.976181385699006
|
||||
9 a hat
|
||||
9 b wye
|
||||
9 i 9
|
||||
9 x 0.03144187646093577
|
||||
9 y 0.7495507603507059
|
||||
10 a pan
|
||||
10 b wye
|
||||
10 i 10
|
||||
10 x 0.5026260055412137
|
||||
10 y 0.9526183602969864
|
||||
|
||||
mlr --opprint --from ./reg_test/input/abixy put -q
|
||||
for (k,v in $*) {
|
||||
if (k == "x") {
|
||||
continue;
|
||||
}
|
||||
@logging4[NR][k] = v;
|
||||
}
|
||||
end {
|
||||
emitp @logging4, "NR", "k"
|
||||
}
|
||||
|
||||
NR k logging4
|
||||
1 a pan
|
||||
1 b pan
|
||||
1 i 1
|
||||
1 y 0.7268028627434533
|
||||
2 a eks
|
||||
2 b pan
|
||||
2 i 2
|
||||
2 y 0.5221511083334797
|
||||
3 a wye
|
||||
3 b wye
|
||||
3 i 3
|
||||
3 y 0.33831852551664776
|
||||
4 a eks
|
||||
4 b wye
|
||||
4 i 4
|
||||
4 y 0.13418874328430463
|
||||
5 a wye
|
||||
5 b pan
|
||||
5 i 5
|
||||
5 y 0.8636244699032729
|
||||
6 a zee
|
||||
6 b pan
|
||||
6 i 6
|
||||
6 y 0.49322128674835697
|
||||
7 a eks
|
||||
7 b zee
|
||||
7 i 7
|
||||
7 y 0.1878849191181694
|
||||
8 a zee
|
||||
8 b wye
|
||||
8 i 8
|
||||
8 y 0.976181385699006
|
||||
9 a hat
|
||||
9 b wye
|
||||
9 i 9
|
||||
9 y 0.7495507603507059
|
||||
10 a pan
|
||||
10 b wye
|
||||
10 i 10
|
||||
10 y 0.9526183602969864
|
||||
|
||||
mlr --opprint --from ./reg_test/input/abixy put -q
|
||||
for (k,v in $*) {
|
||||
@logging1[NR][k] = v;
|
||||
if (k == "x") {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (k,v in $*) {
|
||||
if (k == "x") {
|
||||
break;
|
||||
}
|
||||
@logging2[NR][k] = v;
|
||||
}
|
||||
|
||||
for (k,v in $*) {
|
||||
@logging3[NR][k] = v;
|
||||
if (k == "x") {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
for (k,v in $*) {
|
||||
if (k == "x") {
|
||||
continue;
|
||||
}
|
||||
@logging4[NR][k] = v;
|
||||
}
|
||||
|
||||
end {
|
||||
emitp @logging1, "NR", "k";
|
||||
emitp @logging2, "NR", "k";
|
||||
emitp @logging3, "NR", "k";
|
||||
emitp @logging4, "NR", "k"
|
||||
}
|
||||
|
||||
NR k logging1
|
||||
1 a pan
|
||||
1 b pan
|
||||
1 i 1
|
||||
1 x 0.3467901443380824
|
||||
2 a eks
|
||||
2 b pan
|
||||
2 i 2
|
||||
2 x 0.7586799647899636
|
||||
3 a wye
|
||||
3 b wye
|
||||
3 i 3
|
||||
3 x 0.20460330576630303
|
||||
4 a eks
|
||||
4 b wye
|
||||
4 i 4
|
||||
4 x 0.38139939387114097
|
||||
5 a wye
|
||||
5 b pan
|
||||
5 i 5
|
||||
5 x 0.5732889198020006
|
||||
6 a zee
|
||||
6 b pan
|
||||
6 i 6
|
||||
6 x 0.5271261600918548
|
||||
7 a eks
|
||||
7 b zee
|
||||
7 i 7
|
||||
7 x 0.6117840605678454
|
||||
8 a zee
|
||||
8 b wye
|
||||
8 i 8
|
||||
8 x 0.5985540091064224
|
||||
9 a hat
|
||||
9 b wye
|
||||
9 i 9
|
||||
9 x 0.03144187646093577
|
||||
10 a pan
|
||||
10 b wye
|
||||
10 i 10
|
||||
10 x 0.5026260055412137
|
||||
|
||||
NR k logging2
|
||||
1 a pan
|
||||
1 b pan
|
||||
1 i 1
|
||||
2 a eks
|
||||
2 b pan
|
||||
2 i 2
|
||||
3 a wye
|
||||
3 b wye
|
||||
3 i 3
|
||||
4 a eks
|
||||
4 b wye
|
||||
4 i 4
|
||||
5 a wye
|
||||
5 b pan
|
||||
5 i 5
|
||||
6 a zee
|
||||
6 b pan
|
||||
6 i 6
|
||||
7 a eks
|
||||
7 b zee
|
||||
7 i 7
|
||||
8 a zee
|
||||
8 b wye
|
||||
8 i 8
|
||||
9 a hat
|
||||
9 b wye
|
||||
9 i 9
|
||||
10 a pan
|
||||
10 b wye
|
||||
10 i 10
|
||||
|
||||
NR k logging3
|
||||
1 a pan
|
||||
1 b pan
|
||||
1 i 1
|
||||
1 x 0.3467901443380824
|
||||
1 y 0.7268028627434533
|
||||
2 a eks
|
||||
2 b pan
|
||||
2 i 2
|
||||
2 x 0.7586799647899636
|
||||
2 y 0.5221511083334797
|
||||
3 a wye
|
||||
3 b wye
|
||||
3 i 3
|
||||
3 x 0.20460330576630303
|
||||
3 y 0.33831852551664776
|
||||
4 a eks
|
||||
4 b wye
|
||||
4 i 4
|
||||
4 x 0.38139939387114097
|
||||
4 y 0.13418874328430463
|
||||
5 a wye
|
||||
5 b pan
|
||||
5 i 5
|
||||
5 x 0.5732889198020006
|
||||
5 y 0.8636244699032729
|
||||
6 a zee
|
||||
6 b pan
|
||||
6 i 6
|
||||
6 x 0.5271261600918548
|
||||
6 y 0.49322128674835697
|
||||
7 a eks
|
||||
7 b zee
|
||||
7 i 7
|
||||
7 x 0.6117840605678454
|
||||
7 y 0.1878849191181694
|
||||
8 a zee
|
||||
8 b wye
|
||||
8 i 8
|
||||
8 x 0.5985540091064224
|
||||
8 y 0.976181385699006
|
||||
9 a hat
|
||||
9 b wye
|
||||
9 i 9
|
||||
9 x 0.03144187646093577
|
||||
9 y 0.7495507603507059
|
||||
10 a pan
|
||||
10 b wye
|
||||
10 i 10
|
||||
10 x 0.5026260055412137
|
||||
10 y 0.9526183602969864
|
||||
|
||||
NR k logging4
|
||||
1 a pan
|
||||
1 b pan
|
||||
1 i 1
|
||||
1 y 0.7268028627434533
|
||||
2 a eks
|
||||
2 b pan
|
||||
2 i 2
|
||||
2 y 0.5221511083334797
|
||||
3 a wye
|
||||
3 b wye
|
||||
3 i 3
|
||||
3 y 0.33831852551664776
|
||||
4 a eks
|
||||
4 b wye
|
||||
4 i 4
|
||||
4 y 0.13418874328430463
|
||||
5 a wye
|
||||
5 b pan
|
||||
5 i 5
|
||||
5 y 0.8636244699032729
|
||||
6 a zee
|
||||
6 b pan
|
||||
6 i 6
|
||||
6 y 0.49322128674835697
|
||||
7 a eks
|
||||
7 b zee
|
||||
7 i 7
|
||||
7 y 0.1878849191181694
|
||||
8 a zee
|
||||
8 b wye
|
||||
8 i 8
|
||||
8 y 0.976181385699006
|
||||
9 a hat
|
||||
9 b wye
|
||||
9 i 9
|
||||
9 y 0.7495507603507059
|
||||
10 a pan
|
||||
10 b wye
|
||||
10 i 10
|
||||
10 y 0.9526183602969864
|
||||
|
||||
|
||||
================================================================
|
||||
DSL CONTEXT-SPECIFIC VALIDATION
|
||||
|
||||
|
|
|
|||
|
|
@ -1706,6 +1706,94 @@ run_mlr --opprint --from $indir/abixy-wide put -q '
|
|||
}
|
||||
'
|
||||
|
||||
# ================================================================
|
||||
announce BREAK/CONTINUE
|
||||
|
||||
run_mlr --opprint --from $indir/abixy put -q '
|
||||
for (k,v in $*) {
|
||||
@logging1[NR][k] = v;
|
||||
if (k == "x") {
|
||||
break;
|
||||
}
|
||||
}
|
||||
end {
|
||||
emitp @logging1, "NR", "k";
|
||||
}
|
||||
'
|
||||
|
||||
run_mlr --opprint --from $indir/abixy put -q '
|
||||
for (k,v in $*) {
|
||||
if (k == "x") {
|
||||
break;
|
||||
}
|
||||
@logging2[NR][k] = v;
|
||||
}
|
||||
end {
|
||||
emitp @logging2, "NR", "k";
|
||||
}
|
||||
'
|
||||
|
||||
run_mlr --opprint --from $indir/abixy put -q '
|
||||
for (k,v in $*) {
|
||||
@logging3[NR][k] = v;
|
||||
if (k == "x") {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
end {
|
||||
emitp @logging3, "NR", "k";
|
||||
}
|
||||
'
|
||||
|
||||
run_mlr --opprint --from $indir/abixy put -q '
|
||||
for (k,v in $*) {
|
||||
if (k == "x") {
|
||||
continue;
|
||||
}
|
||||
@logging4[NR][k] = v;
|
||||
}
|
||||
end {
|
||||
emitp @logging4, "NR", "k"
|
||||
}
|
||||
'
|
||||
|
||||
run_mlr --opprint --from $indir/abixy put -q '
|
||||
for (k,v in $*) {
|
||||
@logging1[NR][k] = v;
|
||||
if (k == "x") {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (k,v in $*) {
|
||||
if (k == "x") {
|
||||
break;
|
||||
}
|
||||
@logging2[NR][k] = v;
|
||||
}
|
||||
|
||||
for (k,v in $*) {
|
||||
@logging3[NR][k] = v;
|
||||
if (k == "x") {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
for (k,v in $*) {
|
||||
if (k == "x") {
|
||||
continue;
|
||||
}
|
||||
@logging4[NR][k] = v;
|
||||
}
|
||||
|
||||
end {
|
||||
emitp @logging1, "NR", "k";
|
||||
emitp @logging2, "NR", "k";
|
||||
emitp @logging3, "NR", "k";
|
||||
emitp @logging4, "NR", "k"
|
||||
}
|
||||
'
|
||||
|
||||
# ================================================================
|
||||
announce DSL CONTEXT-SPECIFIC VALIDATION
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue