declare -a kws=( '' "$@" )
declare i= kw id code takes t

while [[ -v kws[++i] ]] && kw=${kws[i]} t=$kwns$_S_ id=${KWS[$t$_S_$kw]} code=${KWS[$t$id]} takes=${KWS[$t$id$_S_]} ; do
 [[ $code ]] && kwseval "$code" "${kws[@]:i:takes}"
 (( i += takes ))
done
