1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- /*
- * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
- * See the copyright notice in the ACK home directory, in the file "Copyright".
- */
- /* $Id$ */
- extern int maxply; /* amount of lookahead allowed */
- extern int stackheight; /* # of tokens on fakestack */
- extern token_t fakestack[]; /* fakestack itself */
- extern int nallreg; /* number of allocated registers */
- extern int allreg[]; /* array of allocated registers */
- extern token_p curtoken; /* pointer to current token */
- extern result_t dollar[]; /* Values of $1,$2 etc.. */
- extern int nemlines; /* # of EM instructions in core */
- extern struct emline emlines[]; /* EM instructions itself */
- extern struct emline *emp; /* pointer to current instr */
- extern struct emline *saveemp; /* pointer to start of pattern */
- extern int tokpatlen; /* length of current stackpattern */
- extern rl_p curreglist; /* side effect of findcoerc() */
- #ifndef NDEBUG
- extern int Debug; /* on/off debug printout */
- #endif
- /*
- * Next descriptions are external declarations for tables created
- * by bootgram.
- * All definitions are to be found in tables.c (Not for humans)
- */
- extern byte coderules[]; /* pseudo code for cg itself */
- extern char stregclass[]; /* static register class */
- extern struct reginfo machregs[]; /* register info */
- extern tkdef_t tokens[]; /* token info */
- extern node_t enodes[]; /* expression nodes */
- extern string codestrings[]; /* table of strings */
- extern set_t machsets[]; /* token expression table */
- extern inst_t tokeninstances[]; /* token instance description table */
- extern move_t moves[]; /* move descriptors */
- extern byte pattern[]; /* EM patterns */
- extern int pathash[256]; /* Indices into previous */
- extern c1_t c1coercs[]; /* coercions type 1 */
- #ifdef MAXSPLIT
- extern c2_t c2coercs[]; /* coercions type 2 */
- #endif /* MAXSPLIT */
- extern c3_t c3coercs[]; /* coercions type 3 */
- extern struct reginfo **reglist[]; /* lists of registers per property */
- #define eqregclass(r1,r2) (stregclass[r1]==stregclass[r2])
- #ifdef REGVARS
- extern int nregvar[]; /* # of register variables per type */
- extern int *rvnumbers[]; /* lists of numbers */
- #endif
|