void get_seq_info(FILE *file, char *str0, size_t len0, int *n0_begin, int *n0_end, char *str1, size_t len1, int *n1_begin, int *n1_end) { char line[MAX_STR], *bp; int have_quote0 = 0; int have_quote1 = 0; str0[0] = str1[0] = '\0'; fgets(line, sizeof(line), file); if (line[0] == '}') return; sscanf(line, "%s %d %d", str0, n0_begin, n0_end); fgets(line, sizeof(line), file); if (line[0] == '}') return; sscanf(line, "%s %d %d", str1, n1_begin, n1_end); if ((bp = strchr(str0+1,'\"'))!=NULL) *bp = 0; if ((bp = strchr(str1+1,'\"'))!=NULL) *bp = 0; if (str0[0] == '\"') {del1(str0);} if (str1[0] == '\"') {del1(str1);} fgets(line, sizeof(line), file); /* get the last } */ }
void* readExpression(char* source1,rdelement rd1,operation act1,clear del1) { void* rslt; source=source1; act0=act1, rd0=rd1; delFlag=(del1!=NULL); if(delFlag) {nDel=0; toDel=malloc(sizeof(void*));} count=0; rderrpos=0; rderrcode=0; rslt= readSum(); if(rderrcode==0 && ( source[count]==',' || source[count]==')') ) {rslt=NULL; rderrcode=unexpectedcharacter;} if(!rslt && !rderrpos) rderrpos=count+1; if(delFlag) { while(--nDel>=0) if(toDel[nDel]!=rslt) del1(toDel[nDel]); free(toDel); } return rslt; }