head     56.1;
access   paws bayes jws quist brad dew jwh;
symbols  ;
locks    ; strict;
comment  @# @;


56.1
date     91.11.05.09.27.45;  author jwh;  state Exp;
branches ;
next     55.1;

55.1
date     91.08.25.10.05.23;  author jwh;  state Exp;
branches ;
next     54.1;

54.1
date     91.03.18.15.14.42;  author jwh;  state Exp;
branches ;
next     53.1;

53.1
date     91.03.11.19.15.24;  author jwh;  state Exp;
branches ;
next     52.1;

52.1
date     91.02.19.09.00.30;  author jwh;  state Exp;
branches ;
next     51.1;

51.1
date     91.01.30.15.59.28;  author jwh;  state Exp;
branches ;
next     50.1;

50.1
date     90.10.29.16.12.59;  author jwh;  state Exp;
branches ;
next     49.1;

49.1
date     90.08.14.14.01.35;  author jwh;  state Exp;
branches ;
next     48.1;

48.1
date     90.07.26.11.07.15;  author jwh;  state Exp;
branches ;
next     47.1;

47.1
date     90.05.14.10.43.25;  author dew;  state Exp;
branches ;
next     46.1;

46.1
date     90.05.07.08.32.01;  author jwh;  state Exp;
branches ;
next     45.1;

45.1
date     90.04.19.15.38.58;  author jwh;  state Exp;
branches ;
next     44.1;

44.1
date     90.04.01.21.56.39;  author jwh;  state Exp;
branches ;
next     43.1;

43.1
date     90.03.20.13.46.33;  author jwh;  state Exp;
branches ;
next     42.1;

42.1
date     90.01.23.17.32.03;  author jwh;  state Exp;
branches ;
next     41.1;

41.1
date     89.12.22.11.14.32;  author jwh;  state Exp;
branches ;
next     40.1;

40.1
date     89.09.29.11.37.31;  author jwh;  state Exp;
branches ;
next     39.1;

39.1
date     89.09.26.16.22.50;  author dew;  state Exp;
branches ;
next     38.1;

38.1
date     89.08.29.11.12.59;  author jwh;  state Exp;
branches ;
next     37.1;

37.1
date     89.05.12.11.26.06;  author dew;  state Exp;
branches ;
next     36.1;

36.1
date     89.02.06.10.05.06;  author dew;  state Exp;
branches ;
next     35.1;

35.1
date     89.02.02.13.15.28;  author dew;  state Exp;
branches ;
next     34.1;

34.1
date     89.01.23.15.51.14;  author jwh;  state Exp;
branches ;
next     33.1;

33.1
date     89.01.16.11.27.09;  author dew;  state Exp;
branches ;
next     32.1;

32.1
date     89.01.10.11.32.24;  author bayes;  state Exp;
branches ;
next     31.1;

31.1
date     88.12.14.17.53.23;  author bayes;  state Exp;
branches ;
next     30.1;

30.1
date     88.12.09.13.31.31;  author dew;  state Exp;
branches ;
next     29.1;

29.1
date     88.10.31.15.15.47;  author bayes;  state Exp;
branches ;
next     28.1;

28.1
date     88.10.06.10.46.02;  author dew;  state Exp;
branches ;
next     27.1;

27.1
date     88.09.29.11.09.37;  author bayes;  state Exp;
branches ;
next     26.1;

26.1
date     88.09.28.12.24.06;  author bayes;  state Exp;
branches ;
next     25.1;

25.1
date     88.03.02.09.03.06;  author bayes;  state Exp;
branches ;
next     24.1;

24.1
date     87.08.31.09.06.44;  author jws;  state Exp;
branches ;
next     23.1;

23.1
date     87.08.26.09.44.02;  author bayes;  state Exp;
branches ;
next     22.1;

22.1
date     87.08.17.10.23.12;  author bayes;  state Exp;
branches ;
next     21.1;

21.1
date     87.08.12.13.11.49;  author bayes;  state Exp;
branches ;
next     20.1;

20.1
date     87.07.30.10.21.45;  author bayes;  state Exp;
branches ;
next     19.1;

19.1
date     87.06.01.07.40.57;  author jws;  state Exp;
branches ;
next     18.1;

18.1
date     87.05.20.14.33.49;  author bayes;  state Exp;
branches ;
next     17.1;

17.1
date     87.04.30.09.49.06;  author jws;  state Exp;
branches ;
next     16.1;

