Annotation of researchv10dc/vol2/grap/scatmat, revision 1.1.1.1

1.1       root        1: awk '
                      2: # Default values and initial output
                      3: BEGIN {        spreadtext="0"
                      4:        symboltext="circle"
                      5:        fname="XXX"
                      6:        white[" "]=1; white["\t"]=1 # white space
                      7:        print ".G1"
                      8:        print "graph " fname "01"
                      9:        print " ticks off; frame ht 0 wid 0 invis"
                     10: }
                     11: 
                     12: # Parse all commands, global first then for each var
                     13:                { rest="" }   # rest = input line after $1
                     14: NF>1           { i=0
                     15:                  while ( white[substr($0,++i,1)]);
                     16:                  while (!white[substr($0,++i,1)]);
                     17:                  rest=substr($0,i+1) }
                     18: $1=="frames"   { frametext=rest }
                     19: $1=="spread"   { spreadtext=$2 }
                     20: $1=="file"     { filetext=$2 }
                     21: $1=="symbol"   { symboltext=rest }
                     22: $1=="allticks" { alltickstext=rest }
                     23: $1=="alllog"   { wantalllog=1 }
                     24: $1=="allrange" { allrangeset=1; allrangelo=$2; allrangehi=$3 }
                     25: $1=="once"     { print rest }
                     26: $1=="eachgraph"        { graphtext[++graphcnt]=rest }
                     27: $1=="eachline" { linetext[++linecnt]=rest }
                     28: $1=="diagdown" { diagdown=1 }
                     29: 
                     30: $1=="name"     { if (substr(rest,1,1) != "\"") rest="\"" rest "\""
                     31:                  var++; nametext[var]=rest
                     32:                }
                     33: $1=="ticks"    { tickstext[var]=rest }
                     34: $1=="range"    { rangeset[var]=1; rangelo[var]=$2; rangehi[var]=$3 }
                     35: $1=="log"      { wantlog[var]=1 }
                     36: $1=="field"    { fieldtext[var]=$2 }
                     37: 
                     38: # Generate all var**2 graphs
                     39: END {
                     40:   if (allrangeset) for (i=1; i<=var; i++) {
                     41:        rangeset[i]=1; rangelo[i]=allrangelo; rangehi[i]=allrangehi
                     42:   }
                     43:   if (frametext=="") {
                     44:        wid=((6.5-spreadtext)/var)-spreadtext
                     45:        frametext= "ht " wid " wid " wid
                     46:   }
                     47:   bottomrow=1; if (diagdown) bottomrow=var
                     48:   for (row=1; row<=var; row++) {
                     49:     for (col=1; col<=var; col++) {
                     50:        # graph statement
                     51:        if (col==1) {
                     52:            place = "with .Frame.s at " fname row-1 col\
                     53:                    ".Frame.n + (0," spreadtext ")"
                     54:            if (diagdown) place = "with .Frame.n at " fname row-1 col\
                     55:                        ".Frame.s - (0," spreadtext ")"
                     56:        } else {
                     57:            place = "with .Frame.w at " fname row col-1\
                     58:                        ".Frame.e + (" spreadtext ",0)"
                     59:        }
                     60:        print "graph", fname row col, place
                     61:        # frame statement
                     62:        print " frame " frametext
                     63:        # coord statement
                     64:        s=""
                     65:        if (rangeset[col]) s=s " x " rangelo[col] "," rangehi[col]
                     66:        if (rangeset[row]) s=s " y " rangelo[row] "," rangehi[row]
                     67:        if (wantlog[col])  s=s " log x"
                     68:        if (wantlog[row])  s=s " log y"
                     69:        if (wantalllog)    s=s " log log"
                     70:        if (s!="") print "      coord" s
                     71:        # ticks statements
                     72:        print " ticks off"
                     73:        if (col==1) print         "     ticks left "  alltickstext, tickstext[row]
                     74:        if (row==bottomrow) print "     ticks bot "   alltickstext, tickstext[col]
                     75:        # copy file or print label
                     76:        if (row==col) {
                     77:            print "     coord abs x 0,1 y 0,1"
                     78:            print "     " nametext[row] " at abs .5, .5"
                     79:            if (symboltext!="") {
                     80:                print " copy " filetext " thru @"
                     81:                print "   rowval=" fieldtext[row]
                     82:                print "   \"\" at rowval, rowval"
                     83:                print " @"
                     84:            }
                     85:        } else {
                     86:            print "     rownum=" row "; colnum=" col
                     87:            for (i=1; i<=graphcnt; i++) print " " graphtext[i]
                     88:            print "     copy " filetext " thru @"
                     89:            print "       rowval=" fieldtext[row] "; colval=" fieldtext[col]
                     90:            for (i=1; i<=linecnt; i++) print "    " linetext[i]
                     91:            if (symboltext!="") {
                     92:                print "   " symboltext " at colval, rowval"
                     93:            }
                     94:            print "     @"
                     95:        }
                     96:     }
                     97:   }
                     98: print ".G2"
                     99: }
                    100: ' $*

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.