version 1.56, 2017/08/31 02:36:21 |
version 1.57, 2018/03/29 01:32:54 |
|
|
* 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.55 2015/08/14 13:51:56 fujimoto Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/parse/parse.h,v 1.56 2017/08/31 02:36:21 noro Exp $ |
*/ |
*/ |
# if defined(VISUAL) || defined(__MINGW32__) |
# if defined(VISUAL) || defined(__MINGW32__) |
#include <time.h> |
#include <time.h> |
|
|
/* identifiers for expressions */ |
/* identifiers for expressions */ |
|
|
typedef enum { |
typedef enum { |
I_BOP, I_COP, I_AND, I_OR, I_NOT, I_CE, |
I_BOP, I_COP, I_AND, I_OR, I_NOT, I_CE, |
I_PRESELF, I_POSTSELF, |
I_PRESELF, I_POSTSELF, |
I_FUNC, I_FUNC_OPT, I_IFUNC, I_MAP, I_RECMAP, I_PFDERIV, |
I_FUNC, I_FUNC_OPT, I_IFUNC, I_MAP, I_RECMAP, I_PFDERIV, |
I_ANS, I_PVAR, I_ASSPVAR, |
I_ANS, I_PVAR, I_ASSPVAR, |
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_CONS, I_FUNC_QARG, I_FUNC_HEAD, I_EVM |
I_NARYOP, I_CONS, I_FUNC_QARG, I_FUNC_HEAD, I_EVM |
} fid; |
} fid; |
|
|
/* identifiers for statements */ |
/* identifiers for statements */ |
|
|
typedef enum { |
typedef enum { |
S_BP, S_PFDEF, |
S_BP, S_PFDEF, |
S_SINGLE, S_CPLX, |
S_SINGLE, S_CPLX, |
S_IFELSE, S_FOR, S_DO, |
S_IFELSE, S_FOR, S_DO, |
S_BREAK, S_RETURN, S_CONTINUE, |
S_BREAK, S_RETURN, S_CONTINUE, |
S_MODULE |
S_MODULE |
} sid; |
} sid; |
|
|
/* identifiers for comparison operators */ |
/* identifiers for comparison operators */ |
Line 99 typedef enum { A_UNDEF, A_BIN, A_USR, A_PURE, A_PARI } |
|
Line 99 typedef enum { A_UNDEF, A_BIN, A_USR, A_PURE, A_PARI } |
|
typedef enum { V_IND, V_UC, V_PF, V_SR } vid; |
typedef enum { V_IND, V_UC, V_PF, V_SR } vid; |
|
|
typedef struct oVS { |
typedef struct oVS { |
unsigned int n; |
unsigned int n; |
unsigned int asize; |
unsigned int asize; |
unsigned int at; |
unsigned int at; |
unsigned int level; |
unsigned int level; |
struct oFUNC *usrf; |
struct oFUNC *usrf; |
struct oPV *va; |
struct oPV *va; |
NODE opt; |
NODE opt; |
} *VS; |
} *VS; |
|
|
typedef struct oMODULE { |
typedef struct oMODULE { |
char *name; |
char *name; |
VS pvs; |
VS pvs; |
NODE usrf_list; |
NODE usrf_list; |
} *MODULE; |
} *MODULE; |
|
|
typedef struct oPV { |
typedef struct oPV { |
char *name; |
char *name; |
short attr,type; |
short attr,type; |
pointer priv; |
pointer priv; |
} *PV; |
} *PV; |
|
|
typedef struct oINFILE { |
typedef struct oINFILE { |
char *name; |
char *name; |
FILE *fp; |
FILE *fp; |
JMP_BUF jmpbuf; |
JMP_BUF jmpbuf; |
int ready_for_longjmp; |
int ready_for_longjmp; |
int ln; |
int ln; |
struct oINFILE *next; |
struct oINFILE *next; |
char *tname; |
char *tname; |
int encoded; |
int encoded; |
short vol; |
short vol; |
} *INFILE; |
} *INFILE; |
|
|
struct oTKWD { |
struct oTKWD { |
char *name; |
char *name; |
int token; |
int token; |
}; |
}; |
|
|
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; |
|
|
typedef struct oARF { |
typedef struct oARF { |
char *name; |
char *name; |
void (*fp)(); |
void (*fp)(); |
} *ARF; |
} *ARF; |
|
|
typedef struct oFUNC { |
typedef struct oFUNC { |
char *name,*fullname; |
char *name,*fullname; |
int argc; |
int argc; |
int type; |
int type; |
int secure; |
int secure; |
aid id; |
aid id; |
unsigned int quote; |
unsigned int quote; |
union { |
union { |
void (*binf)(); |
void (*binf)(); |
struct oUSRF *usrf; |
struct oUSRF *usrf; |
struct oPF *puref; |
struct oPF *puref; |
} f; |
} f; |
} *FUNC; |
} *FUNC; |
|
|
typedef struct oUSRF { |
typedef struct oUSRF { |
char *fname; |
char *fname; |
MODULE module; |
MODULE module; |
int startl,endl; |
int startl,endl; |
NODE args; |
NODE args; |
VS pvs; |
VS pvs; |
char *desc; |
char *desc; |
struct oSNODE *body; |
struct oSNODE *body; |
} *USRF; |
} *USRF; |
|
|
typedef struct oPF { |
typedef struct oPF { |
char *name; |
char *name; |
int argc; |
int argc; |
Obj body; |
Obj body; |
V *args; |
V *args; |
Obj *deriv; |
Obj *deriv; |
NODE ins; |
NODE ins; |
int (*pari)(); |
int (*pari)(); |
double (*libm)(); |
double (*libm)(); |
int (*simplify)(); |
int (*simplify)(); |
} *PF; |
} *PF; |
|
|
typedef struct oPFAD { |
typedef struct oPFAD { |
Obj arg; |
Obj arg; |
int d; |
int d; |
} *PFAD; |
} *PFAD; |
|
|
typedef struct oPFINS { |
typedef struct oPFINS { |
struct oPF *pf; |
struct oPF *pf; |
struct oPFAD ad[1]; |
struct oPFAD ad[1]; |
} *PFINS; |
} *PFINS; |
|
|
#define NEWPF(p) ((p)=(PF)MALLOC(sizeof(struct oPF))) |
#define NEWPF(p) ((p)=(PF)MALLOC(sizeof(struct oPF))) |
|
|
typedef struct oFNODE { |
typedef struct oFNODE { |
short id; |
short id; |
unsigned normalized:1; |
unsigned normalized:1; |
unsigned expanded:2; |
unsigned expanded:2; |
unsigned coef:1; |
unsigned coef:1; |
pointer arg[1]; |
pointer arg[1]; |
} *FNODE; |
} *FNODE; |
|
|
#define NEWFNODE(a,b) \ |
#define NEWFNODE(a,b) \ |
((a)=(FNODE)MALLOC(sizeof(struct oFNODE)+sizeof(pointer)*(b-1))) |
((a)=(FNODE)MALLOC(sizeof(struct oFNODE)+sizeof(pointer)*(b-1))) |
|
|
typedef struct oSNODE { |
typedef struct oSNODE { |
sid id; |
sid id; |
int ln; |
int ln; |
pointer arg[1]; |
pointer arg[1]; |
} *SNODE; |
} *SNODE; |
|
|
#define NEWSNODE(a,b) \ |
#define NEWSNODE(a,b) \ |
((a)=(SNODE)MALLOC(sizeof(struct oSNODE)+sizeof(pointer)*(b-1)),(a)->ln=asir_infile->ln) |
((a)=(SNODE)MALLOC(sizeof(struct oSNODE)+sizeof(pointer)*(b-1)),(a)->ln=asir_infile->ln) |
|
|
typedef struct oPVI { |
typedef struct oPVI { |
int pv; |
int pv; |
NODE index; |
NODE index; |
} *PVI; |
} *PVI; |
|
|
typedef struct oNODE2 { |
typedef struct oNODE2 { |
pointer body1,body2; |
pointer body1,body2; |
struct oNODE2 *next; |
struct oNODE2 *next; |
} *NODE2; |
} *NODE2; |
|
|
struct ftab { |
struct ftab { |
char *name; |
char *name; |
void (*f)(); |
void (*f)(); |
int argc; |
int argc; |
unsigned int quote; |
unsigned int quote; |
}; |
}; |
|
|
#define MKPVI(a,b,c)\ |
#define MKPVI(a,b,c)\ |
|
|
|
|
#define asir_assert(ptr,id,message)\ |
#define asir_assert(ptr,id,message)\ |
switch ( id ) {\ |
switch ( id ) {\ |
case O_N: case O_P: case O_R:\ |
case O_N: case O_P: case O_R:\ |
if( (ptr) && (OID(ptr) > (id)) ) {\ |
if( (ptr) && (OID(ptr) > (id)) ) {\ |
fprintf(stderr,message);\ |
fprintf(stderr,message);\ |
error(" : invalid argument");\ |
error(" : invalid argument");\ |
}\ |
}\ |
break;\ |
break;\ |
case O_DP:\ |
case O_DP:\ |
if( (ptr) && (OID(ptr) != (id)) ) {\ |
if( (ptr) && (OID(ptr) != (id)) ) {\ |
fprintf(stderr,message);\ |
fprintf(stderr,message);\ |
error(" : invalid argument");\ |
error(" : invalid argument");\ |
}\ |
}\ |
break;\ |
break;\ |
default:\ |
default:\ |
if( !(ptr) || (OID(ptr) != (id)) ) {\ |
if( !(ptr) || (OID(ptr) != (id)) ) {\ |
fprintf(stderr,message);\ |
fprintf(stderr,message);\ |
error(" : invalid argument");\ |
error(" : invalid argument");\ |
}\ |
}\ |
break;\ |
break;\ |
} |
} |
|
|
#define DEFSIZE 32 |
#define DEFSIZE 32 |
Line 724 void reduce_reducers_mod(int **mat,int row,int col,int |
|
Line 724 void reduce_reducers_mod(int **mat,int row,int col,int |
|
void pre_reduce_mod(int **mat,int row,int col,int nred,int md); |
void pre_reduce_mod(int **mat,int row,int col,int nred,int md); |
void reduce_sp_by_red_mod(int *sp,int **redmat,int *ind,int nred,int col,int md); |
void reduce_sp_by_red_mod(int *sp,int **redmat,int *ind,int nred,int col,int md); |
void red_by_compress(int m,unsigned int *p,unsigned int *r, |
void red_by_compress(int m,unsigned int *p,unsigned int *r, |
unsigned int *ri,unsigned int hc,int len); |
unsigned int *ri,unsigned int hc,int len); |
void red_by_vect(int m,unsigned int *p,unsigned int *r,unsigned int hc,int len); |
void red_by_vect(int m,unsigned int *p,unsigned int *r,unsigned int hc,int len); |
void reduce_sp_by_red_mod_compress (int *sp,CDP *redmat,int *ind, |
void reduce_sp_by_red_mod_compress (int *sp,CDP *redmat,int *ind, |
int nred,int col,int md); |
int nred,int col,int md); |
int generic_gauss_elim_mod(int **mat0,int row,int col,int md,int *colstat); |
int generic_gauss_elim_mod(int **mat0,int row,int col,int md,int *colstat); |
int lu_gfmmat(GFMMAT mat,unsigned int md,int *perm); |
int lu_gfmmat(GFMMAT mat,unsigned int md,int *perm); |
int find_lhs_and_lu_mod(unsigned int **a,int row,int col, |
int find_lhs_and_lu_mod(unsigned int **a,int row,int col, |
unsigned int md,int **rinfo,int **cinfo); |
unsigned int md,int **rinfo,int **cinfo); |
void solve_by_lu_mod(int **a,int n,int md,int **b,int l,int normalize); |
void solve_by_lu_mod(int **a,int n,int md,int **b,int l,int normalize); |
int gauss_elim_mod1(int **mat,int row,int col,int md); |
int gauss_elim_mod1(int **mat,int row,int col,int md); |
int gauss_elim_geninv_mod(unsigned int **mat,int row,int col,int md); |
int gauss_elim_geninv_mod(unsigned int **mat,int row,int col,int md); |
void solve_by_lu_gfmmat(GFMMAT lu,unsigned int md,unsigned int *b,unsigned int *x); |
void solve_by_lu_gfmmat(GFMMAT lu,unsigned int md,unsigned int *b,unsigned int *x); |
void mat_to_gfmmat(MAT m,unsigned int md,GFMMAT *rp); |
void mat_to_gfmmat(MAT m,unsigned int md,GFMMAT *rp); |
int gauss_elim_geninv_mod_swap(unsigned int **mat,int row,int col, |
int gauss_elim_geninv_mod_swap(unsigned int **mat,int row,int col, |
unsigned int md,unsigned int ***invmatp,int **indexp); |
unsigned int md,unsigned int ***invmatp,int **indexp); |
void inner_product_int(Q *a,Q *b,int n,Q *r); |
void inner_product_int(Q *a,Q *b,int n,Q *r); |
void inner_product_mat_int_mod(Q **a,int **b,int n,int k,int l,Q *r); |
void inner_product_mat_int_mod(Q **a,int **b,int n,int k,int l,Q *r); |
int generate_ONB_polynomial(UP2 *rp,int m,int type); |
int generate_ONB_polynomial(UP2 *rp,int m,int type); |
Line 821 void init_cmdwin(); |
|
Line 821 void init_cmdwin(); |
|
void searchpf(char *name,FUNC *fp); |
void searchpf(char *name,FUNC *fp); |
void searchc(char *name,FUNC *fp); |
void searchc(char *name,FUNC *fp); |
void mkpf(char *name,Obj body,int argc,V *args, |
void mkpf(char *name,Obj body,int argc,V *args, |
int (*parif)(),double (*libmf)(), int (*simp)(),PF *pfp); |
int (*parif)(),double (*libmf)(), int (*simp)(),PF *pfp); |
void mkpfins(PF pf,V *args,V *vp); |
void mkpfins(PF pf,V *args,V *vp); |
void _mkpfins(PF pf,Obj *args,V *vp); |
void _mkpfins(PF pf,Obj *args,V *vp); |
void _mkpfins_with_darray(PF pf,Obj *args,int *darray,V *vp); |
void _mkpfins_with_darray(PF pf,Obj *args,int *darray,V *vp); |
Line 873 void appenduf(char *name,FUNC *r); |
|
Line 873 void appenduf(char *name,FUNC *r); |
|
void mkparif(char *name,FUNC *r); |
void mkparif(char *name,FUNC *r); |
void mkuf(char *name,char *fname,NODE args,SNODE body,int startl,int endl,char *desc,MODULE module); |
void mkuf(char *name,char *fname,NODE args,SNODE body,int startl,int endl,char *desc,MODULE module); |
Obj getopt_from_cpvs(char *key); |
Obj getopt_from_cpvs(char *key); |
void des_enc(unsigned long *, unsigned char *, unsigned long *); |
void des_enc(unsigned long *, unsigned char *, unsigned long *); |
unsigned long round_func(unsigned long , unsigned char *); |
unsigned long round_func(unsigned long , unsigned char *); |
unsigned long s_box_func(unsigned char *); |
unsigned long s_box_func(unsigned char *); |
void des_dec(unsigned long *, unsigned char *, unsigned long *); |
void des_dec(unsigned long *, unsigned char *, unsigned long *); |
void key_schedule(unsigned char *,unsigned char *); |
void key_schedule(unsigned char *,unsigned char *); |
void debug_init(); |
void debug_init(); |
void add_alias(char *com,char *alias); |
void add_alias(char *com,char *alias); |
void show_alias(char *alias); |
void show_alias(char *alias); |