# 2.11BSD#431 - /usr/src/ucb/PORT/pascal/pxp/lval.c

##### Functions

    arycod            X
    lvalue            X

       1: /*
       2:  * Copyright (c) 1980 Regents of the University of California.
       3:  * All rights reserved.  The Berkeley software License Agreement
       4:  * specifies the terms and conditions for redistribution.
       5:  */
       6:
       7: #ifndef lint
       8: static char sccsid[] = "@(#)lval.c	5.1 (Berkeley) 6/5/85";
       9: #endif not lint
      10:
      11: /*
      12:  * pxp - Pascal execution profiler
      13:  *
      14:  * Bill Joy UCB
      15:  * Version 1.2 January 1979
      16:  */
      17:
      18: #include "0.h"
      19: #include "tree.h"
      20:
      21: /*
      22:  * A "variable"
      23:  */
      24: lvalue(r)
      25:     register int *r;
      26: {
      27:     register *c, *co;
      28:
      29:     ppid(r[2]);
      30:     for (c = r[3]; c != NIL; c = c[2]) {
      31:         co = c[1];
      32:         if (co == NIL)
      33:             continue;
      34:         switch (co[0]) {
      35:             case T_PTR:
      36:                 ppop("^");
      37:                 continue;
      38:             case T_ARY:
      39:                 arycod(co[1]);
      40:                 continue;
      41:             case T_FIELD:
      42:                 ppop(".");
      43:                 ppid(co[1]);
      44:                 continue;
      45:             case T_ARGL:
      46:                 ppid("{unexpected argument list}");
      47:                 break;
      48:             default:
      49:                 panic("lval2");
      50:         }
      51:     }
      52: }
      53:
      54: /*
      55:  * Subscripting
      56:  */
      57: arycod(el)
      58:     register int *el;
      59: {
      60:
      61:     ppbra("[");
      62:     if (el != NIL)
      63:         for (;;) {
      64:             rvalue(el[1], NIL);
      65:             el = el[2];
      66:             if (el == NIL)
      67:                 break;
      68:             ppsep(", ");
      69:         }
      70:     else
      71:         rvalue(NIL, NIL);
      72:     ppket("]");
      73: }

#### Defined functions

arycod defined in line 57; used 1 times

- in line 39

lvalue defined in line 24; used 3 times

- in /usr/src/ucb/PORT/pascal/pxp/rval.c line 57
- in /usr/src/ucb/PORT/pascal/pxp/stat.c line 139, 154

#### Defined variables

sccsid defined in line 8; never used

Last modified: 1985-06-06 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 855 |