Example #1
0
static int primary_expr(ParserState* ps, Ast** expr) {
	Ast* base = ps->curr;
	if (literal_expr(ps, &base)) { *expr = base; }
	else if (curris(ps, PLParen)) {
		enterblk();
		if (expression(ps, expr) && ps->curr == 0) {
			exitblk();
			ast_swap(base, *expr);
			free(*expr);
			*expr = base;
			return 1;
		}
		else {
			exitblk();
			parerr(ps, "invlaid syntax");
		}
	}
	else if (obj_literal_expr(ps, expr)) {}
	else if (array_literal_expr(ps, expr)) {}
	else if (curris(ps, TkId)) { *expr = base; step(ps); }
	// else if (stepifis(ps, RNew)) {}
	else return 0;

	while (indexing(ps, expr, base)
		|| dot_id(ps, expr, base)
		|| arg_list(ps, base)) {
	}

	return 1;
}
Example #2
0
int main(int argc, char *argv[]){
    int i,j,k;
    char intt[200];
    int lon_mask[NPIX_MASK], lat_mask[NPIX_MASK];
    struct headers gridHeader,thisHeader;
    sprintf(intt,"%s%s",INPATH,GRIDNAME);
    gridHeader=readHeader(&intt[0]);
    
    
    int *glon,*glat;//global longitude and latitude of original grid
    int *index;
    glon=(int *)malloc(gridHeader.ncells*sizeof(int));
    glat=(int *)malloc(gridHeader.ncells*sizeof(int));
    index=(int *)malloc(gridHeader.ncells*sizeof(int));
    
    readMask(lon_mask,lat_mask);
    readGrid(glon,glat);
    indexing(lon_mask,lat_mask,glon,glat,index);
    
    printf("%d\n",sizeof(real));

    /*SHORT*/
    if(sizeof(real)==sizeof(short)){
      for(i=0;i<NCOWFILES;i++)         convGeneral(index,filecow[i]);//cow file
      for(i=0;i<NVAR6;i++)                   convGeneral(index,fileclim6[i]);//climate
      for(i=0;i<NVAR9;i++)                   convGeneral(index,fileclim9[i]); 
      for(i=0;i<NVARERA;i++)              convGeneral(index,fileclimera[i]);        
      for(i=0;i<NSDATEFILES;i++)      convGeneral(index,filesdate[i]); //sowing data
      for(i=0;i<NPOPFILES;i++)           convGeneral(index,filepopdens[i]);//Population density
      for(i=0;i<NELEVFILES;i++)         convGeneral(index,fileelev[i]);       //elevation
      for(i=0;i<NCROPFILES;i++)        convGeneral(index,filelu[i]);      //CFT
}

    /*drainage & neibour irrigate(LONG)*/
    if(sizeof(real)==sizeof(long)){
      for(i=0;i<NDRAINFILES;i++)   convGeneral(index,filedrain[i]); //drainage
      for(i=0;i<NNEIFILES;i++)         convGeneral(index,filenei[i]);//neibourring irrigation
}
    
    /*water use & reservoir_info_grand5 & soil  (INT)*/
    if(sizeof(real)==sizeof(int)){
       for(i=0;i<NLAKEFILES;i++)        convSoil_Lake(index,filelakes[i]);//lakes
       for(i=0;i<NWUSEFILES;i++)      convGeneral(index,filewuse[i]);//water use
       for(i=0;i<NRESFILES;i++)          conv_reservoir(index,fileres[i]);//reservoir
       convSoil_Lake(index,filesoil[0]);//soil
    }
    
   
    free(glon);
    free(glat);
    free(index);
    

}