Annotation of 40BSD/cmd/pxp/lab.c, revision 1.1.1.1

1.1       root        1: /* Copyright (c) 1979 Regents of the University of California */
                      2: #
                      3: /*
                      4:  * pxp - Pascal execution profiler
                      5:  *
                      6:  * Bill Joy UCB
                      7:  * Version 1.2 January 1979
                      8:  */
                      9: 
                     10: #include "0.h"
                     11: 
                     12: /*
                     13:  * Label declaration part
                     14:  */
                     15: label(r, l)
                     16:        int *r, l;
                     17: {
                     18:        register *ll;
                     19: 
                     20:        if (nodecl)
                     21:                printoff();
                     22:        puthedr();
                     23:        setline(l);
                     24:        ppnl();
                     25:        indent();
                     26:        ppkw("label");
                     27:        ppgoin(DECL);
                     28:        ppnl();
                     29:        indent();
                     30:        ppbra(NIL);
                     31:        ll = r;
                     32:        if (ll != NIL)
                     33:                for (;;) {
                     34:                        pplab(ll[1]);
                     35:                        ll = ll[2];
                     36:                        if (ll == NIL)
                     37:                                break;
                     38:                        ppsep(", ");
                     39:                }
                     40:        else
                     41:                ppid("{label list}");
                     42:        ppket(";");
                     43:        putcml();
                     44:        ppgoout(DECL);
                     45: }
                     46: 
                     47: /*
                     48:  * Goto statement
                     49:  */
                     50: gotoop(s)
                     51:        char *s;
                     52: {
                     53: 
                     54:        gocnt++;
                     55:        ppkw("goto");
                     56:        ppspac();
                     57:        pplab(s);
                     58: }
                     59: 
                     60: /*
                     61:  * A label on a statement
                     62:  */
                     63: labeled(s)
                     64:        char *s;
                     65: {
                     66: 
                     67:        linopr();
                     68:        indentlab();
                     69:        pplab(s);
                     70:        ppsep(":");
                     71: }

unix.superglobalmegacorp.com

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