示例#1
0
文件: lav2ps.c 项目: josemrc/appris
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 } */
}
示例#2
0
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;
}