--- ray/src/common/calcomp.h 1989/04/10 22:05:56 1.2 +++ ray/src/common/calcomp.h 1991/11/12 16:55:05 2.1 @@ -15,11 +15,12 @@ #define ARG 6 #define TICK 7 #define SYM 8 - /* also: '+', '-', '*', '/', '^', '=' */ + /* also: '+', '-', '*', '/', '^', '=', ':' */ typedef struct { char *fname; /* function name */ - int nargs; /* # of required arguments */ + short nargs; /* # of required arguments */ + short atyp; /* assignment type (':' or '=') */ double (*f)(); /* pointer to function */ } LIBR; /* a library function */ @@ -44,11 +45,17 @@ typedef struct epnode { typedef struct vardef VARDEF; /* a variable definition */ +#define MAXWORD 63 /* maximum word/id length */ +#define CNTXMARK '`' /* context mark */ + +#define isid(c) (isalnum(c) || (c) == '_' || \ + (c) == '.' || (c) == CNTXMARK) + extern double eval(), varvalue(), chanvalue(), funvalue(); extern double argument(), getnum(); extern double (*eoper[])(); extern int getinum(); -extern char *getname(), *argfun(); +extern char *getname(), *qualname(), *setcontext(), *argfun(); extern EPNODE *eparse(), *ekid(), *dlookup(), *dpop(), *dfirst(), *dnext(); extern EPNODE *getdefn(), *getchan(); extern EPNODE *getE1(), *getE2(), *getE3(), *getE4(), *getE5(), *rconst(); @@ -59,7 +66,3 @@ extern int nextc; extern int errno; #define evalue(ep) (*eoper[(ep)->type])(ep) - -#ifdef CPM -#define defined(D) D -#endif