Annotation of OpenXM_contrib2/asir2000/parse/parse.h, Revision 1.1
1.1 ! noro 1: /* $OpenXM: OpenXM/src/asir99/parse/parse.h,v 1.1.1.1 1999/11/10 08:12:34 noro Exp $ */
! 2: # if defined(THINK_C) || defined(VISUAL)
! 3: #include <time.h>
! 4: #else
! 5: #include <sys/time.h>
! 6: #include <sys/resource.h>
! 7: #endif
! 8: #include <setjmp.h>
! 9: #ifdef ABS
! 10: #undef ABS
! 11: #define ABS(a) ((a)>0?(a):-(a))
! 12: #endif
! 13:
! 14: /* identifiers for expressions */
! 15:
! 16: typedef enum {
! 17: I_BOP, I_COP, I_AND, I_OR, I_NOT, I_CE,
! 18: I_PRESELF, I_POSTSELF,
! 19: I_FUNC, I_FUNC_OPT, I_IFUNC, I_MAP, I_PFDERIV,
! 20: I_ANS, I_PVAR, I_ASSPVAR,
! 21: I_FORMULA, I_LIST, I_STR, I_NEWCOMP, I_CAR, I_CDR, I_CAST,
! 22: I_COM, I_PROC, I_INDEX, I_EV, I_TIMER, I_GF2NGEN, I_GFPNGEN, I_LOP,
! 23: I_OPT, I_GETOPT
! 24: } fid;
! 25:
! 26: /* identifiers for statements */
! 27:
! 28: typedef enum {
! 29: S_BP, S_PFDEF,
! 30: S_SINGLE, S_CPLX,
! 31: S_IFELSE, S_FOR, S_DO,
! 32: S_BREAK, S_RETURN, S_CONTINUE
! 33: } sid;
! 34:
! 35: /* identifiers for comparison operators */
! 36:
! 37: typedef enum { C_LT, C_GT, C_LE, C_GE, C_EQ, C_NE } cid;
! 38:
! 39: /* identifiers for logical operators */
! 40:
! 41: typedef enum { L_LT, L_GT, L_LE, L_GE, L_EQ, L_NE, L_AND, L_OR, L_NOT, L_IMPL, L_REPL, L_EQUIV } lid;
! 42:
! 43: /* identifiers for functions */
! 44:
! 45: typedef enum { A_UNDEF, A_BIN, A_USR, A_PURE, A_PARI } aid;
! 46:
! 47: /* identifiers for indeterminates */
! 48:
! 49: typedef enum { V_IND, V_UC, V_PF, V_SR } vid;
! 50:
! 51: struct oVS {
! 52: unsigned int n;
! 53: unsigned int asize;
! 54: unsigned int at;
! 55: unsigned int level;
! 56: struct oFUNC *usrf;
! 57: struct oPV *va;
! 58: NODE opt;
! 59: };
! 60:
! 61: typedef struct oVS *VS;
! 62:
! 63: struct oPV {
! 64: char *name;
! 65: short attr,type;
! 66: pointer priv;
! 67: };
! 68:
! 69: typedef struct oPV *PV;
! 70:
! 71: struct oIN {
! 72: char *name;
! 73: FILE *fp;
! 74: int ln;
! 75: struct oIN *next;
! 76: char *tname;
! 77: int encoded;
! 78: short vol;
! 79: };
! 80:
! 81: typedef struct oIN *IN;
! 82:
! 83: struct oTKWD {
! 84: char *name;
! 85: int token;
! 86: };
! 87:
! 88: struct oARF {
! 89: char *name;
! 90: void (*fp)();
! 91: };
! 92:
! 93: typedef struct oARF *ARF;
! 94:
! 95: struct oFUNC {
! 96: char *name;
! 97: int argc;
! 98: int type;
! 99: aid id;
! 100: union {
! 101: void (*binf)();
! 102: struct oUSRF *usrf;
! 103: struct oPF *puref;
! 104: } f;
! 105: };
! 106:
! 107: typedef struct oFUNC *FUNC;
! 108:
! 109: struct oUSRF {
! 110: char *fname;
! 111: short vol;
! 112: int startl,endl;
! 113: NODE args;
! 114: VS pvs;
! 115: char *desc;
! 116: struct oSNODE *body;
! 117: };
! 118:
! 119: typedef struct oUSRF *USRF;
! 120:
! 121: struct oPF {
! 122: char *name;
! 123: int argc;
! 124: Obj body;
! 125: V *args;
! 126: Obj *deriv;
! 127: NODE ins;
! 128: int (*pari)();
! 129: double (*libm)();
! 130: int (*simplify)();
! 131: };
! 132:
! 133: typedef struct oPF *PF;
! 134:
! 135: struct oPFAD {
! 136: Obj arg;
! 137: int d;
! 138: };
! 139:
! 140: typedef struct oPFAD *PFAD;
! 141:
! 142: struct oPFINS {
! 143: struct oPF *pf;
! 144: struct oPFAD ad[1];
! 145: };
! 146:
! 147: typedef struct oPFINS *PFINS;
! 148:
! 149: #define NEWPF(p) ((p)=(PF)MALLOC(sizeof(struct oPF)))
! 150:
! 151: struct oFNODE {
! 152: fid id;
! 153: pointer arg[1];
! 154: };
! 155:
! 156: typedef struct oFNODE *FNODE;
! 157:
! 158: #define NEWFNODE(a,b) \
! 159: ((a)=(FNODE)MALLOC(sizeof(struct oFNODE)+sizeof(pointer)*(b-1)))
! 160:
! 161: struct oSNODE {
! 162: sid id;
! 163: int ln;
! 164: pointer arg[1];
! 165: };
! 166:
! 167: typedef struct oSNODE *SNODE;
! 168:
! 169: #define NEWSNODE(a,b) \
! 170: ((a)=(SNODE)MALLOC(sizeof(struct oSNODE)+sizeof(pointer)*(b-1)),(a)->ln=asir_infile->ln)
! 171:
! 172: struct oPVI {
! 173: int pv;
! 174: NODE index;
! 175: };
! 176:
! 177: typedef struct oPVI *PVI;
! 178:
! 179: struct oNODE2 {
! 180: pointer body1,body2;
! 181: struct oNODE2 *next;
! 182: };
! 183:
! 184: typedef struct oNODE2 *NODE2;
! 185:
! 186: struct ftab {
! 187: char *name;
! 188: void (*f)();
! 189: int argc;
! 190: };
! 191:
! 192: #define MKPVI(a,b,c)\
! 193: ((a)=(pointer)MALLOC(sizeof(struct oPVI)),((PVI)(a))->pv=(b),((PVI)(a))->index=(c))
! 194:
! 195: #define FA0(f) ((f)->arg[0])
! 196: #define FA1(f) ((f)->arg[1])
! 197: #define FA2(f) ((f)->arg[2])
! 198: #define FA3(f) ((f)->arg[3])
! 199: #define FA4(f) ((f)->arg[4])
! 200: #define FA5(f) ((f)->arg[5])
! 201: #define FA6(f) ((f)->arg[6])
! 202:
! 203: #define ARG0(a) ((a)->body)
! 204: #define ARG1(a) (NEXT(a)->body)
! 205: #define ARG2(a) (NEXT(NEXT(a))->body)
! 206: #define ARG3(a) (NEXT(NEXT(NEXT(a)))->body)
! 207: #define ARG4(a) (NEXT(NEXT(NEXT(NEXT((a)))))->body)
! 208: #define ARG5(a) (NEXT(NEXT(NEXT(NEXT(NEXT((a))))))->body)
! 209: #define ARG6(a) (NEXT(NEXT(NEXT(NEXT(NEXT(NEXT((a)))))))->body)
! 210: #define ARG7(a) (NEXT(NEXT(NEXT(NEXT(NEXT(NEXT(NEXT((a))))))))->body)
! 211: #define ARG8(a) (NEXT(NEXT(NEXT(NEXT(NEXT(NEXT(NEXT(NEXT((a)))))))))->body)
! 212: #define ARG9(a) (NEXT(NEXT(NEXT(NEXT(NEXT(NEXT(NEXT(NEXT(NEXT((a))))))))))->body)
! 213: #define ARG10(a) (NEXT(NEXT(NEXT(NEXT(NEXT(NEXT(NEXT(NEXT(NEXT(NEXT((a)))))))))))->body)
! 214:
! 215: #define asir_assert(ptr,id,message)\
! 216: switch ( id ) {\
! 217: case O_N: case O_P: case O_R:\
! 218: if( (ptr) && (OID(ptr) > (id)) ) {\
! 219: fprintf(stderr,message);\
! 220: error(" : invalid argument");\
! 221: }\
! 222: break;\
! 223: case O_DP:\
! 224: if( (ptr) && (OID(ptr) != (id)) ) {\
! 225: fprintf(stderr,message);\
! 226: error(" : invalid argument");\
! 227: }\
! 228: break;\
! 229: default:\
! 230: if( !(ptr) || (OID(ptr) != (id)) ) {\
! 231: fprintf(stderr,message);\
! 232: error(" : invalid argument");\
! 233: }\
! 234: break;\
! 235: }
! 236:
! 237: #define DEFSIZE 32
! 238: #define MSB (1<<31)
! 239: #define GETPV(i,p) \
! 240: ((int)(i)>=0 ? (int)((p)=CPVS->va[(unsigned int)(i)].priv)\
! 241: : (int)((p)=GPVS->va[(unsigned int)(i)&(~MSB)].priv))
! 242: #define ASSPV(i,p) \
! 243: ((int)(i)>=0 ? (int)(CPVS->va[(unsigned int)(i)].priv=(pointer)(p))\
! 244: : (int)(GPVS->va[(unsigned int)(i)&(~MSB)].priv=(pointer)(p)))
! 245:
! 246: #define NEWNODE2(a) ((a)=(NODE2)MALLOC(sizeof(struct oNODE2)))
! 247: #define MKNODE2(a,b,c,d) \
! 248: (NEWNODE2(a),(a)->body1=(pointer)b,(a)->body2=(pointer)c,NEXT(a)=(NODE2)(d))
! 249: #define BDY1(a) ((a)->body1)
! 250: #define BDY2(a) ((a)->body2)
! 251:
! 252: extern VS GPVS,CPVS,EPVS,APVS;
! 253: extern ARF addfs, subfs, mulfs, divfs, remfs, pwrfs;
! 254: extern IN asir_infile;
! 255: extern NODE usrf,sysf,noargsysf,ubinf,parif,ONENODE;
! 256: extern int nextbp,nextbplevel;
! 257: extern int Verbose;
! 258:
! 259: #if defined(VISUAL_LIB)
! 260: #include <w_stdio.h>
! 261: #undef getc
! 262: #define getc w_fgetc
! 263: #undef putc
! 264: #define putc w_fputc
! 265: #define fputc w_fputc
! 266: #define ungetc w_ungetc
! 267: #define fgets w_fgets
! 268: #define fputs w_fputs
! 269: #define printf w_printf
! 270: #define fprintf w_fprintf
! 271: #define fflush w_fflush
! 272: #endif
! 273:
! 274: #if defined(THINK_C) || defined(VISUAL)
! 275: NODE mknode(int,...);
! 276: FNODE mkfnode(int,fid,...);
! 277: SNODE mksnode(int,sid,...);
! 278: void call_usrf(FUNC f,...);
! 279: #else
! 280: NODE mknode();
! 281: FNODE mkfnode();
! 282: SNODE mksnode();
! 283: void call_usrf();
! 284: #endif
! 285:
! 286: /* prototypes */
! 287:
! 288: #if 1 || defined(THINK_C) || defined(VISUAL)
! 289: void dp_ptozp2_d(NODE,int,DP,DP,DP *,DP *);
! 290: void dp_ptozp_d(NODE,int,DP,DP *);
! 291: void dp_ptozp_d_old(NODE,int,DP,DP *);
! 292: void dp_vtod(Q *,DP,DP *);
! 293: void dp_idivv_hist(Q,DP *);
! 294: void dp_igcdv_hist(DP,Q *);
! 295: void dp_ptozp2(DP,DP,DP *,DP *);
! 296: void dp_ptozp(DP,DP *);
! 297: void dp_nf_tab_mod(DP,LIST *,int,DP *);
! 298: void dp_lnf_mod(DP,DP,NODE,int,DP *,DP *);
! 299: void insert_to_node(DL,NODE *,int);
! 300: int _dl_redble(DL,DL,int);
! 301: void dp_mbase(NODE,NODE *);
! 302: void dp_dtov(DP,VECT *);
! 303: void dp_cont(DP,Q *);
! 304: void dp_idiv(DP,Q,DP *);
! 305:
! 306: int dp_nt(DP);
! 307: void dp_dehomo(DP,DP *);
! 308: void dp_homo(DP,DP *);
! 309: DL lcm_of_DL(int,DL,DL,DL);
! 310: void dp_rest(DP,DP *);
! 311: void dp_hm(DP,DP *);
! 312: void dp_sp_mod(DP,DP,int,DP *);
! 313: void dp_sp(DP,DP,DP *);
! 314: void dp_red(DP,DP,DP,DP *,DP *,P *);
! 315: void dp_subd(DP,DP,DP *);
! 316: void dp_red_mod(DP,DP,DP,int,DP *,DP *,P *);
! 317: int dp_redble(DP,DP);
! 318: int comp_nm(Q *,Q *);
! 319: void dp_true_nf_mod(NODE,DP,DP *,int,int,DP *,P *);
! 320: void dp_nf_mod(NODE,DP,DP *,int,int,DP *);
! 321: void dp_nf_mod_qindex(NODE,DP,DP *,int,int,DP *);
! 322: void dp_nf_ptozp(NODE,DP,DP *,int,int,DP *);
! 323: void dp_true_nf(NODE,DP,DP *,int,DP *,P *);
! 324: void dp_nf(NODE,DP,DP *,int,DP *);
! 325: void dp_rat(DP,DP *);
! 326: void dp_mod(DP,int,NODE,DP *);
! 327: void dp_prim_mod(DP,int,DP *);
! 328: void dp_prim(DP,DP *);
! 329: void heu_nezgcdnpz(VL,P *,int,P *);
! 330: void homogenize_order(struct order_spec *,int,struct order_spec *);
! 331: int create_order_spec(Obj,struct order_spec *);
! 332:
! 333: int dl_equal(int,DL,DL);
! 334: void qltozl(Q *,int,Q *);
! 335: int cmpdl_matrix(int,DL,DL);
! 336: int cmpdl_order_pair(int,DL,DL);
! 337: int cmpdl_elim(int,DL,DL);
! 338: int cmpdl_blexrev(int,DL,DL);
! 339: int cmpdl_bgradrev(int,DL,DL);
! 340: int cmpdl_brevrev(int,DL,DL);
! 341: int cmpdl_brevgradlex(int,DL,DL);
! 342: int cmpdl_bgradlex(int,DL,DL);
! 343: int cmpdl_blex(int,DL,DL);
! 344: int cmpdl_revgradlex(int,DL,DL);
! 345: int cmpdl_gradlex(int,DL,DL);
! 346: int cmpdl_revlex(int,DL,DL);
! 347: int cmpdl_lex(int,DL,DL);
! 348: int compd(VL,DP,DP);
! 349: void adddl(int,DL,DL,DL *);
! 350: void divsdc(VL,DP,P,DP *);
! 351: void muldc(VL,DP,P,DP *);
! 352: void muldm(VL,DP,MP,DP *);
! 353: void muld(VL,DP,DP,DP *);
! 354: void chsgnd(DP,DP *);
! 355: void subd(VL,DP,DP,DP *);
! 356: void addd(VL,DP,DP,DP *);
! 357: int sugard(MP);
! 358: void nodetod(NODE,DP *);
! 359: void dtop(VL,VL,DP,P *);
! 360: void ptod(VL,VL,P,DP *);
! 361: void initd(struct order_spec *);
! 362:
! 363: int mainparse(SNODE *);
! 364: int exprparse(FUNC,char *,FNODE *);
! 365: void output_init(void);
! 366: void GC_init(void);
! 367: void env_init(void);
! 368: void soutput_init(char *);
! 369: void appendparif(NODE *,char *,int (*)(),int);
! 370: int mmono(P);
! 371: void mkpow(VL,Obj,Obj,Obj *);
! 372: void _printdp(DP);
! 373: int mt_save(char *);
! 374: int mt_load(char *);
! 375: void sortbynm(Q *,int);
! 376: void iqrv(VECT,Q,LIST *);
! 377: void igcdv(VECT,Q *);
! 378: void igcdv_estimate(VECT,Q *);
! 379: void cpp_main(int,char **);
! 380: int afternl(void);
! 381: void glob_init();
! 382: void input_init(FILE *,char *);
! 383: void asir_terminate(int);
! 384: void param_init(void);
! 385: void sprompt(char *);
! 386: void process_args(int,char **);
! 387: void sig_init(void);
! 388: void asir_save_handler(void);
! 389: void asir_set_handler(void);
! 390: void asir_reset_handler(void);
! 391: void resetenv(char *);
! 392: void fatal(int);
! 393: void restore_handler(void);
! 394: void resize_buffer(void);
! 395: void tty_init(void);
! 396: void tty_reset(void);
! 397: void set_timer(int);
! 398: void reset_timer(void);
! 399: void int_handler(int);
! 400: void int_handler(int);
! 401: void segv_handler(int);
! 402: void bus_handler(int);
! 403: void fpe_handler(int);
! 404: void ill_handler(int);
! 405: void winch_handler(int);
! 406: void pipe_handler(int);
! 407: void usr1_handler(int);
! 408: void alrm_handler(int);
! 409: void copyright(void);
! 410: void kan_init(void);
! 411: void pushpvs(FUNC);
! 412: void read_eval_loop(void);
! 413: void prompt(void);
! 414: void storeans(pointer);
! 415: int yyparse(void);
! 416: void nodetod(NODE,DP *);
! 417: void poppvs(void);
! 418: int length(NODE);
! 419: int get_heapsize(void);
! 420: int searchpvar(char *);
! 421: void mkparif(char *,FUNC *);
! 422: void makevar(char *,P *);
! 423: void mkpvs(void);
! 424: void stoarg(char *,int *,char **);
! 425: void yyerror(char *);
! 426: void closecurrentinput(void);
! 427: void asir_terminate(int);
! 428: void searchasirpath(char *,char **);
! 429: void get_vars(Obj,VL *);
! 430: void appendbinf(NODE *,char *,void(*)(),int);
! 431: void appendubinf(char *,void(*)(),int);
! 432: void parif_init(void);
! 433: void sysf_init(void);
! 434: void makesrvar(FUNC, P *);
! 435: void sprintexpr(VL,Obj);
! 436: void printexpr(VL,Obj);
! 437: void appendvar(VL,V);
! 438: void change_mvar(VL,P,V,P *);
! 439: void restore_mvar(VL,P,V,P *);
! 440: int argc(NODE);
! 441: void printn(N);
! 442: void sprintn(N);
! 443: void printv(VL,V);
! 444: void sprintv(VL,V);
! 445: int arf_comp(VL, Obj, Obj);
! 446: int complist(VL, LIST, LIST);
! 447: int complist(VL, LIST, LIST);
! 448: int getcompsize(int);
! 449: int getpvar(VS,char *,int);
! 450: int getpvar(VS,char *,int);
! 451: int gettype(unsigned int);
! 452: int indextotype(int,int);
! 453: int loadfile(char *);
! 454: int loadfiles(NODE);
! 455: int makepvar(char *);
! 456: int membertoindex(int,char *);
! 457: int qcoefp(Obj);
! 458: int qcoefr(Obj);
! 459: int rangecheck(Obj,int);
! 460: int structtoindex(char *);
! 461: pointer eval(FNODE);
! 462: pointer evalf(FUNC,FNODE,FNODE);
! 463: pointer evalif(FNODE,FNODE);
! 464: pointer evalnode(NODE node);
! 465: pointer evalpf(PF,NODE);
! 466: pointer evalparif(FUNC,NODE);
! 467: pointer evalpv(int,FNODE,pointer);
! 468: pointer evalstat(SNODE f);
! 469: void _mkpfins(PF ,Obj *,V *);
! 470: void appendpfins(V ,V *);
! 471: void appenduf(char *,FUNC *);
! 472: void arf_add(VL, Obj, Obj, Obj *);
! 473: void arf_chsgn(Obj, Obj *);
! 474: void arf_div(VL, Obj, Obj, Obj *);
! 475: void arf_init(void);
! 476: void arf_mul(VL, Obj, Obj, Obj *);
! 477: void arf_pwr(VL, Obj, Obj, Obj *);
! 478: void arf_remain(VL, Obj, Obj, Obj *);
! 479: void arf_sub(VL, Obj, Obj, Obj *);
! 480: void bp(SNODE);
! 481: void clearbp(FUNC);
! 482: void debug(SNODE);
! 483: void debug_init(void);
! 484: void delbp(int, char **);
! 485: void derivr(VL ,Obj ,V ,Obj *);
! 486: void derivvar(VL ,V ,V ,Obj *);
! 487: void duppfins(V ,V *);
! 488: void error(char *);
! 489: void evalins(PFINS ,int ,Obj *);
! 490: void evalnodebody(NODE,NODE *);
! 491: void evalp(VL ,P ,int ,P *);
! 492: void evalr(VL ,Obj ,int ,Obj *);
! 493: void evalv(VL ,V ,int ,Obj *);
! 494: void getarrayp(Obj,NODE,Obj **);
! 495: void getmember(FNODE,Obj *);
! 496: void getmemberp(FNODE,Obj **);
! 497: void help(char *);
! 498: void instov(PFINS ,V *);
! 499: void memberofstruct(FNODE,char *,FNODE *);
! 500: void mkpf(char *,Obj ,int ,V *,int (*)(),double (*)(),int (*)(),PF *);
! 501: void mkpfins(PF ,V *,V *);
! 502: void mkuf(char *,char *,NODE,SNODE,int,int,char *);
! 503: void newstruct(int,struct oCOMP **);
! 504: void optobj(Obj *);
! 505: void println(int, char **, int);
! 506: void printvars(char *,VS);
! 507: void resetpvs(void);
! 508: void searchc(char *,FUNC *);
! 509: void searchf(NODE,char *,FUNC *);
! 510: void searchpf(char *,FUNC *);
! 511: void searchsn(SNODE *, int, SNODE **);
! 512: void setbp(char *);
! 513: void setf(int, char **);
! 514: void setstruct(char *,NODE);
! 515: void showbp(int);
! 516: void showbps(void);
! 517: void showpos(void);
! 518: void simplify_ins(PFINS ,Obj *);
! 519: void sprintvars(char *,VS);
! 520: void structdef(char *,NODE);
! 521: void substfp(VL ,Obj ,PF ,PF ,Obj *);
! 522: void substfr(VL ,Obj ,PF ,PF ,Obj *);
! 523: void substfv(VL ,V ,PF ,PF ,Obj *);
! 524: void substpr(VL ,int ,Obj ,V ,Obj ,Obj *);
! 525: void substr(VL ,int ,Obj ,V ,Obj ,Obj *);
! 526: void appendtonode(NODE,pointer, NODE *);
! 527: void getarray(pointer,NODE,pointer *);
! 528: void putarray(pointer,NODE,pointer);
! 529:
! 530: void addcomp(VL,COMP,COMP,COMP *);
! 531: void subcomp(VL,COMP,COMP,COMP *);
! 532: void mulcomp(VL,COMP,COMP,COMP *);
! 533: void divcomp(VL,COMP,COMP,COMP *);
! 534: void chsgncomp(COMP,COMP *);
! 535: void pwrcomp(VL,COMP,Obj,COMP *);
! 536: int compcomp(VL,COMP,COMP);
! 537: #else
! 538: int arf_comp();
! 539: int complist();
! 540: int complist();
! 541: int getcompsize();
! 542: int getpvar();
! 543: int getpvar();
! 544: int gettype();
! 545: int indextotype();
! 546: int loadfile();
! 547: int loadfiles();
! 548: int makepvar();
! 549: int membertoindex();
! 550: int qcoefp();
! 551: int qcoefr();
! 552: int rangecheck();
! 553: int structtoindex();
! 554: pointer eval();
! 555: pointer evalf();
! 556: pointer evalif();
! 557: pointer evalnode();
! 558: pointer evalpf();
! 559: pointer evalparif();
! 560: pointer evalpv();
! 561: pointer evalstat();
! 562: void _mkpfins();
! 563: void appendpfins();
! 564: void appenduf();
! 565: void arf_add();
! 566: void arf_chsgn();
! 567: void arf_div();
! 568: void arf_init();
! 569: void arf_mul();
! 570: void arf_pwr();
! 571: void arf_remain();
! 572: void arf_sub();
! 573: void bp();
! 574: void clearbp();
! 575: void debug();
! 576: void debug_init();
! 577: void delbp();
! 578: void derivr();
! 579: void derivvar();
! 580: void duppfins();
! 581: void error();
! 582: void evalins();
! 583: void evalnodebody();
! 584: void evalp();
! 585: void evalr();
! 586: void evalv();
! 587: void getarrayp();
! 588: void getmember();
! 589: void getmemberp();
! 590: void help();
! 591: void instov();
! 592: void memberofstruct();
! 593: void mkpf();
! 594: void mkpfins();
! 595: void mkuf();
! 596: void newstruct();
! 597: void optobj();
! 598: void println();
! 599: void printvars();
! 600: void resetpvs();
! 601: void searchc();
! 602: void searchf();
! 603: void searchpf();
! 604: void searchsn();
! 605: void setbp();
! 606: void setf();
! 607: void setstruct();
! 608: void showbp();
! 609: void showbps();
! 610: void showpos();
! 611: void simplify_ins();
! 612: void sprintvars();
! 613: void structdef();
! 614: void substfp();
! 615: void substfr();
! 616: void substfv();
! 617: void substpr();
! 618: void substr();
! 619: void appendtonode();
! 620: void getarray();
! 621: void putarray();
! 622:
! 623: void addcomp();
! 624: void subcomp();
! 625: void mulcomp();
! 626: void divcomp();
! 627: void chsgncomp();
! 628: void pwrcomp();
! 629: int compcomp();
! 630: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>