version 1.37, 2005/09/13 06:40:46 |
version 1.55, 2015/08/14 13:51:56 |
|
|
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* |
* |
* $OpenXM: OpenXM_contrib2/asir2000/parse/parse.h,v 1.36 2005/08/25 18:59:11 ohara Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/parse/parse.h,v 1.54 2015/08/06 10:01:53 fujimoto Exp $ |
*/ |
*/ |
# if defined(VISUAL) |
# if defined(VISUAL) || defined(__MINGW32__) |
#include <time.h> |
#include <time.h> |
#else |
#else |
#include <sys/time.h> |
#include <sys/time.h> |
|
|
I_FORMULA, I_LIST, I_STR, I_NEWCOMP, I_CAR, I_CDR, I_CAST, |
I_FORMULA, I_LIST, I_STR, I_NEWCOMP, I_CAR, I_CDR, I_CAST, |
I_INDEX, I_EV, I_TIMER, I_GF2NGEN, I_GFPNGEN, I_GFSNGEN, |
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_LOP, I_OPT, I_GETOPT, I_POINT, I_PAREN, I_MINUS, |
I_NARYOP, I_UNIFY |
I_NARYOP, I_CONS, I_FUNC_QARG, I_FUNC_HEAD, |
} fid; |
} fid; |
|
|
/* identifiers for statements */ |
/* identifiers for statements */ |
Line 123 typedef struct oPV { |
|
Line 123 typedef struct oPV { |
|
typedef struct oINFILE { |
typedef struct oINFILE { |
char *name; |
char *name; |
FILE *fp; |
FILE *fp; |
|
JMP_BUF jmpbuf; |
|
int ready_for_longjmp; |
int ln; |
int ln; |
struct oINFILE *next; |
struct oINFILE *next; |
char *tname; |
char *tname; |
|
|
}; |
}; |
|
|
typedef struct fid_spec { |
typedef struct fid_spec { |
fid id; |
fid id; |
farg_type type[10]; |
farg_type type[10]; |
} *fid_spec_p; |
} *fid_spec_p; |
|
|
Line 151 typedef struct oFUNC { |
|
Line 153 typedef struct oFUNC { |
|
int type; |
int type; |
int secure; |
int secure; |
aid id; |
aid id; |
|
unsigned int quote; |
union { |
union { |
void (*binf)(); |
void (*binf)(); |
struct oUSRF *usrf; |
struct oUSRF *usrf; |
Line 193 typedef struct oPFINS { |
|
Line 196 typedef struct oPFINS { |
|
#define NEWPF(p) ((p)=(PF)MALLOC(sizeof(struct oPF))) |
#define NEWPF(p) ((p)=(PF)MALLOC(sizeof(struct oPF))) |
|
|
typedef struct oFNODE { |
typedef struct oFNODE { |
fid id; |
short id; |
|
unsigned normalized:1; |
|
unsigned expanded:2; |
|
unsigned coef:1; |
pointer arg[1]; |
pointer arg[1]; |
} *FNODE; |
} *FNODE; |
|
|
|
|
char *name; |
char *name; |
void (*f)(); |
void (*f)(); |
int argc; |
int argc; |
|
unsigned int quote; |
}; |
}; |
|
|
#define MKPVI(a,b,c)\ |
#define MKPVI(a,b,c)\ |
Line 272 switch ( id ) {\ |
|
Line 279 switch ( id ) {\ |
|
|
|
#define DEFSIZE 32 |
#define DEFSIZE 32 |
#define PVGLOBAL(i) (((unsigned int)(i))|(1<<30)) |
#define PVGLOBAL(i) (((unsigned int)(i))|(1<<30)) |
#define PVMGLOBAL(i) (((unsigned int)(i))|(3<<30)) |
#define PVMGLOBAL(i) (((unsigned int)(i))|(2<<30)) |
|
#define PVPATTERN(i) (((unsigned int)(i))|(3<<30)) |
#define PVATTR(i) (((unsigned int)(i))>>30) |
#define PVATTR(i) (((unsigned int)(i))>>30) |
#define PVIND(i) (((unsigned int)(i))&0x3fffffff) |
#define PVIND(i) (((unsigned int)(i))&0x3fffffff) |
#define GETPV(i,p) \ |
#define GETPV(i,p) \ |
(PVATTR(i)==0?(int)((p)=CPVS->va[(unsigned int)(i)].priv)\ |
(PVATTR(i)==0?(int)((p)=CPVS->va[(unsigned int)(i)].priv)\ |
:PVATTR(i)==1?(int)((p)=GPVS->va[PVIND(i)].priv)\ |
:PVATTR(i)==1?(int)((p)=GPVS->va[PVIND(i)].priv)\ |
:(int)((p)=MPVS->va[PVIND(i)].priv)) |
:PVATTR(i)==2?(int)((p)=MPVS->va[PVIND(i)].priv)\ |
|
:(int)((p)=PPVS->va[PVIND(i)].priv)) |
|
|
#define GETPVREF(i,p) \ |
#define GETPVREF(i,p) \ |
(PVATTR(i)==0?(int)((p)=&(CPVS->va[(unsigned int)(i)].priv))\ |
(PVATTR(i)==0?(int)((p)=&(CPVS->va[(unsigned int)(i)].priv))\ |
:PVATTR(i)==1?(int)((p)=&(GPVS->va[PVIND(i)].priv))\ |
:PVATTR(i)==1?(int)((p)=&(GPVS->va[PVIND(i)].priv))\ |
:(int)((p)=&(MPVS->va[PVIND(i)].priv))) |
:PVATTR(i)==2?(int)((p)=&(MPVS->va[PVIND(i)].priv))\ |
|
:(int)((p)=&(PPVS->va[PVIND(i)].priv))) |
|
|
#define GETPVNAME(i,p) \ |
#define GETPVNAME(i,p) \ |
(PVATTR(i)==0?(int)((p)=CPVS->va[(unsigned int)(i)].name)\ |
(PVATTR(i)==0?(int)((p)=CPVS->va[(unsigned int)(i)].name)\ |
:PVATTR(i)==1?(int)((p)=GPVS->va[PVIND(i)].name)\ |
:PVATTR(i)==1?(int)((p)=GPVS->va[PVIND(i)].name)\ |
:(int)((p)=MPVS->va[PVIND(i)].name)) |
:PVATTR(i)==2?(int)((p)=MPVS->va[PVIND(i)].name)\ |
|
:(int)((p)=PPVS->va[PVIND(i)].name)) |
|
|
#define ASSPV(i,p) \ |
#define ASSPV(i,p) \ |
(PVATTR(i)==0?(int)(CPVS->va[(unsigned int)(i)].priv=(pointer)(p))\ |
(PVATTR(i)==0?(int)(CPVS->va[(unsigned int)(i)].priv=(pointer)(p))\ |
:PVATTR(i)==1?(int)(GPVS->va[PVIND(i)].priv=(pointer)(p))\ |
:PVATTR(i)==1?(int)(GPVS->va[PVIND(i)].priv=(pointer)(p))\ |
:(int)(MPVS->va[PVIND(i)].priv=(pointer)(p))) |
:PVATTR(i)==2?(int)(MPVS->va[PVIND(i)].priv=(pointer)(p))\ |
|
:(int)(PPVS->va[PVIND(i)].priv=(pointer)(p))) |
|
|
#define NEWNODE2(a) ((a)=(NODE2)MALLOC(sizeof(struct oNODE2))) |
#define NEWNODE2(a) ((a)=(NODE2)MALLOC(sizeof(struct oNODE2))) |
#define MKNODE2(a,b,c,d) \ |
#define MKNODE2(a,b,c,d) \ |
Line 298 switch ( id ) {\ |
|
Line 313 switch ( id ) {\ |
|
#define BDY1(a) ((a)->body1) |
#define BDY1(a) ((a)->body1) |
#define BDY2(a) ((a)->body2) |
#define BDY2(a) ((a)->body2) |
|
|
extern VS GPVS,CPVS,EPVS,APVS,MPVS; |
extern VS GPVS,CPVS,EPVS,APVS,MPVS,PPVS; |
extern MODULE CUR_MODULE; |
extern MODULE CUR_MODULE; |
extern NODE MODULE_LIST; |
extern NODE MODULE_LIST; |
extern char *CUR_FUNC; |
extern char *CUR_FUNC; |
Line 326 extern NODE current_option; |
|
Line 341 extern NODE current_option; |
|
#define fflush w_fflush |
#define fflush w_fflush |
#endif |
#endif |
|
|
#if defined(__GNUC__) || defined(VISUAL) || (defined(__MACH__) && defined(__ppc__)) || defined(__FreeBSD__) |
#if defined(__GNUC__) || defined(VISUAL) || defined(__MINGW32__) || (defined(__MACH__) && defined(__ppc__)) || defined(__FreeBSD__) |
NODE mknode(int,...); |
NODE mknode(int,...); |
FNODE mkfnode(int,fid,...); |
FNODE mkfnode(int,fid,...); |
SNODE mksnode(int,sid,...); |
SNODE mksnode(int,sid,...); |
Line 452 void tty_reset(void); |
|
Line 467 void tty_reset(void); |
|
void set_timer(int); |
void set_timer(int); |
void reset_timer(void); |
void reset_timer(void); |
void int_handler(int); |
void int_handler(int); |
void int_handler(int); |
|
void segv_handler(int); |
void segv_handler(int); |
void bus_handler(int); |
void bus_handler(int); |
void fpe_handler(int); |
void fpe_handler(int); |
Line 471 int yyparse(void); |
|
Line 485 int yyparse(void); |
|
void nodetod(NODE,DP *); |
void nodetod(NODE,DP *); |
void poppvs(void); |
void poppvs(void); |
int length(NODE); |
int length(NODE); |
int get_heapsize(void); |
size_t get_heapsize(void); |
int searchpvar(char *); |
int searchpvar(char *); |
void mkparif(char *,FUNC *); |
void mkparif(char *,FUNC *); |
void makevar(char *,P *); |
void makevar(char *,P *); |
Line 483 void closecurrentinput(void); |
|
Line 497 void closecurrentinput(void); |
|
void asir_terminate(int); |
void asir_terminate(int); |
void searchasirpath(char *,char **); |
void searchasirpath(char *,char **); |
void get_vars(Obj,VL *); |
void get_vars(Obj,VL *); |
void appendbinf(NODE *,char *,void(*)(),int); |
void appendbinf(NODE *,char *,void(*)(),int,unsigned int); |
void appendubinf(char *,void(*)(),int); |
void appendubinf(char *,void(*)(),int,unsigned int); |
void parif_init(void); |
void parif_init(void); |
void sysf_init(void); |
void sysf_init(void); |
void makesrvar(FUNC, P *); |
void makesrvar(FUNC, P *); |
Line 500 void printv(VL,V); |
|
Line 514 void printv(VL,V); |
|
void sprintv(VL,V); |
void sprintv(VL,V); |
int arf_comp(VL, Obj, Obj); |
int arf_comp(VL, Obj, Obj); |
int complist(VL, LIST, LIST); |
int complist(VL, LIST, LIST); |
int complist(VL, LIST, LIST); |
|
int getcompsize(int); |
int getcompsize(int); |
int getpvar(VS,char *,int); |
int getpvar(VS,char *,int); |
int getpvar(VS,char *,int); |
|
int gettype(unsigned int); |
int gettype(unsigned int); |
int indextotype(int,int); |
int indextotype(int,int); |
int loadfile(char *); |
int loadfile(char *); |
Line 514 int qcoefp(Obj); |
|
Line 526 int qcoefp(Obj); |
|
int qcoefr(Obj); |
int qcoefr(Obj); |
int rangecheck(Obj,int); |
int rangecheck(Obj,int); |
int structtoindex(char *); |
int structtoindex(char *); |
pointer eval(FNODE); |
|
pointer evalf(FUNC,FNODE,FNODE); |
|
pointer bevalf(FUNC,NODE); |
|
pointer evalif(FNODE,FNODE); |
|
pointer evalnode(NODE node); |
|
pointer evalpf(PF,NODE); |
|
pointer evalparif(FUNC,NODE); |
|
pointer evalpv(int,FNODE,pointer); |
|
pointer evalstat(SNODE f); |
|
void _mkpfins(PF ,Obj *,V *); |
void _mkpfins(PF ,Obj *,V *); |
void appendpfins(V ,V *); |
void appendpfins(V ,V *); |
void appenduf(char *,FUNC *); |
void appenduf(char *,FUNC *); |
Line 648 void dp_mbase(NODE hlist,NODE *mbase); |
|
Line 651 void dp_mbase(NODE hlist,NODE *mbase); |
|
void dp_idiv(DP p,Q c,DP *rp); |
void dp_idiv(DP p,Q c,DP *rp); |
void dp_ptozp2(DP p0,DP p1,DP *hp,DP *rp); |
void dp_ptozp2(DP p0,DP p1,DP *hp,DP *rp); |
void dp_ptozp(DP p,DP *rp); |
void dp_ptozp(DP p,DP *rp); |
int eqdl(int nv,DL dl1,DL dl2); |
|
void _dpmod_to_vect(DP f,DL *at,int *b); |
void _dpmod_to_vect(DP f,DL *at,int *b); |
void _tf_to_vect_compress(NODE tf,DL *at,CDP *b); |
void _tf_to_vect_compress(NODE tf,DL *at,CDP *b); |
void dp_to_vect(DP f,DL *at,Q *b); |
void dp_to_vect(DP f,DL *at,Q *b); |
|
|
void sprompt(char *ptr); |
void sprompt(char *ptr); |
void process_args(int ac,char **av); |
void process_args(int ac,char **av); |
void sig_init() ; |
void sig_init() ; |
static void (*old_int)(int);; |
|
void asir_save_handler() ; |
void asir_save_handler() ; |
void asir_set_handler() ; |
void asir_set_handler() ; |
void asir_reset_handler() ; |
void asir_reset_handler() ; |
Line 883 pointer eval(FNODE f); |
|
Line 884 pointer eval(FNODE f); |
|
pointer evalstat(SNODE f); |
pointer evalstat(SNODE f); |
pointer evalnode(NODE node); |
pointer evalnode(NODE node); |
pointer evalf(FUNC f,FNODE a,FNODE opt); |
pointer evalf(FUNC f,FNODE a,FNODE opt); |
|
pointer evalparif(FUNC f,NODE a); |
|
pointer evalf_deriv(FUNC f,FNODE a,FNODE deriv); |
pointer evalmapf(FUNC f,FNODE a); |
pointer evalmapf(FUNC f,FNODE a); |
pointer eval_rec_mapf(FUNC f,FNODE a); |
pointer eval_rec_mapf(FUNC f,FNODE a); |
pointer beval_rec_mapf(FUNC f,NODE node); |
pointer beval_rec_mapf(FUNC f,NODE node); |
pointer bevalf(FUNC f,NODE a); |
pointer bevalf(FUNC f,NODE a); |
pointer evalif(FNODE f,FNODE a); |
pointer bevalf_with_opts(FUNC f,NODE a,NODE opts); |
pointer evalpf(PF pf,NODE args); |
pointer evalif(FNODE f,FNODE a,FNODE opt); |
|
pointer evalpf(PF pf,NODE args,NODE deriv); |
void evalnodebody(NODE sn,NODE *dnp); |
void evalnodebody(NODE sn,NODE *dnp); |
void gen_searchf(char *name,FUNC *r); |
void gen_searchf(char *name,FUNC *r); |
void searchf(NODE fn,char *name,FUNC *r); |
void searchf(NODE fn,char *name,FUNC *r); |