=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/parse/parse.h,v retrieving revision 1.23 retrieving revision 1.33 diff -u -p -r1.23 -r1.33 --- OpenXM_contrib2/asir2000/parse/parse.h 2003/10/19 02:54:41 1.23 +++ OpenXM_contrib2/asir2000/parse/parse.h 2004/10/27 08:21:47 1.33 @@ -45,7 +45,7 @@ * 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.22 2003/08/23 01:42:52 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/parse/parse.h,v 1.32 2004/07/13 07:59:54 noro Exp $ */ # if defined(VISUAL) #include @@ -67,8 +67,9 @@ typedef enum { 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_GFSNGEN, - I_LOP, I_OPT, I_GETOPT, I_POINT, I_QUOTE, I_PAREN, I_MINUS + I_INDEX, I_EV, I_TIMER, I_GF2NGEN, I_GFPNGEN, I_GFSNGEN, + I_LOP, I_OPT, I_GETOPT, I_POINT, I_PAREN, I_MINUS, + I_NARYOP } fid; /* identifiers for statements */ @@ -133,6 +134,11 @@ struct oTKWD { int token; }; +typedef struct fid_spec { + fid id; + farg_type type[10]; +} *fid_spec_p; + typedef struct oARF { char *name; void (*fp)(); @@ -142,6 +148,7 @@ typedef struct oFUNC { char *name,*fullname; int argc; int type; + int secure; aid id; union { void (*binf)(); @@ -300,6 +307,8 @@ extern NODE usrf,sysf,noargsysf,ubinf,parif,ONENODE; extern int nextbp,nextbplevel; extern int Verbose; extern int do_quiet; +extern SYMBOL Symbol_grlex, Symbol_glex, Symbol_lex; +extern NODE current_option; #if defined(VISUAL_LIB) #include @@ -370,8 +379,8 @@ void dp_mod(DP,int,NODE,DP *); void dp_prim_mod(DP,int,DP *); void dp_prim(DP,DP *); void heu_nezgcdnpz(VL,P *,int,P *); -void homogenize_order(struct order_spec *,int,struct order_spec *); -int create_order_spec(Obj,struct order_spec *); +void homogenize_order(struct order_spec *,int,struct order_spec **); +int create_order_spec(VL,Obj,struct order_spec **); int dl_equal(int,DL,DL); void qltozl(Q *,int,Q *); @@ -601,12 +610,10 @@ int dp_redble(DP p1,DP p2); void sortbynm(Q *w,int n); int comp_nm(Q *a,Q *b); void qltozl(Q *w,int n,Q *dvr); -void homogenize_order(struct order_spec *old,int n,struct order_spec *new); void dp_rat(DP p,DP *rp); void dp_mod(DP p,int mod,NODE subst,DP *rp); void dp_dehomo(DP p,DP *rp); void dp_homo(DP p,DP *rp); -int create_order_spec(Obj obj,struct order_spec *spec); void dp_nf_tab_mod(DP p,LIST *tab,int mod,DP *rp); void dp_lnf_mod(DP p1,DP p2,NODE g,int mod,DP *r1p,DP *r2p); void dp_lnf_f(DP p1,DP p2,NODE g,DP *r1p,DP *r2p); @@ -793,8 +800,8 @@ void chsgnquote(QUOTE a,QUOTE *c); void objtoquote(Obj a,QUOTE *c); void polytoquote(P a,QUOTE *c); void dptoquote(DP a,QUOTE *c); -void dctoquote(DCP dc,QUOTE v,QUOTE *c); -void mptoquote(MP m,int n,QUOTE *c); +void dctoquote(DCP dc,QUOTE v,QUOTE *c,int *sgn); +void mptoquote(MP m,int n,QUOTE *c,int *sgn); void vartoquote(V v,QUOTE *c); void fnodetotree(FNODE f,LIST *rp); FNODE eval_pvar_in_fnode(FNODE f);