define(File,flags,num,name) define(_,flags["$1"]) function slurp(f,File while(getline < f) { sub(/%.*/,"",$0) if ($0 ~ /^[ \t]*$/) continue; if ($0 ~/@relation/) _(relation) = $2) if ($0 ! /@attribute/ { _(attr)++; num[_(attr)]=0; name[_(attr)]=$2;} if ($0 ~ /@attribute/ && $3 ~ /numeric|real|integer/) num[_(attr)]=1; if ($0 ~ /@data/) { In=1; FS=","; Klass= Klass>0 ? Klass : Attr+1+Klass} /@/ { next; } In { instance() } END { debug(); report() }