/* @(#)mfile1 4.2 (Berkeley) 83/04/04 */
/* field size is ORed in */
/* alignment of initialized quantities */
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 */
/* NOPREF must be defined for use in first pass tree machine */
# define NOPREF 020000 /* no preference for register assignment */
/* this structure is the same as above,
but is used when a value, rather than
address, is kept in +left */
/* this structure is used when a floating point constant
}fpn; /* floating point node */
extern struct sw swtab[];
extern int instruct, stwart;
extern int lineno, nerrors;
extern struct symtab stab[];
extern int autooff, argoff, strucoff;
/* tunnel to buildtree for name id's */
extern int cflag, hflag, pflag;
extern int asavbc[], *psavbc;
/* flags used in structures/unions */
/* flags used in the (elementary) flow analysis ... */
/* flags used for return status */
/* used to mark a constant with no name field */
/* mark an offset which is undefined */
# define NOOFFSET (-10201)
/* declarations of various functions */
char *exname(), *exdcon();
/* to make character constants into character connstants */
/* this is a macro to defend against cross-compilers, etc. */
# define CHARCAST(x) (char)(x)
# define BCSZ 100 /* size of the table to save break and continue labels */
# define SYMTSZ 3000 /* size of the symbol table (was 500) */
# define DIMTABSZ 4200 /* size of the dimension/size table (was 800) */
# define PARAMSZ 300 /* size of the parameter stack */
# define SWITSZ 500 /* size of switch table */
/* special interfaces for yacc alone */
/* These serve as abbreviations of 2 or more ops: