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

Comparing ray/src/common/calcomp.h (file contents):
Revision 1.2 by greg, Mon Apr 10 22:05:56 1989 UTC vs.
Revision 2.2 by greg, Mon Sep 21 12:01:33 1992 UTC

# Line 1 | Line 1
1 < /* Copyright (c) 1986 Regents of the University of California */
1 > /* Copyright (c) 1992 Regents of the University of California */
2  
3   /* SCCSid "$SunId$ LBL" */
4  
# Line 7 | Line 7
7   *
8   */
9                                  /* EPNODE types */
10 < #define  VAR            1
11 < #define  NUM            2
12 < #define  UMINUS         3
13 < #define  CHAN           4
14 < #define  FUNC           5
15 < #define  ARG            6
16 < #define  TICK           7
17 < #define  SYM            8
18 <                                /* also: '+', '-', '*', '/', '^', '=' */
10 > #define  VAR            1
11 > #define  NUM            2
12 > #define  UMINUS         3
13 > #define  CHAN           4
14 > #define  FUNC           5
15 > #define  ARG            6
16 > #define  TICK           7
17 > #define  SYM            8
18 >                                /* also: '+', '-', '*', '/', '^', '=', ':' */
19  
20   typedef struct {
21      char  *fname;               /* function name */
22 <    int  nargs;                 /* # of required arguments */
22 >    short  nargs;               /* # of required arguments */
23 >    short  atyp;                /* assignment type (':' or '=') */
24      double  (*f)();             /* pointer to function */
25   }  LIBR;                /* a library function */
26  
27   typedef struct epnode {
28 <    int  type;                  /* node type */
28 >    int  type;                  /* node type */
29      struct epnode  *sibling;    /* next child this level */
30      union {
31          struct epnode  *kid;    /* first child */
32 <        double  num;            /* number */
32 >        double  num;            /* number */
33          char  *name;            /* symbol name */
34          int  chan;              /* channel number */
35          long  tick;             /* timestamp */
36          struct vardef {
37              char  *name;                /* variable name */
38 <            int  nlinks;                /* number of references */
38 >            int  nlinks;                /* number of references */
39              struct epnode  *def;        /* definition */
40              LIBR  *lib;                 /* library definition */
41              struct vardef  *next;       /* next in hash list */
# Line 44 | Line 45 | typedef struct epnode {
45  
46   typedef struct vardef  VARDEF;  /* a variable definition */
47  
48 + #define  MAXWORD        63              /* maximum word/id length */
49 + #define  CNTXMARK       '`'             /* context mark */
50 +
51 + #define  isid(c)        (isalnum(c) || (c) == '_' || \
52 +                        (c) == '.' || (c) == CNTXMARK)
53 +
54   extern double  eval(), varvalue(), chanvalue(), funvalue();
55   extern double  argument(), getnum();
56   extern double  (*eoper[])();
57   extern int  getinum();
58 < extern char  *getname(), *argfun();
58 > extern char  *getname(), *qualname(), *setcontext(), *argfun();
59   extern EPNODE  *eparse(), *ekid(), *dlookup(), *dpop(), *dfirst(), *dnext();
60   extern EPNODE  *getdefn(), *getchan();
61   extern EPNODE  *getE1(), *getE2(), *getE3(), *getE4(), *getE5(), *rconst();
# Line 56 | Line 63 | extern VARDEF  *varinsert(), *varlookup(), *argf();
63   extern LIBR  *liblookup();
64   extern long  eclock;
65   extern int  nextc;
59 extern int  errno;
66  
67 < #define  evalue(ep)     (*eoper[(ep)->type])(ep)
62 <
63 < #ifdef  CPM
64 < #define  defined(D)     D
65 < #endif
67 > #define  evalue(ep)     (*eoper[(ep)->type])(ep)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines