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

Comparing ray/src/common/caldefn.c (file contents):
Revision 2.39 by greg, Thu Jun 20 21:21:24 2024 UTC vs.
Revision 2.40 by greg, Mon Sep 16 17:31:14 2024 UTC

# Line 60 | Line 60 | static EPNODE  *outchan;
60  
61   static int  optimized = 0;              /* are we optimized? */
62  
63 < EPNODE  *curfunc = NULL;
63 > EPNODE  *ecurfunc = NULL;
64  
65  
66   void
# Line 82 | Line 82 | fcompile(                      /* get definitions from a file */
82   #endif
83     initfile(fp, fname, 0);
84      while (nextc != EOF)
85 <        getstatement();
85 >        egetstatement();
86      if (fname != NULL)
87          fclose(fp);
88   #ifdef getc_unlocked
# Line 101 | Line 101 | scompile(              /* get definitions from a string */
101   {
102      initstr(str, fn, ln);
103      while (nextc != EOF)
104 <        getstatement();
104 >        egetstatement();
105   }
106  
107  
# Line 442 | Line 442 | varinsert(                     /* get a link to a variable */
442          return(vp);
443      }
444      vp = (VARDEF *)emalloc(sizeof(VARDEF));
445 <    vp->lib = liblookup(name);
445 >    vp->lib = eliblookup(name);
446      if (vp->lib == NULL)                /* if name not in library */
447          name = qualname(name, 0);       /* use fully qualified version */
448      hv = hash(name);
# Line 456 | Line 456 | varinsert(                     /* get a link to a variable */
456  
457  
458   void
459 < libupdate(                      /* update library links */
459 > elibupdate(                     /* update library links */
460          char  *fn
461   )
462   {
# Line 466 | Line 466 | libupdate(                     /* update library links */
466      for (i = 0; i < NHASH; i++)
467          for (vp = hashtbl[i]; vp != NULL; vp = vp->next)
468              if ((vp->lib != NULL) | (fn == NULL) || !strcmp(fn, vp->name))
469 <                vp->lib = liblookup(vp->name);
469 >                vp->lib = eliblookup(vp->name);
470   }
471  
472  
# Line 560 | Line 560 | dpush(                 /* push on a definition */
560  
561  
562   void
563 < addchan(                        /* add an output channel assignment */
563 > eaddchan(                       /* add an output channel assignment */
564          EPNODE  *sp
565   )
566   {
# Line 591 | Line 591 | addchan(                       /* add an output channel assignment */
591  
592  
593   void
594 < getstatement(void)                      /* get next statement */
594 > egetstatement(void)                     /* get next statement */
595   {
596      EPNODE  *ep;
597      char  *qname;
598      VARDEF  *vdef;
599  
600      if (nextc == ';') {         /* empty statement */
601 <        scan();
601 >        escan();
602          return;
603      }
604      if (esupport&E_OUTCHAN &&
605                  nextc == '$') {         /* channel assignment */
606 <        ep = getchan();
606 >        ep = egetchan();
607          if (optimized)
608              epoptimize(ep);             /* optimize new chan expr */
609 <        addchan(ep);
609 >        eaddchan(ep);
610      } else {                            /* ordinary definition */
611 <        ep = getdefn();
611 >        ep = egetdefn();
612          if (optimized)
613              epoptimize(ep);             /* optimize new statement */
614          qname = qualname(dfn_name(ep), 0);
# Line 632 | Line 632 | getstatement(void)                     /* get next statement */
632      }
633      if (nextc != EOF) {
634          if (nextc != ';')
635 <            syntax("';' expected");
636 <        scan();
635 >            esyntax("';' expected");
636 >        escan();
637      }
638   }
639  
640  
641   EPNODE *
642 < getdefn(void)
642 > egetdefn(void)
643          /* A -> SYM = E1 */
644          /*      SYM : E1 */
645          /*      FUNC(SYM,..) = E1 */
# Line 648 | Line 648 | getdefn(void)
648      EPNODE  *ep1, *ep2;
649  
650      if (!isalpha(nextc) & (nextc != CNTXMARK))
651 <        syntax("illegal variable name");
651 >        esyntax("illegal variable name");
652  
653      ep1 = newnode();
654      ep1->type = SYM;
# Line 660 | Line 660 | getdefn(void)
660          addekid(ep2, ep1);
661          ep1 = ep2;
662          do {
663 <            scan();
663 >            escan();
664              if (!isalpha(nextc))
665 <                syntax("illegal parameter name");
665 >                esyntax("illegal parameter name");
666              ep2 = newnode();
667              ep2->type = SYM;
668              ep2->v.name = savestr(getname());
669              if (strchr(ep2->v.name, CNTXMARK) != NULL)
670 <                syntax("illegal parameter name");
670 >                esyntax("illegal parameter name");
671              addekid(ep1, ep2);
672          } while (nextc == ',');
673          if (nextc != ')')
674 <            syntax("')' expected");
675 <        scan();
676 <        curfunc = ep1;
674 >            esyntax("')' expected");
675 >        escan();
676 >        ecurfunc = ep1;
677      }
678  
679      if ((nextc != '=') & (nextc != ':'))
680 <        syntax("'=' or ':' expected");
680 >        esyntax("'=' or ':' expected");
681  
682      ep2 = newnode();
683      ep2->type = nextc;
684 <    scan();
684 >    escan();
685      addekid(ep2, ep1);
686      addekid(ep2, getE1());
687  
# Line 694 | Line 694 | getdefn(void)
694          ep1->type = NUM;
695          addekid(ep2, ep1);
696      }
697 <    curfunc = NULL;
697 >    ecurfunc = NULL;
698  
699      return(ep2);
700   }
701  
702  
703   EPNODE *
704 < getchan(void)                   /* A -> $N = E1 */
704 > egetchan(void)                  /* A -> $N = E1 */
705   {
706      EPNODE  *ep1, *ep2;
707  
708      if (nextc != '$')
709 <        syntax("missing '$'");
710 <    scan();
709 >        esyntax("missing '$'");
710 >    escan();
711  
712      ep1 = newnode();
713      ep1->type = CHAN;
714      ep1->v.chan = getinum();
715  
716      if (nextc != '=')
717 <        syntax("'=' expected");
718 <    scan();
717 >        esyntax("'=' expected");
718 >    escan();
719  
720      ep2 = newnode();
721      ep2->type = '=';

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines