many changes: fixes and efficiency-oriented

This commit is contained in:
ceriel
1987-02-09 23:19:42 +00:00
parent 2f8580c380
commit ad72edfa49
26 changed files with 200 additions and 164 deletions

View File

@@ -102,7 +102,7 @@ rank_of_expression(ex)
}
check_conditional(expr, oper, pos_descr)
struct expr *expr;
register struct expr *expr;
char *pos_descr;
{
/* Warn if restricted C is in effect and the expression expr,
@@ -115,27 +115,29 @@ check_conditional(expr, oper, pos_descr)
}
dot2expr(expp)
register struct expr **expp;
struct expr **expp;
{
/* The token in dot is converted into an expression, a
pointer to which is stored in *expp.
*/
*expp = new_expr();
(*expp)->ex_file = dot.tk_file;
(*expp)->ex_line = dot.tk_line;
register struct expr *ex = new_expr();
*expp = ex;
ex->ex_file = dot.tk_file;
ex->ex_line = dot.tk_line;
switch (DOT) {
case IDENTIFIER:
idf2expr(*expp);
idf2expr(ex);
break;
case STRING:
string2expr(*expp);
string2expr(ex);
break;
case INTEGER:
int2expr(*expp);
int2expr(ex);
break;
#ifndef NOFLOAT
case FLOATING:
float2expr(*expp);
float2expr(ex);
break;
#endif NOFLOAT
default:
@@ -294,7 +296,7 @@ fill_int_expr(ex, ivalue, fund)
struct expr *
new_oper(tp, e1, oper, e2)
struct type *tp;
struct expr *e1, *e2;
register struct expr *e1, *e2;
{
/* A new expression is constructed which consists of the
operator oper which has e1 and e2 as operands; for a