removed tab.c, use tabgen, and some fixes
This commit is contained in:
parent
4b5e5a9764
commit
430dad523d
|
@ -5,7 +5,6 @@ Makefile
|
|||
Parameters
|
||||
body.c
|
||||
casestat.C
|
||||
char.c
|
||||
char.tab
|
||||
chk_expr.c
|
||||
chk_expr.h
|
||||
|
@ -39,7 +38,6 @@ make.tokcase
|
|||
make.tokfile
|
||||
misc.c
|
||||
misc.h
|
||||
next.c
|
||||
node.H
|
||||
node.c
|
||||
options.c
|
||||
|
@ -50,7 +48,6 @@ required.h
|
|||
scope.H
|
||||
scope.c
|
||||
statement.g
|
||||
tab.c
|
||||
tmpvar.C
|
||||
tokenname.c
|
||||
tokenname.h
|
||||
|
|
|
@ -21,9 +21,9 @@ MALLOC = $(LIBDIR)/malloc.o
|
|||
LFLAGS = $(PROFILE)
|
||||
LSRC = declar.c expression.c program.c statement.c tokenfile.c
|
||||
LOBJ = declar.o expression.o program.o statement.o tokenfile.o
|
||||
CSRC = LLlex.c LLmessage.c body.c char.c chk_expr.c code.c\
|
||||
CSRC = LLlex.c LLmessage.c body.c chk_expr.c code.c\
|
||||
cstoper.c def.c desig.c enter.c error.c idf.c input.c label.c\
|
||||
lookup.c main.c misc.c next.c node.c options.c readwrite.c\
|
||||
lookup.c main.c misc.c node.c options.c readwrite.c\
|
||||
scope.c symbol2str.c tokenname.c type.c typequiv.c progs.c
|
||||
COBJ = LLlex.o LLmessage.o body.o casestat.o char.o chk_expr.o code.o\
|
||||
cstoper.o def.o desig.o enter.o error.o idf.o input.o label.o\
|
||||
|
@ -33,7 +33,7 @@ OBJ = Lpars.o $(COBJ) $(LOBJ)
|
|||
|
||||
# Keep the next entries up to date!
|
||||
GENCFILES= Lpars.c declar.c expression.c program.c statement.c\
|
||||
tokenfile.c symbol2str.c casestat.c tmpvar.c
|
||||
tokenfile.c symbol2str.c casestat.c tmpvar.c char.c next.c
|
||||
SRC = Lpars.c $(CSRC) $(GENCFILES)
|
||||
GENGFILES= tokenfile.g
|
||||
GENHFILES= Lpars.h debugcst.h density.h errout.h idfsize.h inputtype.h\
|
||||
|
@ -95,11 +95,9 @@ tmpvar.c: make.allocd
|
|||
next.c: $(NEXTFILES) ./make.next
|
||||
./make.next $(NEXTFILES) > next.c
|
||||
|
||||
char.c: char.tab tab
|
||||
tab -fchar.tab > char.c
|
||||
char.c: char.tab
|
||||
$(EMHOME)/bin/tabgen -fchar.tab > char.c
|
||||
|
||||
tab:
|
||||
$(CC) tab.c -o tab
|
||||
depend:
|
||||
sed '/^#AUTOAUTO/,$$d' Makefile > Makefile.new
|
||||
echo '#AUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTO' >> Makefile.new
|
||||
|
|
|
@ -4,11 +4,10 @@
|
|||
%
|
||||
% CHARACTER CLASSES
|
||||
%
|
||||
%C
|
||||
STGARB:\000-\200
|
||||
%iSTGARB
|
||||
STSKIP: \r\t
|
||||
STNL:\012\013\014
|
||||
STSIMP:()*+,-/;=@[]^{}
|
||||
STSIMP:-()*+,/;=@[]^{}
|
||||
STCOMP:.:<>
|
||||
STIDF:a-zA-Z
|
||||
STSTR:'
|
||||
|
|
|
@ -19,7 +19,7 @@ int fp_used;
|
|||
|
||||
CodeFil()
|
||||
{
|
||||
if( !options['L'] )
|
||||
if ( !options['L'] )
|
||||
C_fil_dlb((label) 1, (arith) 0);
|
||||
}
|
||||
|
||||
|
@ -107,9 +107,9 @@ CodeBeginBlock(df)
|
|||
offset = CodeGtoDescr(df->prc_vis->sc_scope);
|
||||
CodeFil();
|
||||
|
||||
/* %%% initialiseren external files %%% */
|
||||
make_con(); call_ini(); /* %%%TYDELIJK%%% */
|
||||
|
||||
/* initialize external files */
|
||||
make_extfl();
|
||||
call_ini();
|
||||
break;
|
||||
|
||||
case D_PROCEDURE :
|
||||
|
|
|
@ -70,7 +70,7 @@ struct def { /* list of definitions for a name */
|
|||
/* link all definitions in a scope */
|
||||
struct idf *df_idf; /* link back to the name */
|
||||
struct scope *df_scope; /* scope in which this definition resides */
|
||||
unsigned int df_kind; /* the kind of this definition: */
|
||||
long df_kind; /* the kind of this definition: */
|
||||
#define D_PROCEDURE 0x00001 /* procedure */
|
||||
#define D_FUNCTION 0x00002 /* function */
|
||||
#define D_TYPE 0x00004 /* a type */
|
||||
|
|
|
@ -54,11 +54,11 @@ EnterProgList(Idlist)
|
|||
df->df_flags |= (D_PROGPAR | D_NOREG);
|
||||
if( !strcmp(input, idlist->nd_IDF->id_text) ) {
|
||||
df->var_name = input;
|
||||
set_inp(); /* %%% */
|
||||
set_inp();
|
||||
}
|
||||
else {
|
||||
df->var_name = output;
|
||||
set_outp(); /* %%% */
|
||||
set_outp();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -66,7 +66,7 @@ EnterProgList(Idlist)
|
|||
if( df = define(idlist->nd_IDF, CurrentScope,
|
||||
D_PARAMETER) ) {
|
||||
df->df_type = error_type;
|
||||
set_prog(df); /* %%% */
|
||||
df->df_flags |= D_PROGPAR;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
/* TYDELYK !!!!!! */
|
||||
|
||||
#include "debug.h"
|
||||
|
||||
#include <assert.h>
|
||||
#include <em.h>
|
||||
|
||||
#include "LLlex.h"
|
||||
|
@ -11,10 +8,10 @@
|
|||
#include "scope.h"
|
||||
#include "type.h"
|
||||
|
||||
arith cnt = 2; /* standaard input & output */
|
||||
int inpflag = 0; /* std input gedefinieerd of niet */
|
||||
int outpflag = 0; /* std output gedefinieerd of niet */
|
||||
label con_label;
|
||||
static int extflc; /* number of external files */
|
||||
static int inpflag = 0; /* input mentioned in heading ? */
|
||||
static int outpflag = 0; /* output mentioned in heading ? */
|
||||
static label extfl_label; /* label of array of file pointers */
|
||||
|
||||
set_inp()
|
||||
{
|
||||
|
@ -26,46 +23,39 @@ set_outp()
|
|||
outpflag = 1;
|
||||
}
|
||||
|
||||
set_prog(df)
|
||||
struct def *df;
|
||||
{
|
||||
cnt++;
|
||||
df->df_flags |= 0x40;
|
||||
}
|
||||
|
||||
make_con()
|
||||
make_extfl()
|
||||
{
|
||||
register struct def *df;
|
||||
|
||||
con_label = ++data_label;
|
||||
C_df_dlb(con_label);
|
||||
C_con_cst(cnt);
|
||||
extfl_label = ++data_label;
|
||||
C_df_dlb(extfl_label);
|
||||
|
||||
if( inpflag )
|
||||
C_con_dnam("input", (arith) 0);
|
||||
C_con_dnam(input, (arith) 0);
|
||||
else
|
||||
C_con_cst((arith) -1);
|
||||
C_con_ucon("0", pointer_size);
|
||||
|
||||
if( outpflag )
|
||||
C_con_dnam("output", (arith) 0);
|
||||
C_con_dnam(output, (arith) 0);
|
||||
else
|
||||
C_con_cst((arith) -1);
|
||||
C_con_ucon("0", pointer_size);
|
||||
|
||||
extflc = 2;
|
||||
|
||||
for( df = GlobalScope->sc_def; df; df = df->df_nextinscope )
|
||||
if( df->df_flags & 0x40 ) {
|
||||
if( (df->df_flags & D_PROGPAR) &&
|
||||
df->var_name != input && df->var_name != output) {
|
||||
C_con_dnam(df->var_name, (arith) 0);
|
||||
cnt--;
|
||||
extflc++;
|
||||
}
|
||||
|
||||
assert(cnt == 2);
|
||||
}
|
||||
|
||||
call_ini()
|
||||
{
|
||||
C_lxl((arith) 0);
|
||||
C_lae_dlb(con_label, (arith) 0);
|
||||
C_zer(pointer_size);
|
||||
C_lae_dlb(extfl_label, (arith) 0);
|
||||
C_loc((arith) extflc);
|
||||
C_lxa((arith) 0);
|
||||
C_cal("_ini");
|
||||
C_asp(4 * pointer_size);
|
||||
C_asp(3 * pointer_size + word_size);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue