=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/parse/parse.h,v retrieving revision 1.1.1.1 retrieving revision 1.14 diff -u -p -r1.1.1.1 -r1.14 --- OpenXM_contrib2/asir2000/parse/parse.h 1999/12/03 07:39:12 1.1.1.1 +++ OpenXM_contrib2/asir2000/parse/parse.h 2001/09/05 09:01:28 1.14 @@ -1,5 +1,53 @@ -/* $OpenXM: OpenXM/src/asir99/parse/parse.h,v 1.1.1.1 1999/11/10 08:12:34 noro Exp $ */ -# if defined(THINK_C) || defined(VISUAL) +/* + * Copyright (c) 1994-2000 FUJITSU LABORATORIES LIMITED + * All rights reserved. + * + * FUJITSU LABORATORIES LIMITED ("FLL") hereby grants you a limited, + * non-exclusive and royalty-free license to use, copy, modify and + * redistribute, solely for non-commercial and non-profit purposes, the + * computer program, "Risa/Asir" ("SOFTWARE"), subject to the terms and + * conditions of this Agreement. For the avoidance of doubt, you acquire + * only a limited right to use the SOFTWARE hereunder, and FLL or any + * third party developer retains all rights, including but not limited to + * copyrights, in and to the SOFTWARE. + * + * (1) FLL does not grant you a license in any way for commercial + * purposes. You may use the SOFTWARE only for non-commercial and + * non-profit purposes only, such as academic, research and internal + * business use. + * (2) The SOFTWARE is protected by the Copyright Law of Japan and + * international copyright treaties. If you make copies of the SOFTWARE, + * with or without modification, as permitted hereunder, you shall affix + * to all such copies of the SOFTWARE the above copyright notice. + * (3) An explicit reference to this SOFTWARE and its copyright owner + * shall be made on your publication or presentation in any form of the + * results obtained by use of the SOFTWARE. + * (4) In the event that you modify the SOFTWARE, you shall notify FLL by + * e-mail at risa-admin@sec.flab.fujitsu.co.jp of the detailed specification + * for such modification or the source code of the modified part of the + * SOFTWARE. + * + * THE SOFTWARE IS PROVIDED AS IS WITHOUT ANY WARRANTY OF ANY KIND. FLL + * MAKES ABSOLUTELY NO WARRANTIES, EXPRESSED, IMPLIED OR STATUTORY, AND + * EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT OF THIRD PARTIES' + * RIGHTS. NO FLL DEALER, AGENT, EMPLOYEES IS AUTHORIZED TO MAKE ANY + * MODIFICATIONS, EXTENSIONS, OR ADDITIONS TO THIS WARRANTY. + * UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, TORT, CONTRACT, + * OR OTHERWISE, SHALL FLL BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL + * DAMAGES OF ANY CHARACTER, INCLUDING, WITHOUT LIMITATION, DAMAGES + * ARISING OUT OF OR RELATING TO THE SOFTWARE OR THIS AGREEMENT, DAMAGES + * FOR LOSS OF GOODWILL, WORK STOPPAGE, OR LOSS OF DATA, OR FOR ANY + * DAMAGES, EVEN IF FLL SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF + * SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY. EVEN IF A PART + * OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY + * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, + * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. + * + * $OpenXM: OpenXM_contrib2/asir2000/parse/parse.h,v 1.13 2001/09/03 08:52:39 noro Exp $ +*/ +# if defined(VISUAL) #include #else #include @@ -16,11 +64,11 @@ typedef enum { I_BOP, I_COP, I_AND, I_OR, I_NOT, I_CE, I_PRESELF, I_POSTSELF, - I_FUNC, I_FUNC_OPT, I_IFUNC, I_MAP, I_PFDERIV, + I_FUNC, I_FUNC_OPT, I_IFUNC, I_MAP, I_RECMAP, I_PFDERIV, I_ANS, I_PVAR, I_ASSPVAR, I_FORMULA, I_LIST, I_STR, I_NEWCOMP, I_CAR, I_CDR, I_CAST, - I_COM, I_PROC, I_INDEX, I_EV, I_TIMER, I_GF2NGEN, I_GFPNGEN, I_LOP, - I_OPT, I_GETOPT + I_COM, I_PROC, I_INDEX, I_EV, I_TIMER, I_GF2NGEN, I_GFPNGEN, I_GFSNGEN, + I_LOP, I_OPT, I_GETOPT, I_POINT, I_QUOTE, I_PAREN, I_MINUS } fid; /* identifiers for statements */ @@ -239,6 +287,9 @@ switch ( id ) {\ #define GETPV(i,p) \ ((int)(i)>=0 ? (int)((p)=CPVS->va[(unsigned int)(i)].priv)\ : (int)((p)=GPVS->va[(unsigned int)(i)&(~MSB)].priv)) +#define GETPVNAME(i,p) \ +((int)(i)>=0 ? (int)((p)=CPVS->va[(unsigned int)(i)].name)\ + : (int)((p)=GPVS->va[(unsigned int)(i)&(~MSB)].name)) #define ASSPV(i,p) \ ((int)(i)>=0 ? (int)(CPVS->va[(unsigned int)(i)].priv=(pointer)(p))\ : (int)(GPVS->va[(unsigned int)(i)&(~MSB)].priv=(pointer)(p))) @@ -271,7 +322,7 @@ extern int Verbose; #define fflush w_fflush #endif -#if defined(THINK_C) || defined(VISUAL) +#if defined(VISUAL) || (defined(__MACH__) && defined(__ppc__)) NODE mknode(int,...); FNODE mkfnode(int,fid,...); SNODE mksnode(int,sid,...); @@ -285,10 +336,8 @@ void call_usrf(); /* prototypes */ -#if 1 || defined(THINK_C) || defined(VISUAL) -void dp_ptozp2_d(NODE,int,DP,DP,DP *,DP *); -void dp_ptozp_d(NODE,int,DP,DP *); -void dp_ptozp_d_old(NODE,int,DP,DP *); +void dp_ptozp2_d(DP,DP,DP *,DP *); +void dp_ptozp_d(DP,DP *); void dp_vtod(Q *,DP,DP *); void dp_idivv_hist(Q,DP *); void dp_igcdv_hist(DP,Q *); @@ -311,7 +360,7 @@ void dp_rest(DP,DP *); void dp_hm(DP,DP *); void dp_sp_mod(DP,DP,int,DP *); void dp_sp(DP,DP,DP *); -void dp_red(DP,DP,DP,DP *,DP *,P *); +void dp_red(DP,DP,DP,DP *,DP *,P *,DP *); void dp_subd(DP,DP,DP *); void dp_red_mod(DP,DP,DP,int,DP *,DP *,P *); int dp_redble(DP,DP); @@ -496,7 +545,7 @@ void getmember(FNODE,Obj *); void getmemberp(FNODE,Obj **); void help(char *); void instov(PFINS ,V *); -void memberofstruct(FNODE,char *,FNODE *); +Obj memberofstruct(COMP,char *); void mkpf(char *,Obj ,int ,V *,int (*)(),double (*)(),int (*)(),PF *); void mkpfins(PF ,V *,V *); void mkuf(char *,char *,NODE,SNODE,int,int,char *); @@ -517,7 +566,7 @@ void showbps(void); void showpos(void); void simplify_ins(PFINS ,Obj *); void sprintvars(char *,VS); -void structdef(char *,NODE); +int structdef(char *,NODE); void substfp(VL ,Obj ,PF ,PF ,Obj *); void substfr(VL ,Obj ,PF ,PF ,Obj *); void substfv(VL ,V ,PF ,PF ,Obj *); @@ -534,97 +583,3 @@ void divcomp(VL,COMP,COMP,COMP *); void chsgncomp(COMP,COMP *); void pwrcomp(VL,COMP,Obj,COMP *); int compcomp(VL,COMP,COMP); -#else -int arf_comp(); -int complist(); -int complist(); -int getcompsize(); -int getpvar(); -int getpvar(); -int gettype(); -int indextotype(); -int loadfile(); -int loadfiles(); -int makepvar(); -int membertoindex(); -int qcoefp(); -int qcoefr(); -int rangecheck(); -int structtoindex(); -pointer eval(); -pointer evalf(); -pointer evalif(); -pointer evalnode(); -pointer evalpf(); -pointer evalparif(); -pointer evalpv(); -pointer evalstat(); -void _mkpfins(); -void appendpfins(); -void appenduf(); -void arf_add(); -void arf_chsgn(); -void arf_div(); -void arf_init(); -void arf_mul(); -void arf_pwr(); -void arf_remain(); -void arf_sub(); -void bp(); -void clearbp(); -void debug(); -void debug_init(); -void delbp(); -void derivr(); -void derivvar(); -void duppfins(); -void error(); -void evalins(); -void evalnodebody(); -void evalp(); -void evalr(); -void evalv(); -void getarrayp(); -void getmember(); -void getmemberp(); -void help(); -void instov(); -void memberofstruct(); -void mkpf(); -void mkpfins(); -void mkuf(); -void newstruct(); -void optobj(); -void println(); -void printvars(); -void resetpvs(); -void searchc(); -void searchf(); -void searchpf(); -void searchsn(); -void setbp(); -void setf(); -void setstruct(); -void showbp(); -void showbps(); -void showpos(); -void simplify_ins(); -void sprintvars(); -void structdef(); -void substfp(); -void substfr(); -void substfv(); -void substpr(); -void substr(); -void appendtonode(); -void getarray(); -void putarray(); - -void addcomp(); -void subcomp(); -void mulcomp(); -void divcomp(); -void chsgncomp(); -void pwrcomp(); -int compcomp(); -#endif