mirror of
https://github.com/johnkerl/miller.git
synced 2026-07-22 07:30:43 +00:00
oosvar/emit/unset/$* UT iterate
This commit is contained in:
parent
0ff828504c
commit
d485125c21
3 changed files with 368 additions and 4 deletions
|
|
@ -121,6 +121,8 @@ md_cond_block_statements(A) ::= md_cond_block_statements(B) MD_TOKEN_SEMICOLON m
|
|||
|
||||
md_cond_block_statement ::= md_cond_block_srec_assignment.
|
||||
md_cond_block_statement ::= md_cond_block_oosvar_assignment.
|
||||
md_cond_block_statement ::= md_cond_block_oosvar_from_full_srec_assignment.
|
||||
md_cond_block_statement ::= md_cond_block_full_srec_from_oosvar_assignment.
|
||||
md_cond_block_statement ::= md_cond_block_emitf.
|
||||
md_cond_block_statement ::= md_cond_block_emit.
|
||||
md_cond_block_statement ::= md_cond_block_dump.
|
||||
|
|
@ -209,6 +211,12 @@ md_cond_block_srec_assignment(A) ::= md_srec_assignment(B). {
|
|||
md_cond_block_oosvar_assignment(A) ::= md_oosvar_assignment(B). {
|
||||
A = B;
|
||||
}
|
||||
md_cond_block_oosvar_from_full_srec_assignment(A) ::= md_oosvar_from_full_srec_assignment(B). {
|
||||
A = B;
|
||||
}
|
||||
md_cond_block_full_srec_from_oosvar_assignment(A) ::= md_full_srec_from_oosvar_assignment(B). {
|
||||
A = B;
|
||||
}
|
||||
md_cond_block_emitf(A) ::= md_emitf(B). {
|
||||
A = B;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13519,6 +13519,74 @@ a=hat,b=wye,sum=
|
|||
================================================================
|
||||
OOSVAR-FROM-SREC ASSIGNMENT
|
||||
|
||||
mlr put -v @v = $* /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (1):
|
||||
= (oosvar_from_full_srec_assignment):
|
||||
v (oosvar_name).
|
||||
$* (full_srec).
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put -v @v[1] = $* /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (1):
|
||||
= (oosvar_from_full_srec_assignment):
|
||||
[] (oosvar_level_key):
|
||||
v (oosvar_name).
|
||||
1 (strnum_literal).
|
||||
$* (full_srec).
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put -v @v[$2] = $* /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (1):
|
||||
= (oosvar_from_full_srec_assignment):
|
||||
[] (oosvar_level_key):
|
||||
v (oosvar_name).
|
||||
2 (field_name).
|
||||
$* (full_srec).
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put -v NR == 3 {@v = $*} /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (1):
|
||||
cond (conditional_block):
|
||||
== (operator):
|
||||
NR (context_variable).
|
||||
3 (strnum_literal).
|
||||
= (oosvar_from_full_srec_assignment):
|
||||
v (oosvar_name).
|
||||
$* (full_srec).
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put -v NR == 3 {@v[1] = $*} /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (1):
|
||||
cond (conditional_block):
|
||||
== (operator):
|
||||
NR (context_variable).
|
||||
3 (strnum_literal).
|
||||
= (oosvar_from_full_srec_assignment):
|
||||
[] (oosvar_level_key):
|
||||
v (oosvar_name).
|
||||
1 (strnum_literal).
|
||||
$* (full_srec).
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put -v NR == 3 {@v[$2] = $*} /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (1):
|
||||
cond (conditional_block):
|
||||
== (operator):
|
||||
NR (context_variable).
|
||||
3 (strnum_literal).
|
||||
= (oosvar_from_full_srec_assignment):
|
||||
[] (oosvar_level_key):
|
||||
v (oosvar_name).
|
||||
2 (field_name).
|
||||
$* (full_srec).
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr --oxtab put -q @v = $*; end {emit @v } ./reg_test/input/abixy-het
|
||||
v:a pan
|
||||
v:b wye
|
||||
|
|
@ -13730,10 +13798,266 @@ v:yyy 0.976181385699006
|
|||
================================================================
|
||||
SREC-FROM-OOSVAR ASSIGNMENT
|
||||
|
||||
mlr put -v $* = @v /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (1):
|
||||
= (full_srec_from_oosvar_assignment):
|
||||
$* (full_srec).
|
||||
v (oosvar_name).
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put -v $* = @v[1] /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (1):
|
||||
= (full_srec_from_oosvar_assignment):
|
||||
$* (full_srec).
|
||||
[] (oosvar_level_key):
|
||||
v (oosvar_name).
|
||||
1 (strnum_literal).
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put -v $* = @v[$2] /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (1):
|
||||
= (full_srec_from_oosvar_assignment):
|
||||
$* (full_srec).
|
||||
[] (oosvar_level_key):
|
||||
v (oosvar_name).
|
||||
2 (field_name).
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put -v NR == 3 {$* = @v } /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (1):
|
||||
cond (conditional_block):
|
||||
== (operator):
|
||||
NR (context_variable).
|
||||
3 (strnum_literal).
|
||||
= (full_srec_from_oosvar_assignment):
|
||||
$* (full_srec).
|
||||
v (oosvar_name).
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put -v NR == 3 {$* = @v[1] } /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (1):
|
||||
cond (conditional_block):
|
||||
== (operator):
|
||||
NR (context_variable).
|
||||
3 (strnum_literal).
|
||||
= (full_srec_from_oosvar_assignment):
|
||||
$* (full_srec).
|
||||
[] (oosvar_level_key):
|
||||
v (oosvar_name).
|
||||
1 (strnum_literal).
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put -v NR == 3 {$* = @v[$2]} /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (1):
|
||||
cond (conditional_block):
|
||||
== (operator):
|
||||
NR (context_variable).
|
||||
3 (strnum_literal).
|
||||
= (full_srec_from_oosvar_assignment):
|
||||
$* (full_srec).
|
||||
[] (oosvar_level_key):
|
||||
v (oosvar_name).
|
||||
2 (field_name).
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put @v[NR] = $a; NR == 7 { @v = $*} ; $* = @v ./reg_test/input/abixy-het
|
||||
1=pan
|
||||
1=pan,2=eks
|
||||
1=pan,2=eks,3=
|
||||
1=pan,2=eks,3=,4=eks
|
||||
1=pan,2=eks,3=,4=eks,5=wye
|
||||
1=pan,2=eks,3=,4=eks,5=wye,6=zee
|
||||
1=pan,2=eks,3=,4=eks,5=wye,6=zee,7=eks,a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694
|
||||
1=pan,2=eks,3=,4=eks,5=wye,6=zee,7=eks,a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,8=zee
|
||||
1=pan,2=eks,3=,4=eks,5=wye,6=zee,7=eks,a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,8=zee,9=
|
||||
1=pan,2=eks,3=,4=eks,5=wye,6=zee,7=eks,a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,8=zee,9=,10=pan
|
||||
|
||||
|
||||
================================================================
|
||||
OOSVAR-FROM-OOSVAR ASSIGNMENT
|
||||
|
||||
mlr put -v @u = @v /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (1):
|
||||
= (oosvar_assignment):
|
||||
u (oosvar_name).
|
||||
v (oosvar_name).
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put -v @u = @v[1] /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (1):
|
||||
= (oosvar_assignment):
|
||||
u (oosvar_name).
|
||||
[] (oosvar_level_key):
|
||||
v (oosvar_name).
|
||||
1 (strnum_literal).
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put -v @u[2] = @v /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (1):
|
||||
= (oosvar_assignment):
|
||||
[] (oosvar_level_key):
|
||||
u (oosvar_name).
|
||||
2 (strnum_literal).
|
||||
v (oosvar_name).
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put -v @u[2] = @v[1] /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (1):
|
||||
= (oosvar_assignment):
|
||||
[] (oosvar_level_key):
|
||||
u (oosvar_name).
|
||||
2 (strnum_literal).
|
||||
[] (oosvar_level_key):
|
||||
v (oosvar_name).
|
||||
1 (strnum_literal).
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put -v begin { @u = @v } /dev/null
|
||||
AST BEGIN STATEMENTS (1):
|
||||
= (oosvar_assignment):
|
||||
u (oosvar_name).
|
||||
v (oosvar_name).
|
||||
AST MAIN STATEMENTS (0):
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put -v begin { @u = @v[1] } /dev/null
|
||||
AST BEGIN STATEMENTS (1):
|
||||
= (oosvar_assignment):
|
||||
u (oosvar_name).
|
||||
[] (oosvar_level_key):
|
||||
v (oosvar_name).
|
||||
1 (strnum_literal).
|
||||
AST MAIN STATEMENTS (0):
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put -v begin { @u[2] = @v } /dev/null
|
||||
AST BEGIN STATEMENTS (1):
|
||||
= (oosvar_assignment):
|
||||
[] (oosvar_level_key):
|
||||
u (oosvar_name).
|
||||
2 (strnum_literal).
|
||||
v (oosvar_name).
|
||||
AST MAIN STATEMENTS (0):
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put -v begin { @u[2] = @v[1] } /dev/null
|
||||
AST BEGIN STATEMENTS (1):
|
||||
= (oosvar_assignment):
|
||||
[] (oosvar_level_key):
|
||||
u (oosvar_name).
|
||||
2 (strnum_literal).
|
||||
[] (oosvar_level_key):
|
||||
v (oosvar_name).
|
||||
1 (strnum_literal).
|
||||
AST MAIN STATEMENTS (0):
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put -v NR == 3 { @u = @v } /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (1):
|
||||
cond (conditional_block):
|
||||
== (operator):
|
||||
NR (context_variable).
|
||||
3 (strnum_literal).
|
||||
= (oosvar_assignment):
|
||||
u (oosvar_name).
|
||||
v (oosvar_name).
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put -v NR == 3 { @u = @v[1] } /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (1):
|
||||
cond (conditional_block):
|
||||
== (operator):
|
||||
NR (context_variable).
|
||||
3 (strnum_literal).
|
||||
= (oosvar_assignment):
|
||||
u (oosvar_name).
|
||||
[] (oosvar_level_key):
|
||||
v (oosvar_name).
|
||||
1 (strnum_literal).
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put -v NR == 3 { @u[2] = @v } /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (1):
|
||||
cond (conditional_block):
|
||||
== (operator):
|
||||
NR (context_variable).
|
||||
3 (strnum_literal).
|
||||
= (oosvar_assignment):
|
||||
[] (oosvar_level_key):
|
||||
u (oosvar_name).
|
||||
2 (strnum_literal).
|
||||
v (oosvar_name).
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put -v NR == 3 { @u[2] = @v[1] } /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (1):
|
||||
cond (conditional_block):
|
||||
== (operator):
|
||||
NR (context_variable).
|
||||
3 (strnum_literal).
|
||||
= (oosvar_assignment):
|
||||
[] (oosvar_level_key):
|
||||
u (oosvar_name).
|
||||
2 (strnum_literal).
|
||||
[] (oosvar_level_key):
|
||||
v (oosvar_name).
|
||||
1 (strnum_literal).
|
||||
AST END STATEMENTS (0):
|
||||
|
||||
mlr put -v end { @u = @v } /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (0):
|
||||
AST END STATEMENTS (1):
|
||||
= (oosvar_assignment):
|
||||
u (oosvar_name).
|
||||
v (oosvar_name).
|
||||
|
||||
mlr put -v end { @u = @v[1] } /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (0):
|
||||
AST END STATEMENTS (1):
|
||||
= (oosvar_assignment):
|
||||
u (oosvar_name).
|
||||
[] (oosvar_level_key):
|
||||
v (oosvar_name).
|
||||
1 (strnum_literal).
|
||||
|
||||
mlr put -v end { @u[2] = @v } /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (0):
|
||||
AST END STATEMENTS (1):
|
||||
= (oosvar_assignment):
|
||||
[] (oosvar_level_key):
|
||||
u (oosvar_name).
|
||||
2 (strnum_literal).
|
||||
v (oosvar_name).
|
||||
|
||||
mlr put -v end { @u[2] = @v[1] } /dev/null
|
||||
AST BEGIN STATEMENTS (0):
|
||||
AST MAIN STATEMENTS (0):
|
||||
AST END STATEMENTS (1):
|
||||
= (oosvar_assignment):
|
||||
[] (oosvar_level_key):
|
||||
u (oosvar_name).
|
||||
2 (strnum_literal).
|
||||
[] (oosvar_level_key):
|
||||
v (oosvar_name).
|
||||
1 (strnum_literal).
|
||||
|
||||
mlr put -q @s += $i; @t=@s; end{dump; emit@s; emit @t} ./reg_test/input/abixy
|
||||
{
|
||||
"s": 55,
|
||||
|
|
|
|||
|
|
@ -1346,6 +1346,13 @@ run_mlr put -q '@sum[$a][$b] += $nonesuch; end {emit @sum, "a", "b", "extra" }'
|
|||
# ----------------------------------------------------------------
|
||||
announce OOSVAR-FROM-SREC ASSIGNMENT
|
||||
|
||||
run_mlr put -v '@v = $*' /dev/null
|
||||
run_mlr put -v '@v[1] = $*' /dev/null
|
||||
run_mlr put -v '@v[$2] = $*' /dev/null
|
||||
run_mlr put -v 'NR == 3 {@v = $*}' /dev/null
|
||||
run_mlr put -v 'NR == 3 {@v[1] = $*}' /dev/null
|
||||
run_mlr put -v 'NR == 3 {@v[$2] = $*}' /dev/null
|
||||
|
||||
run_mlr --oxtab put -q '@v = $*; end {emit @v }' $indir/abixy-het
|
||||
|
||||
run_mlr --oxtab put -q '@v[$a] = $*; end {emit @v }' $indir/abixy-het
|
||||
|
|
@ -1358,13 +1365,40 @@ run_mlr --oxtab put -q '@v[$a][$b] = $*; end {emit @v, "a", "b"}' $indir/abixy-h
|
|||
# ----------------------------------------------------------------
|
||||
announce SREC-FROM-OOSVAR ASSIGNMENT
|
||||
|
||||
#run_mlr --oxtab put -q 'begin { @v[1] = "nonesuch" }; NR == 3 { @v = $*} ; $* = @v' $indir/abixy-het
|
||||
run_mlr put -v '$* = @v ' /dev/null
|
||||
run_mlr put -v '$* = @v[1] ' /dev/null
|
||||
run_mlr put -v '$* = @v[$2]' /dev/null
|
||||
run_mlr put -v 'NR == 3 {$* = @v }' /dev/null
|
||||
run_mlr put -v 'NR == 3 {$* = @v[1] }' /dev/null
|
||||
run_mlr put -v 'NR == 3 {$* = @v[$2]}' /dev/null
|
||||
|
||||
run_mlr put '@v[NR] = $a; NR == 7 { @v = $*} ; $* = @v' $indir/abixy-het
|
||||
|
||||
# ----------------------------------------------------------------
|
||||
announce OOSVAR-FROM-OOSVAR ASSIGNMENT
|
||||
|
||||
run_mlr put -q '@s += $i; @t=@s; end{dump; emit@s; emit @t}' $indir/abixy
|
||||
run_mlr put -v '@u = @v' /dev/null
|
||||
run_mlr put -v '@u = @v[1]' /dev/null
|
||||
run_mlr put -v '@u[2] = @v' /dev/null
|
||||
run_mlr put -v '@u[2] = @v[1]' /dev/null
|
||||
|
||||
run_mlr put -v 'begin { @u = @v }' /dev/null
|
||||
run_mlr put -v 'begin { @u = @v[1] }' /dev/null
|
||||
run_mlr put -v 'begin { @u[2] = @v }' /dev/null
|
||||
run_mlr put -v 'begin { @u[2] = @v[1] }' /dev/null
|
||||
|
||||
run_mlr put -v 'NR == 3 { @u = @v }' /dev/null
|
||||
run_mlr put -v 'NR == 3 { @u = @v[1] }' /dev/null
|
||||
run_mlr put -v 'NR == 3 { @u[2] = @v }' /dev/null
|
||||
run_mlr put -v 'NR == 3 { @u[2] = @v[1] }' /dev/null
|
||||
|
||||
run_mlr put -v 'end { @u = @v }' /dev/null
|
||||
run_mlr put -v 'end { @u = @v[1] }' /dev/null
|
||||
run_mlr put -v 'end { @u[2] = @v }' /dev/null
|
||||
run_mlr put -v 'end { @u[2] = @v[1] }' /dev/null
|
||||
|
||||
|
||||
run_mlr put -q '@s += $i; @t=@s; end{dump; emit@s; emit @t}' $indir/abixy
|
||||
|
||||
run_mlr put -q '@s[1] += $i; @t=@s; end{dump; emit@s; emit @t}' $indir/abixy
|
||||
run_mlr put -q '@s[1] += $i; @t=@s[1]; end{dump; emit@s; emit @t}' $indir/abixy
|
||||
|
|
@ -1372,7 +1406,6 @@ run_mlr put -q '@s[1] += $i; @t=@s[1]; end{dump; emit@s; emit @t}' $ind
|
|||
run_mlr put -q '@s[1] += $i; @t[3]=@s; end{dump; emit@s; emit @t}' $indir/abixy
|
||||
run_mlr put -q '@s[1] += $i; @t[3]=@s[1]; end{dump; emit@s; emit @t}' $indir/abixy
|
||||
|
||||
|
||||
run_mlr put -q '@s[1][2] += $i; @t=@s; end{dump; emit@s; emit @t}' $indir/abixy
|
||||
run_mlr put -q '@s[1][2] += $i; @t=@s[1]; end{dump; emit@s; emit @t}' $indir/abixy
|
||||
run_mlr put -q '@s[1][2] += $i; @t=@s[1][2]; end{dump; emit@s; emit @t}' $indir/abixy
|
||||
|
|
@ -1387,7 +1420,6 @@ run_mlr put -q '@s[1][2] += $i; @t[3][4]=@s[1][2]; end{dump; emit@s; emit @t}' $
|
|||
|
||||
run_mlr --opprint put -q '@s[NR][NR] = $i/100; @t[NR*10]=@s; end{emit@s,"A","B"; emit @t,"C","D","E"}' $indir/abixy
|
||||
|
||||
|
||||
# ----------------------------------------------------------------
|
||||
announce CHAINING
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue