version 1.1, 2010/09/07 12:53:06
|
version 1.2, 2013/06/12 09:47:52
|
Line 212 Cell *setsymtab(const char *n, const cha
|
Line 212 Cell *setsymtab(const char *n, const cha
|
|
|
if (n != NULL && (p = lookup(n, tp)) != NULL) { |
if (n != NULL && (p = lookup(n, tp)) != NULL) { |
dprintf( ("setsymtab found %p: n=%s s=\"%s\" f=%g t=%o\n", |
dprintf( ("setsymtab found %p: n=%s s=\"%s\" f=%g t=%o\n", |
p, NN(p->nval), NN(p->sval), p->fval, p->tval) ); |
(void*)p, NN(p->nval), NN(p->sval), p->fval, p->tval) ); |
return(p); |
return(p); |
} |
} |
p = (Cell *) malloc(sizeof(Cell)); |
p = (Cell *) malloc(sizeof(Cell)); |
Line 231 Cell *setsymtab(const char *n, const cha
|
Line 231 Cell *setsymtab(const char *n, const cha
|
p->cnext = tp->tab[h]; |
p->cnext = tp->tab[h]; |
tp->tab[h] = p; |
tp->tab[h] = p; |
dprintf( ("setsymtab set %p: n=%s s=\"%s\" f=%g t=%o\n", |
dprintf( ("setsymtab set %p: n=%s s=\"%s\" f=%g t=%o\n", |
p, p->nval, p->sval, p->fval, p->tval) ); |
(void*)p, p->nval, p->sval, p->fval, p->tval) ); |
return(p); |
return(p); |
} |
} |
|
|
Line 298 Awkfloat setfval(Cell *vp, Awkfloat f) /
|
Line 298 Awkfloat setfval(Cell *vp, Awkfloat f) /
|
xfree(vp->sval); /* free any previous string */ |
xfree(vp->sval); /* free any previous string */ |
vp->tval &= ~STR; /* mark string invalid */ |
vp->tval &= ~STR; /* mark string invalid */ |
vp->tval |= NUM; /* mark number ok */ |
vp->tval |= NUM; /* mark number ok */ |
dprintf( ("setfval %p: %s = %g, t=%o\n", vp, NN(vp->nval), f, vp->tval) ); |
if (f == -0) /* who would have thought this possible? */ |
|
f = 0; |
|
dprintf( ("setfval %p: %s = %g, t=%o\n", (void*)vp, NN(vp->nval), f, vp->tval) ); |
return vp->fval = f; |
return vp->fval = f; |
} |
} |
|
|
Line 318 char *setsval(Cell *vp, const char *s) /
|
Line 320 char *setsval(Cell *vp, const char *s) /
|
int fldno; |
int fldno; |
|
|
dprintf( ("starting setsval %p: %s = \"%s\", t=%o, r,f=%d,%d\n", |
dprintf( ("starting setsval %p: %s = \"%s\", t=%o, r,f=%d,%d\n", |
vp, NN(vp->nval), s, vp->tval, donerec, donefld) ); |
(void*)vp, NN(vp->nval), s, vp->tval, donerec, donefld) ); |
if ((vp->tval & (NUM | STR)) == 0) |
if ((vp->tval & (NUM | STR)) == 0) |
funnyvar(vp, "assign to"); |
funnyvar(vp, "assign to"); |
if (isfld(vp)) { |
if (isfld(vp)) { |
Line 338 char *setsval(Cell *vp, const char *s) /
|
Line 340 char *setsval(Cell *vp, const char *s) /
|
vp->tval |= STR; |
vp->tval |= STR; |
vp->tval &= ~DONTFREE; |
vp->tval &= ~DONTFREE; |
dprintf( ("setsval %p: %s = \"%s (%p) \", t=%o r,f=%d,%d\n", |
dprintf( ("setsval %p: %s = \"%s (%p) \", t=%o r,f=%d,%d\n", |
vp, NN(vp->nval), t,t, vp->tval, donerec, donefld) ); |
(void*)vp, NN(vp->nval), t,t, vp->tval, donerec, donefld) ); |
return(vp->sval = t); |
return(vp->sval = t); |
} |
} |
|
|
Line 355 Awkfloat getfval(Cell *vp) /* get float
|
Line 357 Awkfloat getfval(Cell *vp) /* get float
|
if (is_number(vp->sval) && !(vp->tval&CON)) |
if (is_number(vp->sval) && !(vp->tval&CON)) |
vp->tval |= NUM; /* make NUM only sparingly */ |
vp->tval |= NUM; /* make NUM only sparingly */ |
} |
} |
dprintf( ("getfval %p: %s = %g, t=%o\n", vp, NN(vp->nval), vp->fval, vp->tval) ); |
dprintf( ("getfval %p: %s = %g, t=%o\n", |
|
(void*)vp, NN(vp->nval), vp->fval, vp->tval) ); |
return(vp->fval); |
return(vp->fval); |
} |
} |
|
|
Line 381 static char *get_str_val(Cell *vp, char
|
Line 384 static char *get_str_val(Cell *vp, char
|
vp->tval &= ~DONTFREE; |
vp->tval &= ~DONTFREE; |
vp->tval |= STR; |
vp->tval |= STR; |
} |
} |
dprintf( ("getsval %p: %s = \"%s (%p)\", t=%o\n", vp, NN(vp->nval), vp->sval, vp->sval, vp->tval) ); |
dprintf( ("getsval %p: %s = \"%s (%p)\", t=%o\n", |
|
(void*)vp, NN(vp->nval), vp->sval, vp->sval, vp->tval) ); |
return(vp->sval); |
return(vp->sval); |
} |
} |
|
|