|
|
@ -753,7 +753,7 @@ static INPparseNode *PTdifferentiate(INPparseNode * p, int varnum) |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
default: |
|
|
default: |
|
|
fprintf(stderr, "Internal error: bad node type %d\n", p->type); |
|
|
|
|
|
|
|
|
fprintf(stderr, "Error: bad node type %d\n", p->type); |
|
|
newp = NULL; |
|
|
newp = NULL; |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
@ -778,6 +778,10 @@ static INPparseNode *mkb(int type, INPparseNode * left, |
|
|
INPparseNode *p; |
|
|
INPparseNode *p; |
|
|
int i; |
|
|
int i; |
|
|
|
|
|
|
|
|
|
|
|
if (!right || !left) { |
|
|
|
|
|
return (NULL); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
if ((right->type == PT_CONSTANT) && (left->type == PT_CONSTANT)) { |
|
|
if ((right->type == PT_CONSTANT) && (left->type == PT_CONSTANT)) { |
|
|
double value; |
|
|
double value; |
|
|
switch (type) { |
|
|
switch (type) { |
|
|
@ -890,6 +894,9 @@ static INPparseNode *mkf(int type, INPparseNode * arg) |
|
|
INPparseNode *p; |
|
|
INPparseNode *p; |
|
|
int i; |
|
|
int i; |
|
|
|
|
|
|
|
|
|
|
|
if (!arg) |
|
|
|
|
|
return NULL; |
|
|
|
|
|
|
|
|
for (i = 0; i < NUM_FUNCS; i++) |
|
|
for (i = 0; i < NUM_FUNCS; i++) |
|
|
if (funcs[i].number == type) |
|
|
if (funcs[i].number == type) |
|
|
break; |
|
|
break; |
|
|
|