16.1
date     87.04.26.15.07.34;  author jws;  state Exp;
branches ;
next     15.1;

15.1
date     87.04.13.08.30.41;  author jws;  state Exp;
branches ;
next     14.1;

14.1
date     87.04.01.14.20.31;  author jws;  state Exp;
branches ;
next     13.1;

13.1
date     87.02.28.17.57.50;  author jws;  state Exp;
branches ;
next     12.1;

12.1
date     87.02.02.12.43.04;  author jws;  state Exp;
branches ;
next     11.1;

11.1
date     87.01.19.09.09.33;  author jws;  state Exp;
branches ;
next     10.1;

10.1
date     86.12.24.10.13.40;  author jws;  state Exp;
branches ;
next     9.1;

9.1
date     86.12.12.13.33.17;  author bayes;  state Exp;
branches ;
next     8.1;

8.1
date     86.11.27.11.11.58;  author jws;  state Exp;
branches ;
next     7.1;

7.1
date     86.11.20.12.57.28;  author hal;  state Exp;
branches ;
next     6.1;

6.1
date     86.11.04.16.53.48;  author paws;  state Exp;
branches ;
next     5.1;

5.1
date     86.10.28.14.14.36;  author hal;  state Exp;
branches ;
next     1.1;

1.1
date     86.10.08.11.20.58;  author geli;  state tmp;
branches ;
next     ;


desc
@Base file for PWS 3.2 release.

@


56.1
log
@Automatic bump of revision number for PWS version 3.25
@
text
@/*      SCCS    REV(31.3);      DATE(85/08/13   14:32:17) */
/* KLEENIX_ID @@(#)mfile1        31.3 85/07/30 */

# include "macdefs"
# include "manifest"

/*      storage classes  */
# define SNULL 0
# define AUTO 1
# define EXTERN 2
# define STATIC 3
# define REGISTER 4
# define EXTDEF 5
# define LABEL 6
# define ULABEL 7
# define MOS 8
# define PARAM 9
# define STNAME 10
# define MOU 11
# define UNAME 12
# define TYPEDEF 13
# define FORTRAN 14
# define ENAME 15
# define MOE 16
# define UFORTRAN 17
# define USTATIC 18
	/* field size is ORed in */
# define FIELD 0100
# define FLDSIZ 077
# ifndef BUG1
extern char *scnames();
# endif

/*      location counters */
# define PROG 0
# define DATA 1
# define ADATA 2
# define STRNG 3
# define ISTRNG 4
# define DNTT 5


/* symbol table flags */
# define SMOS 01
# define SHIDDEN 02
# define SHIDES 04
# define SSET 010
# define SREF 020
# define SNONUNIQ 040
# define STAG 0100

# ifndef FIXDEF
# define FIXDEF(p)
#endif
# ifndef FIXARG
# define FIXARG(p)
# endif
# ifndef FIXSTRUCT
# define FIXSTRUCT(a,b)
# endif

	/* alignment of initialized quantities */
# ifndef AL_INIT
#       define  AL_INIT ALINT
# endif

extern char     *lastac;/* ptr to next free char in asciz */
extern char     *asciz; /* dynamically allocated asciz table for symbols */

# ifdef HPCDB
  extern flag cdbflag;  /* set to 1 if -g option specified */
  extern unsigned long *atype_dntt;

/* Currently one word is reserved for cdb-info in the symtab entries.
 * The interpretation of this word depends on the storage class of
 * the symtab entry.
 */

typedef union cdb_symtab_info  CDB_SYMTAB_INFO;

union  cdb_symtab_info  {

	int  label_slt;         /* save sltindex where LABEL defined */
	int  extvar_isdefined;  /* set to tell if an EXTERN was defined in
				 * the current file.  Needed because global,
				 * unitialized vars are marked as EXTERN
				 * rather than as EXTDEF.
				 */
	int  word;              /* generic access -- clear the word on allocation
				 * of a symtab entry, etc.
				 */
};

extern ptr ckalloc();

# endif

struct symtab {
	char *sname;    /* ptr into asciz table for name (0 terminated) */
	TWORD stype;  /* type word */
	char sclass;  /* storage class */
	char slevel;  /* scope level */
	char sflags;  /* flags for set, use, hidden, mos, etc. */
	int offset;  /* offset or value */
	short dimoff; /* offset into the dimension table */
	short sizoff; /* offset into the size table */
	short suse;  /* line number of last use of the variable */
	char ssclass; /* storage class to contain info for 'refa's */
# ifdef HPCDB
	CDB_SYMTAB_INFO  cdb_info;      /* misc. info for cdb support */
# endif
	};


