ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/calexpr.c
(Generate patch)

Comparing ray/src/common/calexpr.c (file contents):
Revision 1.2 by greg, Mon Apr 10 22:06:37 1989 UTC vs.
Revision 1.5 by greg, Tue Jun 26 09:15:11 1990 UTC

# Line 39 | Line 39 | extern double  atof(), pow();
39   extern char  *fgets(), *savestr();
40   extern char  *emalloc(), *ecalloc();
41   extern EPNODE  *curfunc;
42 < extern double  efunc(), evariable(), enumber(), euminus(), echannel();
43 < extern double  eargument(), eadd(), esubtr(), emult(), edivi(), epow();
44 < extern double  ebotch();
42 > extern double  efunc(), evariable();
43 > static double  euminus(), echannel(), eargument(), enumber();
44 > static double  eadd(), esubtr(), emult(), edivi(), epow();
45 > static double  ebotch();
46   extern int  errno;
47  
48   int  nextc;                             /* lookahead character */
# Line 349 | Line 350 | char  *err;
350      register int  i;
351  
352      eputs(linbuf);
353 <    if (linbuf[0] == '\0' || linbuf[strlen(linbuf)-1] != '\n')
353 >    if (linbuf[strlen(linbuf)-1] != '\n')
354          eputs("\n");
355      for (i = 0; i < linepos-1; i++)
356          eputs(linbuf[i] == '\t' ? "\t" : " ");
# Line 517 | Line 518 | EPNODE *
518   getE4()                         /* E4 -> ADDOP E5 */
519                                  /*       E5 */
520   {
521 <    register EPNODE  *ep1;
521 >    register EPNODE  *ep1, *ep2;
522  
523      if (nextc == '-') {
524          scan();
525 <        ep1 = newnode();
526 < #ifndef  RCONST
527 <        if (isdecimal(nextc)) {
528 <            ep1->type = NUM;
528 <            ep1->v.num = -getnum();
529 <            return(ep1);
525 >        ep2 = getE5();
526 >        if (ep2->type == NUM) {
527 >                ep2->v.num = -ep2->v.num;
528 >                return(ep2);
529          }
530 < #endif
530 >        ep1 = newnode();
531          ep1->type = UMINUS;
532 <        addekid(ep1, getE5());
534 < #ifdef  RCONST
535 <        if (ep1->v.kid->type == NUM)
536 <                ep1 = rconst(ep1);
537 < #endif
532 >        addekid(ep1, ep2);
533          return(ep1);
534      }
535      if (nextc == '+')

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines