typedef union expression *expptr;
typedef union taggedblock *tagptr;
typedef union chainedblock *chainp;
extern long int headoffset;
extern struct labelblock *thislabel;
extern ftnint typesize[];
extern int fudgelabel; /* to confuse the pdp11 optimizer */
extern struct addrblock *typeaddr;
extern struct addrblock *retslot;
extern struct nameblock *regnamep[ ];
extern struct entrypoint *entries;
extern struct rplblock *rpllist;
extern struct addrblock *ioblkp;
struct nameblock *donamep;
#define endlabel ctlabels[0]
#define elselabel ctlabels[1]
#define dobodylabel ctlabels[1]
#define doposlabel ctlabels[2]
#define doneglabel ctlabels[3]
extern struct ctlframe ctls[ ];
extern struct ctlframe *ctlstack;
extern struct ctlframe *lastctl;
extern struct extsym extsymtab[ ];
extern struct extsym *nextext;
extern struct extsym *lastext;
extern struct labelblock labeltab[ ];
extern struct labelblock *labtabend;
extern struct labelblock *highlabtab;
struct extsym *entryname;
extern struct hashentry hashtab[ ];
extern struct hashentry *lasthash;
struct intrpacked /* bits for intrinsic function description */
chainp vstfdesc; /* points to (formals, expr) pair */
struct intrpacked intrdesc; /* bits for intrinsic function */
struct constblock *varvp;
struct rplblock /* name replacement block */
extern struct equivblock eqvclass[ ];
char litclen; /* small integer */
extern struct literal litpool[ ];
/* popular functions with non integer return values */
char *varstr(), *nounder(), *varunder();
chainp hookup(), mkchain();
struct nameblock *mkname();
struct labelblock *mklabel();
struct extsym *mkext(), *newentry();
struct exprblock *addrof(), *call1(), *call2(), *call3(), *call4();
struct addrblock *builtin(), *mktemp(), *mktmpn();
struct addrblock *autovar(), *mklhs(), *mkaddr(), *putconst(), *memversion();
struct constblock *mkintcon();
expptr mkexpr(), mkconv(), mkfunct(), fixexpr(), fixtype();
tagptr cpexpr(), mkprim();
struct errorblock *errnode();