# ifdef ONEPASS

/* NOPREF must be defined for use in first pass tree machine */
# define NOPREF 020000  /* no preference for register assignment */

#else

union ndu {
	struct {
		short op;
		TWORD type;
		int cdim, csiz;
		}fn; /* front node */
	struct {
		short op;
		TWORD type;
		int cdim, csiz;
		flag onebit;
		NODE *left;
		NODE * right;
		}in; /* interior node */

	struct {
		/* this structure is the same as above,
		   but is used when a value, rather than
		   address, is kept in +left */
		short op;
		TWORD type;
		int cdim, csiz;
		flag onebit;
		CONSZ lval;
		int rval;
		}tn; /* terminal node */

	struct {
		/* this structure is used when a floating point constant
		   is being computed */
		short op;
		TWORD type;
		int cdim, csiz;
		double dval;
		}fpn; /* floating point node */

	};
# endif

struct sw {             /* structure defining vals for switch and case stmts */
	CONSZ sval;     /* value of particular case constant */
	int slab;
	TWORD stype;    /* type of switch variable */
	};

extern struct sw *swtab;
extern struct sw *swp;
extern int swx;

extern int ftnno;               /* function number */
extern int blevel;              /* blocking level */
extern int instruct, stwart;

extern int lineno;
extern short nerrors;           /* number of errors in this file */
typedef union {
	int intval;
	NODE * nodep;
	} YYSTYPE;
extern YYSTYPE yylval;

extern CONSZ lastcon;
extern double dcon;

extern char curclass;
extern flag brkflag;
extern char ftitle[];
extern struct symtab *stab;
extern int curftn;
extern int curdim;
extern int *dimtab;
extern int *paramstk;
extern int paramno;
extern int autooff, argoff, strucoff;
extern int regvar;
extern int minrvar;
extern char yytext[];

extern flag strflg;             /* true iff within a structure/union */

extern flag reached;
# ifdef LINT_TRY
extern int reachflg;
# endif

extern OFFSZ inoff;

/*      tunnel to buildtree for name id's */

extern int idname;

extern NODE *node;
extern NODE *lastfree;

extern flag cflag;
extern flag hflag;
extern flag pflag;

/* various labels */
extern int brklab;              /* jump to here if "break" is executed */
extern int contlab;             /* jump to here if "continue" is executed */
extern int flostat;
extern int retlab;              /* jump to here if "return" is executed */
extern int svfdefaultlab;       /* safe exit label for falling out the end of a
				   structure valued function. */
extern int retstat;
extern int *asavbc, *psavbc;

/*      flags used in structures/unions */

# define SEENAME 01
# define INSTRUCT 02
# define INUNION 04
# define FUNNYNAME 010
# define TAGNAME 020

/*      flags used in the (elementary) flow analysis ... */

# define FBRK 02
# define FCONT 04
# define FDEF 010
# define FLOOP 020

/*      flags used for return status */

# define RETVAL 1
# define NRETVAL 2

/*      used to mark a constant with no name field */

# define NONAME 040000

	/* mark an offset which is undefined */

# define NOOFFSET (-10201)

/*      declarations of various functions */

extern NODE
	*buildtree(),
	*bdty(),
	*mkty(),
	*rstruct(),
	*dclstruct(),
	*getstr(),
	*tymerge(),
	*stref(),
	*offcon(),
	*bpsize(),
	*convert(),
	*pconvert(),
	*oconvert(),
	*ptmatch(),
	*tymatch(),
	*makety(),
	*doszof(),
	*talloc(),
	*optim(),
	*strargs(),
	*t1copy(),
	*clocal();

OFFSZ   tsize(),
	psize();

TWORD   types();


double atof();

char *exname(), *exdcon();

# define checkst(x)

# ifndef CHARCAST
/* to make character constants into character connstants */
/* this is a macro to defend against cross-compilers, etc. */
# define CHARCAST(x) (char)(x)
# endif

@


55.1
log
@Automatic bump of revision number for PWS version 3.25A
@
text
@@


54.1
log
@Automatic bump of revision number for PWS version 3.24
@
text
@@


