now uses alloc module, bug fixes, -N option under USE_TMP, to not do so

This commit is contained in:
ceriel 1987-01-24 00:25:56 +00:00
parent b4e4250144
commit 8116e3181f
37 changed files with 124 additions and 136 deletions

View file

@ -1,6 +1,7 @@
/* $Header$ */
/* L E X I C A L A N A L Y Z E R */
#include <alloc.h>
#include "nofloat.h"
#include "idfsize.h"
#include "numsize.h"
@ -8,7 +9,6 @@
#include "strsize.h"
#include "nopp.h"
#include "input.h"
#include "alloc.h"
#include "arith.h"
#include "def.h"
#include "idf.h"

View file

@ -1,9 +1,9 @@
/* $Header$ */
/* PARSER ERROR ADMINISTRATION */
#include <alloc.h>
#include "nofloat.h"
#include "idf.h"
#include "alloc.h"
#include "arith.h"
#include "LLlex.h"
#include "Lpars.h"
@ -12,9 +12,10 @@ extern char *symbol2str();
LLmessage(tk) {
err_occurred = 1;
if (tk < 0)
fatal("parser administration overflow");
if (tk) {
if (tk < 0) {
error("end of file expected");
}
else if (tk) {
error("%s missing", symbol2str(tk));
insert_token(tk);
}

View file

@ -18,12 +18,14 @@ STRLIB = $(EMHOME)/modules/lib/libstring.a
PRTLIB = $(EMHOME)/modules/lib/libprint.a
EMMESLIB = $(EMHOME)/modules/lib/libem_mes.a
INPLIB = $(EMHOME)/modules/lib/libinput.a
ALLOCLIB = $(EMHOME)/modules/lib/liballoc.a
MALLOC = $(EMHOME)/modules/lib/malloc.o
#CH3LIB = $(EMHOME)/modules/lib/libch3.a
CH3LIB =
LIBS = $(INPLIB) $(CH3LIB) $(EMMESLIB) $(EMKLIB) \
$(PRTLIB) $(STRLIB) $(SYSLIB)
$(PRTLIB) $(STRLIB) $(ALLOCLIB) $(MALLOC) $(SYSLIB)
ELIBS = $(INPLIB) $(CH3LIB) $(EMMESLIB) $(EMELIB) \
$(PRTLIB) $(STRLIB) $(SYSLIB)
$(PRTLIB) $(STRLIB) $(ALLOCLIB) $(MALLOC) $(SYSLIB)
LIB_INCLUDES = -I$(EMHOME)/modules/h -I$(EMHOME)/modules/pkg
EM_INCLUDES = -I$(EMHOME)/h
SYSLLIB = $(EMHOME)/modules/lib/llib-lsys.ln
@ -34,9 +36,10 @@ PRTLLIB = $(EMHOME)/modules/lib/llib-lprint.ln
EMMESLLIB = $(EMHOME)/modules/lib/llib-lmes.ln
INPLLIB = $(EMHOME)/modules/lib/llib-linput.ln
CH3LLIB = $(EMHOME)/modules/lib/llib-lch3.ln
ALLOCLLIB = $(EMHOME)/modules/lib/llib-alloc.ln
LINTLIBS =
#LINTLIBS = $(CH3LLIB) $(INPLLIB) $(EMMESLLIB) $(EMKLLIB) \
# $(PRTLLIB) $(STRLLIB) $(SYSLLIB)
# $(PRTLLIB) $(STRLLIB) $(SYSLLIB) $(ALLOCLLIB)
# Where to install the compiler and its driver
CEMCOM = $(DESTINATION)/cemcom
@ -58,16 +61,17 @@ CFLAGS = $(CDEFS) $(COPTIONS) -O# we cannot pass the COPTIONS to lint!
# Grammar files and their objects
LSRC = tokenfile.g declar.g statement.g expression.g program.g
GLCSRC = tokenfile.c declar.c statement.c expression.c program.c
LOBJ = tokenfile.o declar.o statement.o expression.o program.o Lpars.o
# Objects of hand-written C files
COBJ = main.o idf.o declarator.o decspecs.o struct.o \
expr.o ch7.o ch7bin.o cstoper.o arith.o \
alloc.o asm.o code.o dumpidf.o error.o field.o\
asm.o code.o dumpidf.o error.o field.o\
tokenname.o LLlex.o LLmessage.o \
input.o domacro.o replace.o init.o options.o \
scan.o skip.o stack.o type.o ch7mon.o label.o eval.o \
switch.o storage.o ival.o conversion.o \
switch.o ival.o conversion.o \
blocks.o dataflow.o
# Objects of other generated C files
@ -81,13 +85,13 @@ GSRC = char.c symbol2str.c next.c \
# .h files generated by `make hfiles'; PLEASE KEEP THIS UP-TO-DATE!
GHSRC = botch_free.h dataflow.h debug.h density.h errout.h \
idepth.h idfsize.h ifdepth.h inputtype.h inumlength.h lapbuf.h \
maxincl.h myalloc.h nobitfield.h nofloat.h nopp.h \
maxincl.h nobitfield.h nofloat.h nopp.h \
nparams.h numsize.h parbufsize.h pathlength.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 \
print Xref lxref hfiles cfiles
print Xref lxref hfiles cfiles $(GLCSRC)
# include files containing ALLOCDEF specifications
NEXTFILES = code.str declar.str decspecs.str def.str expr.str field.str \
@ -211,47 +215,45 @@ sim: cfiles
$(SIM) $(SIMFLAGS) `sources $(COBJ)` $(GSRC) $(LSRC)
#AUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTO
main.o: LLlex.h Lpars.h alloc.h arith.h debug.h declar.h file_info.h idf.h input.h inputtype.h level.h maxincl.h myalloc.h nobitfield.h nofloat.h nopp.h spec_arith.h specials.h target_sizes.h tokenname.h type.h use_tmp.h
idf.o: LLlex.h Lpars.h align.h alloc.h arith.h assert.h botch_free.h debug.h declar.h decspecs.h def.h file_info.h idf.h idfsize.h label.h level.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h specials.h stack.h storage.h struct.h type.h
declarator.o: Lpars.h alloc.h arith.h botch_free.h declar.h expr.h idf.h label.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h storage.h type.h
main.o: LLlex.h Lpars.h arith.h debug.h declar.h file_info.h idf.h input.h inputtype.h level.h maxincl.h nobitfield.h nofloat.h nopp.h spec_arith.h specials.h target_sizes.h tokenname.h type.h use_tmp.h
idf.o: LLlex.h Lpars.h align.h arith.h assert.h botch_free.h debug.h declar.h decspecs.h def.h file_info.h idf.h idfsize.h label.h level.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h specials.h stack.h struct.h type.h
declarator.o: Lpars.h arith.h botch_free.h declar.h expr.h idf.h label.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h type.h
decspecs.o: Lpars.h arith.h decspecs.h def.h level.h nobitfield.h nofloat.h spec_arith.h type.h
struct.o: LLlex.h Lpars.h align.h arith.h assert.h botch_free.h debug.h def.h field.h file_info.h idf.h level.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h stack.h storage.h struct.h type.h
expr.o: LLlex.h Lpars.h alloc.h arith.h botch_free.h declar.h decspecs.h def.h expr.h file_info.h idf.h label.h level.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h storage.h type.h
struct.o: LLlex.h Lpars.h align.h arith.h assert.h botch_free.h debug.h def.h field.h file_info.h idf.h level.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h stack.h struct.h type.h
expr.o: LLlex.h Lpars.h arith.h botch_free.h declar.h decspecs.h def.h expr.h file_info.h idf.h label.h level.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h type.h
ch7.o: Lpars.h arith.h assert.h debug.h def.h expr.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h struct.h type.h
ch7bin.o: Lpars.h arith.h botch_free.h expr.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h storage.h struct.h type.h
ch7bin.o: Lpars.h arith.h botch_free.h expr.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h struct.h type.h
cstoper.o: Lpars.h arith.h assert.h debug.h expr.h idf.h label.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h target_sizes.h type.h
arith.o: Lpars.h alloc.h arith.h botch_free.h expr.h field.h idf.h label.h mes.h nobitfield.h nofloat.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 file_info.h idf.h label.h level.h mes.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h specials.h stack.h stmt.h storage.h type.h use_tmp.h
arith.o: Lpars.h arith.h botch_free.h expr.h field.h idf.h label.h mes.h nobitfield.h nofloat.h nopp.h spec_arith.h type.h
code.o: LLlex.h Lpars.h arith.h assert.h atw.h botch_free.h code.h dataflow.h debug.h declar.h decspecs.h def.h expr.h file_info.h idf.h label.h level.h mes.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h specials.h stack.h stmt.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 nofloat.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 file_info.h label.h nofloat.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 nofloat.h nopp.h sizes.h spec_arith.h type.h
tokenname.o: LLlex.h Lpars.h arith.h file_info.h idf.h nofloat.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 file_info.h idf.h idfsize.h input.h nofloat.h nopp.h numsize.h sizes.h spec_arith.h strsize.h
LLmessage.o: LLlex.h Lpars.h alloc.h arith.h file_info.h idf.h nofloat.h nopp.h spec_arith.h
LLlex.o: LLlex.h Lpars.h arith.h assert.h class.h debug.h def.h file_info.h idf.h idfsize.h input.h nofloat.h nopp.h numsize.h sizes.h spec_arith.h strsize.h
LLmessage.o: LLlex.h Lpars.h arith.h file_info.h idf.h nofloat.h nopp.h spec_arith.h
input.o: file_info.h input.h inputtype.h nopp.h
domacro.o: LLlex.h Lpars.h alloc.h arith.h assert.h botch_free.h class.h debug.h file_info.h idf.h idfsize.h ifdepth.h input.h interface.h macro.h nofloat.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 file_info.h idf.h input.h interface.h macro.h nofloat.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
options.o: align.h arith.h class.h idf.h idfsize.h macro.h maxincl.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h storage.h use_tmp.h
domacro.o: LLlex.h Lpars.h arith.h assert.h botch_free.h class.h debug.h file_info.h idf.h idfsize.h ifdepth.h input.h interface.h macro.h nofloat.h nopp.h nparams.h parbufsize.h spec_arith.h textsize.h
replace.o: LLlex.h arith.h assert.h class.h debug.h file_info.h idf.h input.h interface.h macro.h nofloat.h nopp.h pathlength.h spec_arith.h static.h strsize.h
init.o: class.h idf.h interface.h macro.h nopp.h
options.o: align.h arith.h botch_free.h class.h idf.h idfsize.h macro.h maxincl.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h use_tmp.h
scan.o: class.h idf.h input.h interface.h lapbuf.h macro.h nopp.h nparams.h
skip.o: LLlex.h arith.h class.h file_info.h input.h interface.h nofloat.h nopp.h spec_arith.h
stack.o: Lpars.h alloc.h arith.h botch_free.h debug.h def.h idf.h level.h mes.h nobitfield.h nofloat.h nopp.h spec_arith.h stack.h storage.h struct.h type.h use_tmp.h
type.o: Lpars.h align.h alloc.h arith.h def.h idf.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h storage.h type.h
ch7mon.o: Lpars.h arith.h botch_free.h def.h expr.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h storage.h type.h
stack.o: Lpars.h arith.h botch_free.h debug.h def.h idf.h level.h mes.h nobitfield.h nofloat.h nopp.h spec_arith.h stack.h struct.h type.h use_tmp.h
type.o: Lpars.h align.h arith.h botch_free.h def.h idf.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h type.h
ch7mon.o: Lpars.h arith.h botch_free.h def.h expr.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h type.h
label.o: Lpars.h arith.h def.h idf.h label.h level.h nobitfield.h nofloat.h nopp.h spec_arith.h type.h
eval.o: Lpars.h align.h arith.h assert.h atw.h code.h dataflow.h debug.h def.h expr.h idf.h label.h level.h mes.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h stack.h type.h
switch.o: Lpars.h arith.h assert.h botch_free.h code.h debug.h density.h expr.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h storage.h switch.h type.h
storage.o: alloc.h assert.h botch_free.h debug.h storage.h
switch.o: Lpars.h arith.h assert.h botch_free.h code.h debug.h density.h expr.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h switch.h type.h
ival.o: Lpars.h align.h arith.h assert.h class.h debug.h def.h expr.h field.h idf.h label.h level.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h struct.h type.h
conversion.o: Lpars.h arith.h nobitfield.h nofloat.h sizes.h spec_arith.h type.h
blocks.o: arith.h atw.h label.h nofloat.h sizes.h spec_arith.h stack.h
dataflow.o: dataflow.h
tokenfile.o: Lpars.h
declar.o: LLlex.h Lpars.h arith.h debug.h declar.h decspecs.h def.h expr.h field.h file_info.h idf.h label.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h storage.h struct.h type.h
statement.o: LLlex.h Lpars.h arith.h botch_free.h code.h debug.h def.h expr.h file_info.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h stack.h storage.h type.h
declar.o: LLlex.h Lpars.h arith.h debug.h declar.h decspecs.h def.h expr.h field.h file_info.h idf.h label.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h struct.h type.h
statement.o: LLlex.h Lpars.h arith.h botch_free.h code.h debug.h def.h expr.h file_info.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h stack.h type.h
expression.o: LLlex.h Lpars.h arith.h expr.h file_info.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h type.h
program.o: LLlex.h Lpars.h alloc.h arith.h code.h declar.h decspecs.h def.h expr.h file_info.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h type.h
program.o: LLlex.h Lpars.h arith.h code.h declar.h decspecs.h def.h expr.h file_info.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h type.h
Lpars.o: Lpars.h
char.o: class.h
symbol2str.o: Lpars.h

View file

@ -1,9 +1,3 @@
!File: myalloc.h
#define OWNALLOC 1 /* use own superfast allocation */
#define ALLOCSIZ 4096 /* allocate pieces of 4K */
#define ALIGNSIZE 8 /* needed for alloc.c */
!File: pathlength.h
#define PATHLENGTH 1024 /* max. length of path to file */
@ -35,7 +29,7 @@
!File: maxincl.h
#define MAXINCL 8 /* maximum number of #include directories */
#define MAXINCL 12 /* maximum number of #include directories */
!File: density.h

View file

@ -7,17 +7,16 @@
semantics of C is a mess.
*/
#include "nofloat.h"
#include "botch_free.h"
#include <alloc.h>
#include "nofloat.h"
#include "nobitfield.h"
#include "alloc.h"
#include "idf.h"
#include "arith.h"
#include "type.h"
#include "label.h"
#include "expr.h"
#include "Lpars.h"
#include "storage.h"
#include "field.h"
#include "mes.h"
@ -202,7 +201,6 @@ arith2arith(tp, oper, expr)
*/
register struct expr *new = new_expr();
clear((char *)new, sizeof(struct expr));
new->ex_file = expr->ex_file;
new->ex_line = expr->ex_line;
new->ex_type = tp;

View file

@ -1,8 +1,9 @@
/* $Header$ */
/* SEMANTIC ANALYSIS (CHAPTER 7RM) -- BINARY OPERATORS */
#include "nofloat.h"
#include "botch_free.h"
#include <alloc.h>
#include "nofloat.h"
#include "idf.h"
#include "arith.h"
#include "type.h"
@ -10,7 +11,6 @@
#include "label.h"
#include "expr.h"
#include "Lpars.h"
#include "storage.h"
extern char options[];
extern char *symbol2str();

View file

@ -1,15 +1,15 @@
/* $Header$ */
/* SEMANTIC ANALYSIS (CHAPTER 7RM) -- MONADIC OPERATORS */
#include "botch_free.h"
#include <alloc.h>
#include "nofloat.h"
#include "nobitfield.h"
#include "botch_free.h"
#include "Lpars.h"
#include "arith.h"
#include "type.h"
#include "label.h"
#include "expr.h"
#include "storage.h"
#include "idf.h"
#include "def.h"

View file

@ -1,18 +1,18 @@
/* $Header$ */
/* C O D E - G E N E R A T I N G R O U T I N E S */
#include "nofloat.h"
#include <em.h>
#include "botch_free.h"
#include <alloc.h>
#include "nofloat.h"
#include "dataflow.h"
#include "use_tmp.h"
#include "botch_free.h"
#include "arith.h"
#include "type.h"
#include "idf.h"
#include "label.h"
#include "code.h"
#include "stmt.h"
#include "alloc.h"
#include "def.h"
#include "expr.h"
#include "sizes.h"
@ -24,7 +24,6 @@
#include "mes.h"
#include "LLlex.h"
#include "specials.h"
#include "storage.h"
#include "atw.h"
#include "assert.h"
@ -47,9 +46,10 @@ init_code(dst_file)
C_init(word_size, pointer_size); /* initialise EM module */
if (C_open(dst_file) == 0)
fatal("cannot write to %s\n", dst_file);
#ifndef USE_TMP
famous_first_words();
#ifdef USE_TMP
if (options['N'])
#endif USE_TMP
famous_first_words();
}
famous_first_words()
@ -171,7 +171,9 @@ begin_proc(name, def) /* to be called when entering a procedure */
arith size;
register struct type *tp = def->df_type;
#ifndef USE_TMP
#ifdef USE_TMP
if (options['N']) code_scope(name,def);
#else USE_TMP
code_scope(name, def);
#endif USE_TMP
#ifdef DATAFLOW
@ -326,9 +328,10 @@ code_declaration(idf, expr, lvl, sc)
)
def->df_alloc = ALLOC_SEEN;
if (expr) { /* code only if initialized */
#ifndef USE_TMP
#ifdef USE_TMP
if (options['N'])
#endif USE_TMP
code_scope(text, def);
#endif USE_TMP
def->df_alloc = ALLOC_DONE;
C_df_dnam(text);
do_ival(&(def->df_type), expr);
@ -364,9 +367,10 @@ code_declaration(idf, expr, lvl, sc)
case GLOBAL:
case IMPLICIT:
/* we are sure there is no expression */
#ifndef USE_TMP
code_scope(text, def);
#ifdef USE_TMP
if (options['N'])
#endif USE_TMP
code_scope(text, def);
break;
case AUTO:
case REGISTER:
@ -433,9 +437,10 @@ bss(idf)
*/
arith size = idf->id_def->df_type->tp_size;
#ifndef USE_TMP
code_scope(idf->id_text, idf->id_def);
#ifdef USE_TMP
if (options['N'])
#endif USE_TMP
code_scope(idf->id_text, idf->id_def);
/* Since bss() is only called if df_alloc is non-zero, and
since df_alloc is only non-zero if size >= 0, we have:
*/

View file

@ -8,7 +8,7 @@ struct string_cst { /* storing string constants */
label sc_dlb;
};
/* ALLOCDEF "string_cst" */
/* ALLOCDEF "string_cst" 10 */
#define LVAL 0
#define RVAL 1

View file

@ -2,6 +2,7 @@
/* DECLARATION SYNTAX PARSER */
{
#include <alloc.h>
#include "nobitfield.h"
#include "debug.h"
#include "arith.h"
@ -16,7 +17,6 @@
#include "label.h"
#include "expr.h"
#include "sizes.h"
#include "storage.h"
extern char options[];
}

View file

@ -13,7 +13,7 @@ struct declarator {
struct formal *dc_formal; /* params for function */
};
/* ALLOCDEF "declarator" */
/* ALLOCDEF "declarator" 50 */
struct formal { /* list of formals */
@ -21,7 +21,7 @@ struct formal { /* list of formals */
struct idf *fm_idf;
};
/* ALLOCDEF "formal" */
/* ALLOCDEF "formal" 5 */
#define NO_PARAMS ((struct formal *) 0)
@ -31,7 +31,7 @@ struct decl_unary {
arith du_count; /* for ARRAYs only */
};
/* ALLOCDEF "decl_unary" */
/* ALLOCDEF "decl_unary" 10 */
extern struct type *declare_type();
extern struct declarator null_declarator;

View file

@ -2,12 +2,11 @@
/* D E C L A R A T O R M A N I P U L A T I O N */
#include "botch_free.h"
#include "alloc.h"
#include <alloc.h>
#include "arith.h"
#include "type.h"
#include "Lpars.h"
#include "declar.h"
#include "storage.h"
#include "idf.h"
#include "label.h"
#include "expr.h"
@ -43,7 +42,6 @@ add_decl_unary(dc, fund, count, fm)
*/
register struct decl_unary *new = new_decl_unary();
clear((char *)new, sizeof(struct decl_unary));
new->next = dc->dc_decl_unary;
new->du_fund = fund;
new->du_count = count;

View file

@ -10,6 +10,6 @@ struct decspecs {
int ds_unsigned; /* 0 or 1 */
};
/* ALLOCDEF "decspecs" */
/* ALLOCDEF "decspecs" 50 */
extern struct decspecs null_decspecs;

View file

@ -26,4 +26,4 @@ struct def { /* for ordinary tags */
#define REG_DEFAULT 1 /* register candidate, not declared as such */
#define REG_BONUS 10 /* register candidate, declared as such */
/* ALLOCDEF "def" */
/* ALLOCDEF "def" 50 */

View file

@ -18,10 +18,9 @@
#include "textsize.h"
#include "idfsize.h"
#include "assert.h"
#include "alloc.h"
#include <alloc.h>
#include "class.h"
#include "macro.h"
#include "storage.h"
IMPORT char *inctable[]; /* list of include directories */
IMPORT char *getwdir();

View file

@ -3,7 +3,7 @@
#include "nofloat.h"
#include "botch_free.h"
#include "alloc.h"
#include <alloc.h>
#include "idf.h"
#include "arith.h"
#include "def.h"
@ -14,7 +14,6 @@
#include "Lpars.h"
#include "decspecs.h"
#include "declar.h"
#include "storage.h"
#include "sizes.h"
#include "level.h"
@ -122,7 +121,6 @@ dot2expr(expp)
pointer to which is stored in *expp.
*/
*expp = new_expr();
clear((char *)*expp, sizeof(struct expr));
(*expp)->ex_file = dot.tk_file;
(*expp)->ex_line = dot.tk_line;
switch (DOT) {
@ -248,7 +246,6 @@ intexpr(ivalue, fund)
*/
register struct expr *expr = new_expr();
clear((char *)expr, sizeof(struct expr));
expr->ex_file = dot.tk_file;
expr->ex_line = dot.tk_line;
fill_int_expr(expr, ivalue, fund);
@ -308,7 +305,6 @@ new_oper(tp, e1, oper, e2)
register struct expr *expr = new_expr();
register struct oper *op;
clear((char *)expr, sizeof(struct expr));
if (e2) {
register struct expr *e = e2;

View file

@ -101,6 +101,6 @@ struct expr {
extern struct expr *intexpr(), *new_oper();
/* ALLOCDEF "expr" */
/* ALLOCDEF "expr" 50 */
#define ISCOMMA(e) ((e)->ex_class == Oper && (e)->OP_OPER == INITCOMMA)

View file

@ -9,4 +9,4 @@ struct field { /* for field specifiers */
struct sdef *fd_sdef; /* upward pointer */
};
/* ALLOCDEF "field" */
/* ALLOCDEF "field" 50 */

View file

@ -6,7 +6,7 @@
#include "idfsize.h"
#include "botch_free.h"
#include "nopp.h"
#include "alloc.h"
#include <alloc.h>
#include "arith.h"
#include "align.h"
#include "LLlex.h"
@ -23,7 +23,6 @@
#include "Lpars.h"
#include "assert.h"
#include "specials.h" /* registration of special identifiers */
#include "storage.h"
int idfsize = IDFSIZE;
extern char options[];
@ -73,7 +72,6 @@ idf_hashed(tg, size, hc)
}
/* a new struct idf must be inserted at the hook */
notch = new_idf();
clear((char *)notch, sizeof(struct idf));
notch->next = *hook;
*hook = notch; /* hooked in */
notch->id_text = Salloc(tg, size);
@ -303,7 +301,6 @@ declare_idf(ds, dc, lvl)
else { /* fill in the def block */
register struct def *newdef = new_def();
clear((char *)newdef, sizeof(struct def));
newdef->next = def;
newdef->df_level = lvl;
newdef->df_type = type;

View file

@ -37,7 +37,7 @@ struct idf {
int id_special; /* special action needed at occurrence */
};
/* ALLOCDEF "idf" */
/* ALLOCDEF "idf" 50 */
extern struct idf *str2idf(), *idf_hashed();

View file

@ -5,7 +5,7 @@
#ifndef NOPP
#include <system.h>
#include "alloc.h"
#include <alloc.h>
#include "class.h"
#include "macro.h"
#include "idf.h"

View file

@ -27,7 +27,7 @@ struct macro {
char mc_flag; /* marking this macro */
};
/* ALLOCDEF "macro" */
/* ALLOCDEF "macro" 20 */
/* `token' numbers of keywords of command-line processor
*/

View file

@ -6,7 +6,6 @@
#include "nopp.h"
#include "target_sizes.h"
#include "debug.h"
#include "myalloc.h"
#include "use_tmp.h"
#include "maxincl.h"
#include "inputtype.h"
@ -19,7 +18,7 @@
#include "tokenname.h"
#include "Lpars.h"
#include "LLlex.h"
#include "alloc.h"
#include <alloc.h>
#include "specials.h"
extern struct tokenname tkidf[], tkother[];
@ -79,10 +78,6 @@ main(argc, argv)
/* parse and interpret the command line options */
prog_name = argv[0];
#ifdef OWNALLOC
init_mem();
#endif OWNALLOC
init_hmask();
#ifndef NOPP
@ -106,12 +101,6 @@ main(argc, argv)
}
compile(argc - 1, &argv[1]);
#ifdef OWNALLOC
#ifdef DEBUG
mem_stat();
#endif DEBUG
#endif OWNALLOC
#ifdef DEBUG
hash_stat();
#endif DEBUG
@ -164,9 +153,11 @@ compile(argc, argv)
source = strcmp(argv[0], "-") ? argv[0] : 0;
#ifdef USE_TMP
strcpy(tmpf, tmpfdir);
strcat(tmpf, tmpfname);
tmpfile = mktemp(tmpf);
if (! options['N']) {
strcpy(tmpf, tmpfdir);
strcat(tmpf, tmpfname);
tmpfile = mktemp(tmpf);
}
#endif USE_TMP
if (destination && strcmp(destination, "-") == 0)
@ -189,7 +180,11 @@ compile(argc, argv)
#endif NOPP
#ifdef USE_TMP
init_code(tmpfile);
if (!options['N']) {
init_code(tmpfile);
}
else
init_code(destination);
#else USE_TMP
init_code(destination);
#endif USE_TMP
@ -199,9 +194,11 @@ compile(argc, argv)
end_code();
#ifdef USE_TMP
prepend_scopes(destination);
AppendFile(tmpfile, destination);
sys_remove(tmpfile);
if (! options['N']) {
prepend_scopes(destination);
AppendFile(tmpfile, destination);
sys_remove(tmpfile);
}
#endif USE_TMP
#ifdef DEBUG

View file

@ -1,8 +1,8 @@
sed '
s:^.*ALLOCDEF.*"\(.*\)".*$:\
sed -e '
s:^.*[ ]ALLOCDEF[ ].*"\(.*\)"[ ]*\([0-9][0-9]*\).*$:\
/* allocation definitions of struct \1 */\
extern char *st_alloc();\
extern struct \1 *h_\1;\
#define new_\1() ((struct \1 *) \\\
st_alloc((char **)\&h_\1, sizeof(struct \1)))\
#define free_\1(p) st_free(p, h_\1, sizeof(struct \1))\
#define new_\1() ((struct \1 *) st_alloc((char **)\&h_\1, sizeof(struct \1), \2))\
#define free_\1(p) st_free(p, \&h_\1, sizeof(struct \1))\
:'

View file

@ -1,6 +1,8 @@
/* $Header$ */
/* U S E R O P T I O N - H A N D L I N G */
#include "botch_free.h"
#include <alloc.h>
#include "nofloat.h"
#include "nopp.h"
#include "idfsize.h"
@ -12,7 +14,6 @@
#include "arith.h"
#include "sizes.h"
#include "align.h"
#include "storage.h"
#include "use_tmp.h"
#ifndef NOPP
@ -126,6 +127,14 @@ do_option(text)
fatal("maximum identifier length is %d", IDFSIZE);
break;
case 'N' :
#ifdef USE_TMP
options['N'] = 1;
#else USE_TMP
warning("-N option ignored");
#endif USE_TMP
break;
case 'P' : /* run preprocessor stand-alone, without #'s */
#ifndef NOPP
options['E'] = 1;

View file

@ -42,7 +42,6 @@
{
#include "nopp.h"
#include "alloc.h"
#include "arith.h"
#include "LLlex.h"
#include "idf.h"

View file

@ -7,7 +7,7 @@
#include "debug.h" /* UF */
#include "pathlength.h" /* UF */
#include "strsize.h" /* UF */
#include "alloc.h"
#include <alloc.h>
#include "idf.h"
#include "input.h"
#include "macro.h"

View file

@ -6,9 +6,8 @@
#include <em.h>
#include <em_reg.h>
#include "debug.h"
#include "use_tmp.h"
#include "botch_free.h"
#include "alloc.h"
#include <alloc.h>
#include "Lpars.h"
#include "arith.h"
#include "stack.h"
@ -16,7 +15,6 @@
#include "idf.h"
#include "def.h"
#include "struct.h"
#include "storage.h"
#include "level.h"
#include "mes.h"
@ -43,7 +41,6 @@ stack_level() {
*/
register struct stack_level *stl = new_stack_level();
clear((char *)stl, sizeof(struct stack_level));
local_level->sl_next = stl;
stl->sl_previous = local_level;
stl->sl_level = ++level;
@ -60,7 +57,6 @@ stack_idf(idf, stl)
*/
register struct stack_entry *se = new_stack_entry();
clear((char *)se, sizeof(struct stack_entry));
/* link it into the stack level */
se->next = stl->sl_entry;
se->se_idf = idf;

View file

@ -16,14 +16,14 @@ struct stack_level {
int sl_level;
};
/* ALLOCDEF "stack_level" */
/* ALLOCDEF "stack_level" 5 */
struct stack_entry {
struct stack_entry *next;
struct idf *se_idf;
};
/* ALLOCDEF "stack_entry" */
/* ALLOCDEF "stack_entry" 5 */
extern struct stack_level *local_level;
extern struct stack_level *stack_level_of();

View file

@ -14,7 +14,6 @@
#include "label.h"
#include "expr.h"
#include "code.h"
#include "storage.h"
#include "stack.h"
#include "def.h"

View file

@ -7,4 +7,4 @@ struct stmt_block {
label st_continue;
};
/* ALLOCDEF "stmt_block" */
/* ALLOCDEF "stmt_block" 5 */

View file

@ -4,6 +4,7 @@
#include "nobitfield.h"
#include "debug.h"
#include "botch_free.h"
#include <alloc.h>
#include "arith.h"
#include "stack.h"
#include "idf.h"
@ -15,7 +16,6 @@
#include "Lpars.h"
#include "align.h"
#include "level.h"
#include "storage.h"
#include "assert.h"
#include "sizes.h"
@ -308,7 +308,6 @@ idf2sdef(idf, tp)
if (!is_anon_idf(idf))
error("unknown selector %s", idf->id_text);
*sdefp = sdef = new_sdef();
clear((char *)sdef, sizeof(struct sdef));
sdef->sd_idf = idf;
sdef->sd_stype = sdef->sd_type = error_type;
return sdef;

View file

@ -11,7 +11,7 @@ struct sdef { /* for selectors */
arith sd_offset;
};
/* ALLOCDEF "sdef" */
/* ALLOCDEF "sdef" 50 */
struct tag { /* for struct-, union- and enum tags */
struct tag *next;
@ -21,6 +21,6 @@ struct tag { /* for struct-, union- and enum tags */
};
/* ALLOCDEF "tag" */
/* ALLOCDEF "tag" 50 */
struct sdef *idf2sdef();

View file

@ -5,6 +5,7 @@
#include <em.h>
#include "debug.h"
#include "botch_free.h"
#include <alloc.h>
#include "density.h"
#include "Lpars.h"
#include "idf.h"
@ -12,7 +13,6 @@
#include "arith.h"
#include "switch.h"
#include "code.h"
#include "storage.h"
#include "assert.h"
#include "expr.h"
#include "type.h"

View file

@ -13,7 +13,7 @@ struct switch_hdr {
struct case_entry *sh_entries;
};
/* ALLOCDEF "switch_hdr" */
/* ALLOCDEF "switch_hdr" 2 */
struct case_entry {
struct case_entry *next;
@ -21,4 +21,4 @@ struct case_entry {
arith ce_value;
};
/* ALLOCDEF "case_entry" */
/* ALLOCDEF "case_entry" 40 */

View file

@ -3,7 +3,8 @@
#include "nofloat.h"
#include "nobitfield.h"
#include "alloc.h"
#include "botch_free.h"
#include <alloc.h>
#include "Lpars.h"
#include "arith.h"
#include "type.h"
@ -11,7 +12,6 @@
#include "def.h"
#include "sizes.h"
#include "align.h"
#include "storage.h"
struct type *function_of(), *array_of();
#ifndef NOBITFIELD
@ -44,7 +44,6 @@ create_type(fund)
*/
register struct type *ntp = new_type();
clear((char *)ntp, sizeof(struct type));
ntp->tp_fund = fund;
ntp->tp_size = (arith)-1;

View file

@ -44,4 +44,4 @@ extern struct type *pa_type; /* type.c */
extern arith size_of_type(), align();
/* ALLOCDEF "type" */
/* ALLOCDEF "type" 50 */