xref: /csrg-svn/usr.bin/pascal/pdx/sym/sym.rep (revision 62149)
148093Sbostic/*-
2*62149Sbostic * Copyright (c) 1982, 1993
3*62149Sbostic *	The Regents of the University of California.  All rights reserved.
422777Smckusick *
548093Sbostic * %sccs.include.redist.c%
648093Sbostic *
7*62149Sbostic *	@(#)sym.rep	8.1 (Berkeley) 06/06/93
822772Smckusick */
95530Slinton
105530Slinton/*
115530Slinton * This file contains the definition of the representation of the SYM type.
125530Slinton */
135530Slinton
145530Slintonstruct sym {
155530Slinton	char *symbol;
165530Slinton	char class;
175530Slinton	char blkno;
185530Slinton	SYM *type;
195530Slinton	SYM *chain;
205530Slinton	union {
215530Slinton		int offset;		/* variable address */
225530Slinton		long iconval;		/* integer constant value */
235530Slinton		double fconval;		/* floating constant value */
245530Slinton		struct {		/* range bounds */
255530Slinton			long lower;
265530Slinton			long upper;
275530Slinton		} rangev;
285530Slinton		struct {		/* address of function value, code */
295530Slinton			int offset;
305530Slinton			ADDRESS codeloc;
315530Slinton		} funcv;
325530Slinton		struct {		/* variant record info */
335530Slinton			int size;
345530Slinton			SYM *vtorec;
355530Slinton			SYM *vtag;
365530Slinton		} varnt;
375530Slinton		struct {		/* information for reserved words */
385530Slinton			int toknum;
395530Slinton			int tokval;
405530Slinton		} token;
415530Slinton	} symvalue;
425530Slinton	SYM *func;
435530Slinton	SYM *next_sym;
445530Slinton};
45