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

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: 1012
Valid CSS Valid XHTML 1.0 Strict