changed some names of field selectors

This commit is contained in:
ceriel
1987-03-18 09:29:56 +00:00
parent 50a71251a1
commit 8e9f1f781c
6 changed files with 120 additions and 120 deletions

View File

@@ -111,23 +111,23 @@ void code_val(e) register struct expr *e;
case E_VAR: {
register struct symbol *var=e->u.var;
if (var->type&T_BUILTIN)
Loe(var->info.vc.st.builtin, var->info.vc.offset);
if (var->s_type&T_BUILTIN)
Loe(var->s_info.vc.st.builtin, var->s_info.vc.offset);
else
if (var->info.vc.st.level==curr_level)
if (var->type&T_PARAM && (var->type&T_TYPE)!=T_VALUE)
Lil(var->info.vc.offset);
if (var->s_info.vc.st.level==curr_level)
if (var->s_type&T_PARAM && (var->s_type&T_TYPE)!=T_VALUE)
Lil(var->s_info.vc.offset);
else
Lol(var->info.vc.offset);
Lol(var->s_info.vc.offset);
else {
if (var->info.vc.offset<0)
lxl(curr_level-var->info.vc.st.level);
if (var->s_info.vc.offset<0)
lxl(curr_level-var->s_info.vc.st.level);
else
lxa(curr_level-var->info.vc.st.level);
if (var->type&T_PARAM && (var->type&T_TYPE)!=T_VALUE)
Lif(var->info.vc.offset);
lxa(curr_level-var->s_info.vc.st.level);
if (var->s_type&T_PARAM && (var->s_type&T_TYPE)!=T_VALUE)
Lif(var->s_info.vc.offset);
else
Lof(var->info.vc.offset);
Lof(var->s_info.vc.offset);
}
}break;
case E_CONST:
@@ -233,25 +233,25 @@ void code_addr(e) register struct expr *e;
case E_VAR: { /* variable or channel */
register struct symbol *var=e->u.var;
if (var->type&T_BUILTIN)
lae(var->info.vc.st.builtin, var->info.vc.offset);
if (var->s_type&T_BUILTIN)
lae(var->s_info.vc.st.builtin, var->s_info.vc.offset);
else
if (var->info.vc.st.level==curr_level)
if (var->type&T_PARAM
&& (var->type&(T_TYPE|T_ARR))!=T_VALUE)
Lolp(var->info.vc.offset);
if (var->s_info.vc.st.level==curr_level)
if (var->s_type&T_PARAM
&& (var->s_type&(T_TYPE|T_ARR))!=T_VALUE)
Lolp(var->s_info.vc.offset);
else
lal(var->info.vc.offset);
lal(var->s_info.vc.offset);
else {
if (var->info.vc.offset<0)
lxl(curr_level-var->info.vc.st.level);
if (var->s_info.vc.offset<0)
lxl(curr_level-var->s_info.vc.st.level);
else
lxa(curr_level-var->info.vc.st.level);
if (var->type&T_PARAM
&& (var->type&(T_TYPE|T_ARR))!=T_VALUE)
Lofp(var->info.vc.offset);
lxa(curr_level-var->s_info.vc.st.level);
if (var->s_type&T_PARAM
&& (var->s_type&(T_TYPE|T_ARR))!=T_VALUE)
Lofp(var->s_info.vc.offset);
else
adp(var->info.vc.offset);
adp(var->s_info.vc.offset);
}
} break;
case E_TABLE:
@@ -440,12 +440,12 @@ void code_void(e) register struct expr *e;
break;
case E_CALL: {
register size=0;
register struct expr_list *elp=e->u.call.args;
register struct symbol *proc=e->u.call.proc->u.var;
register struct par_list *pars=proc->info.proc.pars;
register struct expr_list *elp=e->u.call.c_args;
register struct symbol *proc=e->u.call.c_proc->u.var;
register struct par_list *pars=proc->s_info.proc.pars;
while (elp!=nil) {
if (pars->type==T_VALUE) {
if (pars->pr_type==T_VALUE) {
code_val(elp->arg);
size+=vz;
} else {
@@ -453,27 +453,27 @@ void code_void(e) register struct expr *e;
size+=pz;
}
elp=elp->next;
pars=pars->next;
pars=pars->pr_next;
}
if (proc->type&T_BUILTIN) {
cal(proc->info.proc.st.builtin);
if (proc->s_type&T_BUILTIN) {
cal(proc->s_info.proc.st.builtin);
asp(size);
} else {
if (proc->info.proc.st.level>curr_level) {
if (proc->s_info.proc.st.level>curr_level) {
/* Call down */
lor0();
} else
if (proc->info.proc.st.level==curr_level) {
if (proc->s_info.proc.st.level==curr_level) {
/* Call at same level */
Lolp(0);
} else {
/* Call up */
lxa(curr_level-proc->info.proc.st.level);
lxa(curr_level-proc->s_info.proc.st.level);
loi(pz);
}
cal(proc_label(proc->info.proc.label, proc->name));
cal(proc_label(proc->s_info.proc.label, proc->s_name));
asp(size+pz);
if (proc->info.proc.file!=curr_file) fil();
if (proc->s_info.proc.file!=curr_file) fil();
}
} break;
}
@@ -486,11 +486,11 @@ void prologue(proc) register struct symbol *proc;
if (err) return;
proc->info.proc.st.level= ++curr_level;
proc->info.proc.file= curr_file;
proc->info.proc.label= ++P;
proc->s_info.proc.st.level= ++curr_level;
proc->s_info.proc.file= curr_file;
proc->s_info.proc.label= ++P;
curr_offset=min_offset=0;
pro(proc_label(proc->info.proc.label, proc->name));
pro(proc_label(proc->s_info.proc.label, proc->s_name));
if (curr_level==1) fil();
}
@@ -515,7 +515,7 @@ void rep_init(v, e1, e2, r_info)
r_info->BEGIN=r_info->END=0;
code_val(e1);
Stl(v->info.vc.offset);
Stl(v->s_info.vc.offset);
if (!constant(e1) || !constant(e2)) {
if (constant(e2) && word_constant(e2->u.const)) {
@@ -540,10 +540,10 @@ void rep_test(v, e1, e2, r_info)
{
if (err) return;
Inl(v->info.vc.offset);
Inl(v->s_info.vc.offset);
if (constant(e1) && constant(e2)) {
Lol(v->info.vc.offset);
Lol(v->s_info.vc.offset);
Loc(e1->u.const+e2->u.const);
if (vz>wz) {
cmi();