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 2.2 by greg, Mon Sep 21 12:01:33 1992 UTC vs.
Revision 2.10 by schorsch, Sat Jun 7 12:50:20 2003 UTC

# Line 1 | Line 1
1 < /* Copyright (c) 1992 Regents of the University of California */
2 <
3 < /* SCCSid "$SunId$ LBL" */
4 <
1 > /* RCSid $Id$ */
2   /*
3   *  calcomp.h - header file for expression parser.
7 *
4   */
5 <                                /* EPNODE types */
5 > #ifndef _RAD_CALCOMP_H_
6 > #define _RAD_CALCOMP_H_
7 > #ifdef __cplusplus
8 > extern "C" {
9 > #endif
10 >
11 >
12 > #include "copyright.h"
13 >
14 > #include <stdio.h>
15 >
16   #define  VAR            1
17   #define  NUM            2
18   #define  UMINUS         3
# Line 32 | Line 38 | typedef struct epnode {
38          double  num;            /* number */
39          char  *name;            /* symbol name */
40          int  chan;              /* channel number */
41 <        long  tick;             /* timestamp */
41 >        unsigned long  tick;    /* timestamp */
42          struct vardef {
43              char  *name;                /* variable name */
44              int  nlinks;                /* number of references */
# Line 45 | Line 51 | typedef struct epnode {
51  
52   typedef struct vardef  VARDEF;  /* a variable definition */
53  
54 < #define  MAXWORD        63              /* maximum word/id length */
54 > #define  MAXWORD        127             /* maximum word/id length */
55   #define  CNTXMARK       '`'             /* context mark */
56  
57   #define  isid(c)        (isalnum(c) || (c) == '_' || \
58                          (c) == '.' || (c) == CNTXMARK)
59  
60 < extern double  eval(), varvalue(), chanvalue(), funvalue();
61 < extern double  argument(), getnum();
60 > #define  evalue(ep)     (*eoper[(ep)->type])(ep)
61 >
62 >                                        /* flags to set in esupport */
63 > #define  E_VARIABLE     001
64 > #define  E_FUNCTION     002
65 > #define  E_INCHAN       004
66 > #define  E_OUTCHAN      010
67 > #define  E_RCONST       020
68 > #define  E_REDEFW       040
69 >
70   extern double  (*eoper[])();
71 < extern int  getinum();
72 < extern char  *getname(), *qualname(), *setcontext(), *argfun();
73 < extern EPNODE  *eparse(), *ekid(), *dlookup(), *dpop(), *dfirst(), *dnext();
60 < extern EPNODE  *getdefn(), *getchan();
61 < extern EPNODE  *getE1(), *getE2(), *getE3(), *getE4(), *getE5(), *rconst();
62 < extern VARDEF  *varinsert(), *varlookup(), *argf();
63 < extern LIBR  *liblookup();
64 < extern long  eclock;
71 > extern unsigned long  eclock;
72 > extern unsigned int  esupport;
73 > extern EPNODE   *curfunc;
74   extern int  nextc;
75  
76 < #define  evalue(ep)     (*eoper[(ep)->type])(ep)
76 >                                        /* defined in caldefn.c */
77 > extern void     fcompile(char *fname);
78 > extern void     scompile(char *str, char *fname, int ln);
79 > extern double   varvalue(char *vname);
80 > extern double   evariable(EPNODE *ep);
81 > extern void     varset(char *fname, int assign, double val);
82 > extern void     dclear(char *name);
83 > extern void     dremove(char *name);
84 > extern int      vardefined(char *name);
85 > extern char     *setcontext(char *ctx);
86 > extern char     *pushcontext(char *ctx);
87 > extern char     *popcontext(void);
88 > extern char     *qualname(char *nam, int lvl);
89 > extern int      incontext(char *qn);
90 > extern void     chanout(void (*cs)(int n, double v));
91 > extern void     dcleanup(int lvl);
92 > extern EPNODE   *dlookup(char *name);
93 > extern VARDEF   *varlookup(char *name);
94 > extern VARDEF   *varinsert(char *name);
95 > extern void     varfree(VARDEF *ln);
96 > extern EPNODE   *dfirst(void);
97 > extern EPNODE   *dnext(void);
98 > extern EPNODE   *dpop(char *name);
99 > extern void     dpush(char *nm, EPNODE *ep);
100 > extern void     addchan(EPNODE *sp);
101 > extern void     getstatement();
102 > extern EPNODE   *getdefn();
103 > extern EPNODE   *getchan();
104 >                                        /* defined in calexpr.c */
105 > extern EPNODE   *eparse(char *expr);
106 > extern double   eval(char *expr);
107 > extern int      epcmp(EPNODE *ep1, EPNODE *ep2);
108 > extern void     epfree(EPNODE *epar);
109 > extern EPNODE   *ekid(EPNODE *ep, int n);
110 > extern int      nekids(EPNODE *ep);
111 > extern void     initfile(FILE *fp, char *fn, int ln);
112 > extern void     initstr(char *s, char *fn, int ln);
113 > extern void     getscanpos(char **fnp, int *lnp, char **spp, FILE **fpp);
114 > extern int      scan(void);
115 > extern char     *long2ascii(long l);
116 > extern void     syntax(char *err);
117 > extern void     addekid(EPNODE *ep, EPNODE *ekid);
118 > extern char     *getname(void);
119 > extern int      getinum(void);
120 > extern double   getnum(void);
121 > extern EPNODE   *getE1(void);
122 > extern EPNODE   *getE2(void);
123 > extern EPNODE   *getE3(void);
124 > extern EPNODE   *getE4(void);
125 > extern EPNODE   *getE5(void);
126 > extern EPNODE   *rconst(EPNODE *epar);
127 > extern int      isconstvar(EPNODE *ep);
128 > extern int      isconstfun(EPNODE *ep);
129 >                                        /* defined in calfunc.c */
130 > extern int      fundefined(char *fname);
131 > extern double   funvalue(char *fname, int n, double *a);
132 > extern void     funset(char *fname, int nargs, int assign, double (*fptr)());
133 > extern int      nargum(void);
134 > extern double   argument(int n);
135 > extern VARDEF   *argf(int n);
136 > extern char     *argfun(int n);
137 > extern double   efunc(EPNODE *ep);
138 > extern LIBR     *liblookup(char *fname);
139 > extern void     libupdate(char *fn);
140 >                                        /* defined in calprnt.c */
141 > extern void     eprint(EPNODE *ep, FILE *fp);
142 > extern void     dprint(char *name, FILE *fp);
143 >                                        /* defined in savestr.c */
144 > extern char     *savestr(char *str);
145 > extern void     freestr(char *s);
146 > extern int      shash(char *s);
147 >                                        /* defined in ealloc.c */
148 > extern char     *emalloc(unsigned int n);
149 > extern char     *ecalloc(unsigned int ne, unsigned int es);
150 > extern char     *erealloc(char *cp, unsigned int n);
151 > extern void     efree(char *cp);
152 >                                        /* miscellaneous */
153 > extern void     eputs(char *s);
154 > extern void     wputs(char *s);
155 > extern void     quit(int code);
156 >                                        /* defined by client */
157 > extern double   chanvalue(int n);
158 >
159 >
160 > #ifdef __cplusplus
161 > }
162 > #endif
163 > #endif /* _RAD_CALCOMP_H_ */
164 >

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines