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.1 by greg, Thu Feb 2 10:34:27 1989 UTC vs.
Revision 1.4 by greg, Thu Jun 29 09:44:33 1989 UTC

# Line 128 | Line 128 | register EPNODE  *epar;
128  
129      switch (epar->type) {
130  
131 + #if  defined(VARIABLE) || defined(FUNCTION)
132          case VAR:
133              varfree(epar->v.ln);
134              break;
135 + #endif
136              
137          case SYM:
138              freestr(epar->v.name);
# Line 347 | Line 349 | char  *err;
349      register int  i;
350  
351      eputs(linbuf);
352 <    if (linbuf[0] == '\0' || linbuf[strlen(linbuf)-1] != '\n')
352 >    if (linbuf[strlen(linbuf)-1] != '\n')
353          eputs("\n");
354      for (i = 0; i < linepos-1; i++)
355          eputs(linbuf[i] == '\t' ? "\t" : " ");
# Line 515 | Line 517 | EPNODE *
517   getE4()                         /* E4 -> ADDOP E5 */
518                                  /*       E5 */
519   {
520 <    register EPNODE  *ep1;
520 >    register EPNODE  *ep1, *ep2;
521  
522      if (nextc == '-') {
523          scan();
524 <        ep1 = newnode();
525 < #ifndef  RCONST
526 <        if (isdecimal(nextc)) {
527 <            ep1->type = NUM;
526 <            ep1->v.num = -getnum();
527 <            return(ep1);
524 >        ep2 = getE5();
525 >        if (ep2->type == NUM) {
526 >                ep2->v.num = -ep2->v.num;
527 >                return(ep2);
528          }
529 < #endif
529 >        ep1 = newnode();
530          ep1->type = UMINUS;
531 <        addekid(ep1, getE5());
532 < #ifdef  RCONST
533 <        if (ep1->v.kid->type == NUM)
534 <                ep1 = rconst(ep1);
535 < #endif
531 >        addekid(ep1, ep2);
532          return(ep1);
533      }
534      if (nextc == '+')

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines