Annotation of researchv10dc/vol2/grap/scatmat, revision 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.