aat

git mirror of https://ccx.te2000.cz/bzr/aat
git clone https://ccx.te2000.cz/git/aat
Log | Files | Refs | README

commit 0320de84a7c53bb482bd71756467b1e62e5b8d92
parent 3c2f362b69688911b90b25c698b65713b544ae0f
Author: Jan Pobrislo <ccx@webprojekty.cz>
Date:   Thu,  7 Jan 2016 16:19:29 +0100

unified function for reporting lookup errors, tests
Diffstat:
Maat_data.test | 35++++++++++++++++++++++++++++++++++-
Mdata.awk | 32++++++++++++++------------------
2 files changed, 48 insertions(+), 19 deletions(-)

diff --git a/aat_data.test b/aat_data.test @@ -54,7 +54,7 @@ Hello {<name>}! |} --- >>> /Makefile:.*failed/ ->>>2 /error: undefined variable 'name'/ +>>>2 /error: undefined scalar 'name'/ >>>= 2 ./aattest tests/data6 @@ -132,3 +132,36 @@ role-scriptsetup ] >>>2 >>>= 0 + +./aattest tests/data8 +<<< +@awk ../../data.awk +|END{ +@for n in names +Hello {<n.name>}! +@endfor +|} +--- +names=[ +name +X +Y +] +>>> +Hello X! +Hello Y! +>>>2 +>>>= 0 + +./aattest tests/data9 +<<< +@awk ../../data.awk +|END{ +@for n in names +Hello {<n.name>}! +@endfor +|} +--- +>>> /Makefile:.*failed/ +>>>2 /error: undefined table 'names'/ +>>>= 2 diff --git a/data.awk b/data.awk @@ -74,17 +74,20 @@ state == 1 { exit 1 } +function data_not_found_error(varname, type) { + if(ENVIRON["DATA_AWK_EMPTY_GET"]) { + if(DEBUG) { + print type" not found: " varname >"/dev/stderr" + } + } else { + print "error: undefined "type" '"varname"'" >"/dev/stderr" + exit 1 + } +} + function loop_start(varname, prefix, depth) { if(!((varname, "fields") in V)) { - if(ENVIRON["DATA_AWK_EMPTY_GET"]) { - if(DEBUG) { - print "table not found: " varname >"/dev/stderr" - } - found = "" - } else { - print "error: undefined table '"varname"'" >"/dev/stderr" - exit 1 - } + data_not_found_error(varname, "table") } depth = ++loop_stack["depth"] loop_stack[depth,"row"] = 0 @@ -159,15 +162,8 @@ function find(varname, i, n, names, values, loopvar, looprow, prefix) { function get(varname) { if(!find(varname)) { - if(ENVIRON["DATA_AWK_EMPTY_GET"]) { - if(DEBUG) { - print "variable not found: " varname >"/dev/stderr" - } - found = "" - } else { - print "error: undefined variable '"varname"'" >"/dev/stderr" - exit 1 - } + data_not_found_error(varname, "scalar") + found = "" } if(DEBUG) { print "get →" varname "← = →"found"←" >"/dev/stderr"