4.1cBSD/usr/src/ucb/pascal/pdx/sym/sym.rep

/* Copyright (c) 1982 Regents of the University of California */

/* static char sccsid[] = "@(#)sym.rep 1.2 1/18/82"; */

/*
 * This file contains the definition of the representation of the SYM type.
 */

struct sym {
	char *symbol;
	char class;
	char blkno;
	SYM *type;
	SYM *chain;
	union {
		int offset;		/* variable address */
		long iconval;		/* integer constant value */
		double fconval;		/* floating constant value */
		struct {		/* range bounds */
			long lower;
			long upper;
		} rangev;
		struct {		/* address of function value, code */
			int offset;
			ADDRESS codeloc;
		} funcv;
		struct {		/* variant record info */
			int size;
			SYM *vtorec;
			SYM *vtag;
		} varnt;
		struct {		/* information for reserved words */
			int toknum;
			int tokval;
		} token;
	} symvalue;
	SYM *func;
	SYM *next_sym;
};