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[] = "@(#)const.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: STATIC  int constcnt = -1;
  22: 
  23: /*
  24:  * The const declaration part
  25:  */
  26: constbeg(l, cline)
  27:     int l, cline;
  28: {
  29: 
  30:     line = l;
  31:     if (nodecl)
  32:         printoff();
  33:     puthedr();
  34:     putcm();
  35:     ppnl();
  36:     indent();
  37:     ppkw("const");
  38:     ppgoin(DECL);
  39:     constcnt = 0;
  40:     setline(cline);
  41: }
  42: 
  43: const(cline, cid, cdecl)
  44:     int cline;
  45:     char *cid;
  46:     int *cdecl;
  47: {
  48: 
  49:     if (constcnt)
  50:         putcm();
  51:     setline(cline);
  52:     ppitem();
  53:     ppid(cid);
  54:     ppsep(" = ");
  55:     gconst(cdecl);
  56:     ppsep(";");
  57:     constcnt++;
  58:     setinfo(cline);
  59:     putcml();
  60: }
  61: 
  62: constend()
  63: {
  64: 
  65:     if (constcnt == -1)
  66:         return;
  67:     if (nodecl)
  68:         return;
  69:     if (constcnt == 0)
  70:         ppid("{const decls}");
  71:     ppgoout(DECL);
  72:     constcnt = -1;
  73: }
  74: 
  75: /*
  76:  * A constant in an expression
  77:  * or a declaration.
  78:  */
  79: gconst(r)
  80:     int *r;
  81: {
  82:     register *cn;
  83: 
  84:     cn = r;
  85: loop:
  86:     if (cn == NIL) {
  87:         ppid("{constant}");
  88:         return;
  89:     }
  90:     switch (cn[0]) {
  91:         default:
  92:             panic("gconst");
  93:         case T_PLUSC:
  94:             ppop("+");
  95:             cn = cn[1];
  96:             goto loop;
  97:         case T_MINUSC:
  98:             ppop("-");
  99:             cn = cn[1];
 100:             goto loop;
 101:         case T_ID:
 102:             ppid(cn[1]);
 103:             return;
 104:         case T_CBINT:
 105:         case T_CINT:
 106:         case T_CFINT:
 107:             ppnumb(cn[1]);
 108:             if (cn[0] == T_CBINT)
 109:                 ppsep("b");
 110:             return;
 111:         case T_CSTRNG:
 112:             ppstr(cn[1]);
 113:             return;
 114:     }
 115: }

Defined functions

constbeg defined in line 26; never used
constend defined in line 62; never used

Defined variables

cdecl defined in line 46; used 2 times
cid defined in line 45; used 2 times
cline defined in line 44; used 6 times
constcnt defined in line 21; used 6 times
sccsid defined in line 8; never used
Last modified: 1985-06-06
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1134
Valid CSS Valid XHTML 1.0 Strict