idepth.h idfsize.h ifdepth.h inputtype.h inumlength.h lapbuf.h \
maxincl.h myalloc.h nobitfield.h nopp.h \
nparams.h numsize.h parbufsize.h pathlength.h predefine.h \
- strsize.h target_sizes.h textsize.h use_tmp.h spec_arith.h
+ strsize.h target_sizes.h textsize.h use_tmp.h spec_arith.h static.h
# Other generated files, for 'make clean' only
GENERATED = tab tokenfile.g Lpars.h LLfiles LL.output lint.out \
arith.o: Lpars.h alloc.h arith.h botch_free.h expr.h field.h idf.h label.h mes.h nobitfield.h nopp.h spec_arith.h storage.h type.h
alloc.o: alloc.h assert.h debug.h myalloc.h
code.o: LLlex.h Lpars.h alloc.h arith.h assert.h atw.h botch_free.h code.h dataflow.h debug.h declar.h decspecs.h def.h expr.h idf.h label.h level.h mes.h nobitfield.h nopp.h sizes.h spec_arith.h specials.h stack.h stmt.h storage.h type.h use_tmp.h
-dumpidf.o: Lpars.h arith.h debug.h def.h expr.h field.h idf.h label.h nobitfield.h nopp.h spec_arith.h stack.h struct.h type.h
+dumpidf.o: Lpars.h arith.h debug.h def.h expr.h field.h idf.h label.h nobitfield.h nopp.h spec_arith.h stack.h static.h struct.h type.h
error.o: LLlex.h arith.h debug.h errout.h expr.h label.h nopp.h spec_arith.h tokenname.h use_tmp.h
field.o: Lpars.h arith.h assert.h code.h debug.h expr.h field.h idf.h label.h nobitfield.h nopp.h sizes.h spec_arith.h type.h
tokenname.o: LLlex.h Lpars.h arith.h idf.h nopp.h spec_arith.h tokenname.h
LLlex.o: LLlex.h Lpars.h alloc.h arith.h assert.h class.h debug.h def.h idf.h idfsize.h input.h nopp.h numsize.h sizes.h spec_arith.h strsize.h
LLmessage.o: LLlex.h Lpars.h alloc.h arith.h idf.h nopp.h spec_arith.h
-input.o: LLlex.h alloc.h arith.h assert.h debug.h idepth.h input.h inputtype.h interface.h nopp.h pathlength.h spec_arith.h
+input.o: LLlex.h alloc.h arith.h assert.h debug.h idepth.h input.h inputtype.h interface.h nopp.h pathlength.h spec_arith.h static.h
domacro.o: LLlex.h Lpars.h alloc.h arith.h assert.h botch_free.h class.h debug.h idf.h idfsize.h ifdepth.h input.h interface.h macro.h nopp.h nparams.h parbufsize.h spec_arith.h storage.h textsize.h
-replace.o: LLlex.h alloc.h arith.h assert.h class.h debug.h idf.h input.h interface.h macro.h nopp.h pathlength.h spec_arith.h strsize.h
+replace.o: LLlex.h alloc.h arith.h assert.h class.h debug.h idf.h input.h interface.h macro.h nopp.h pathlength.h spec_arith.h static.h strsize.h
init.o: alloc.h class.h idf.h interface.h macro.h nopp.h predefine.h
options.o: align.h arith.h class.h idf.h idfsize.h macro.h maxincl.h nobitfield.h nopp.h sizes.h spec_arith.h storage.h use_tmp.h
scan.o: class.h idf.h input.h interface.h lapbuf.h macro.h nopp.h nparams.h
#include "Lpars.h"
#include "label.h"
#include "expr.h"
+#include "static.h"
/* Some routines (symbol2str, token2str, type2str) which should have
* yielded strings are written to yield a pointer to a transient piece
return buf;
}
+STATIC char trans_buf[MAXTRANS][300];
+
char * /* the ultimate transient buffer supplier */
next_transient()
{
static int bnum;
- static char buf[MAXTRANS][300];
if (++bnum == MAXTRANS)
bnum = 0;
- return buf[bnum];
+ return trans_buf[bnum];
}
print_expr(msg, expr)
#include <system.h>
#include "nopp.h"
-#include "inputtype.h" /* UF */
+#include "inputtype.h"
#include "interface.h"
#include "arith.h"
#include "LLlex.h"
#include "alloc.h"
#ifndef NOPP
-#include "idepth.h" /* UF */
-#include "debug.h" /* UF */
-#include "pathlength.h" /* UF */
+#include "idepth.h"
+#include "debug.h"
+#include "pathlength.h"
#include "assert.h"
+#include "static.h"
#endif NOPP
EXPORT char *ipp = 0; /* input pointer */
#ifndef NOPP
/* mk_filename() concatenates a dir and filename.
*/
+STATIC char path[PATHLENGTH];
+
PRIVATE char *
mk_filename(dir, file)
register char *dir, *file;
{
- static char newfn[PATHLENGTH];
- register char *dst = &newfn[0];
+ register char *dst = &path[0];
if (!(dir[0] == '.' && dir[1] == '\0')) {
while (*dst++ = *dir++);
*(dst - 1) = '/';
}
while (*dst++ = *file++);
- return &newfn[0];
+ return &path[0];
}
#endif NOPP
#include "class.h"
#include "assert.h"
#include "interface.h"
+#include "static.h"
char *strcpy(), *strcat();
char *long2str();
return 1;
}
+STATIC char FilNamBuf[PATHLENGTH];
+
PRIVATE
macro_func(idef)
struct idf *idef;
replacement texts must be evaluated at the time they are
used.
*/
- static char FilNamBuf[PATHLENGTH];
-
/* This switch is very blunt... */
switch (idef->id_text[2]) {
case 'F' : /* __FILE__ */