53.1
log
@Automatic bump of revision number for PWS version 3.24B
@
text
@@


52.1
log
@Automatic bump of revision number for PWS version 3.24A
@
text
@@


51.1
log
@Automatic bump of revision number for PWS version 3.24d
@
text
@@


50.1
log
@Automatic bump of revision number for PWS version 3.23c
@
text
@@


49.1
log
@Automatic bump of revision number for PWS version 3.24b
@
text
@@


48.1
log
@Automatic bump of revision number for PWS version 3.24a
@
text
@@


47.1
log
@Automatic bump of revision number for PWS version 3.23
@
text
@@


46.1
log
@Automatic bump of revision number for PWS version 3.23
@
text
@@


45.1
log
@Automatic bump of revision number for PWS version 3.23C
@
text
@@


44.1
log
@Automatic bump of revision number for PWS version 3.23B
@
text
@@


43.1
log
@Automatic bump of revision number for PWS version 3.23aA
@
text
@@


42.1
log
@Automatic bump of revision number for PWS version 3.23e
@
text
@@


41.1
log
@Automatic bump of revision number for PWS version 3.23d
@
text
@@


40.1
log
@Automatic bump of revision number for PWS version 3.23c
@
text
@@


39.1
log
@Automatic bump of revision number for PWS version 3.23b
@
text
@@


38.1
log
@Automatic bump of revision number for PWS version 3.23a
@
text
@@


37.1
log
@Automatic bump of revision number for PWS version 3.3a
@
text
@@


36.1
log
@Automatic bump of revision number for PWS version 3.22
@
text
@@


35.1
log
@Automatic bump of revision number for PWS version 3.22
@
text
@@


34.1
log
@Automatic bump of revision number for PWS version 3.22
@
text
@@


33.1
log
@Automatic bump of revision number for PWS version 3.22D
@
text
@@


32.1
log
@Automatic bump of revision number for PWS version 3.22C
@
text
@@


31.1
log
@Automatic bump of revision number for PWS version 3.22B
@
text
@@


30.1
log
@Automatic bump of revision number for PWS version 3.22A
@
text
@@


29.1
log
@Automatic bump of revision number for PWS version 3.22b
@
text
@@


28.1
log
@Automatic bump of revision number for PWS version 3.3b
@
text
@@


27.1
log
@Automatic bump of revision number for PWS version 3.3a
@
text
@@


26.1
log
@Automatic bump of revision number for PWS version 3.3 Synch
@
text
@@


25.1
log
@Automatic bump of revision number for PWS version 3.2Y
@
text
@@


24.1
log
@Automatic bump of revision number for PWS version 3.2
@
text
@@


23.1
log
@Automatic bump of revision number for PWS version 3.2P
@
text
@@


22.1
log
@Automatic bump of revision number for PWS version 3.2N
@
text
@@


21.1
log
@Automatic bump of revision number for PWS version 3.2M
@
text
@@


20.1
log
@Automatic bump of revision number for PWS version 3.2L
@
text
@@


19.1
log
@Automatic bump of revision number for PWS version 3.2K
@
text
@@


18.1
log
@Automatic bump of revision number for PWS version 3.2J
@
text
@@


17.1
log
@Automatic bump of revision number for PWS version 3.2I+
@
text
@@


16.1
log
@Automatic bump of revision number for PWS version 3.2I
@
text
@@


15.1
log
@Automatic bump of revision number for PWS version 3.2H
@
text
@@


14.1
log
@Automatic bump of revision number for PWS version 3.2G
@
text
@@


13.1
log
@Automatic bump of revision number for PWS version 3.2F
@
text
@@


12.1
log
@Automatic bump of revision number for PWS version 3.2E
@
text
@@


11.1
log
@Automatic bump of revision number for PWS version 3.2D
@
text
@@


10.1
log
@Automatic bump of revision number for PWS version 3.2C
@
text
@@


9.1
log
@Automatic bump of revision number for PWS version 3.2B
@
text
@@


8.1
log
@Automatic bump of revision number for PWS version 3.2A
@
text
@@


7.1
log
@Automatic bump of revision number for PWS version 3.2l
@
text
@@


6.1
log
@Automatic bump of revision number for PWS version 3.2k
@
text
@@


5.1
log
@Automatic bump of revision number for PWS version 3.2j
@
text
@@


1.1
log
@Initial revision
@
text
@@
