Diff for /capa/capa51/pProj/capaUnit.c between versions 1.9 and 1.13

version 1.9, 2000/09/14 20:25:12 version 1.13, 2005/02/15 22:15:05
Line 727  process_op(int op) Line 727  process_op(int op)
   }    }
 }  }
   
 void  Unit_t*
 process_utree(Unit_t *t)  process_utree(Unit_t *t)
 {  {
   Ptopidx=0;    Ptopidx=0;
   postwalk_utree(t);    postwalk_utree(t);
   if( Ptopidx == 1 ) {    if( Ptopidx == 1 ) {
     /* printf("Correctly parsed!\n"); */      //fprintf(stderr,"Correctly parsed!\n");
     printf("Unit:%s\n",Sbuf);      //fprintf(stderr,"Unit:%s\n",Sbuf);
     simplify_unit(Pstack[Ptopidx]);      simplify_unit(Pstack[Ptopidx]);
     Pstack[Ptopidx]->u_symbol[0]='\0';      //Pstack[Ptopidx]->u_symbol[0]='\0';
     /*sprintf(Pstack[Ptopidx]->u_symbol,"");*/      //fprintf(stderr,Pstack[Ptopidx]->u_symbol,"");
     print_unit_t(Pstack[Ptopidx]);      print_unit_t(Pstack[Ptopidx]);
     u_find_name(Pstack[Ptopidx]);      //u_find_name(Pstack[Ptopidx]);
     print_matches(Pstack[Ptopidx]);      //print_matches(Pstack[Ptopidx]);
     free_utree(t);      return(Pstack[Ptopidx]);
       //free_utree(t);
   }    }
     return(t);
 }  }
   
 /* ============================================================== */  /* ============================================================== */
Line 781  int  check_correct_unit(char *u_symb,Uni Line 783  int  check_correct_unit(char *u_symb,Uni
   (Pstack[Ptopidx]->u_count == t->u_count) ) { /* has unit */    (Pstack[Ptopidx]->u_count == t->u_count) ) { /* has unit */
  *scale = units_ratio(Pstack[Ptopidx], t);   *scale = units_ratio(Pstack[Ptopidx], t);
  if( *scale == 0.0 ) {   if( *scale == 0.0 ) {
   result = UNIT_FAIL;    result = UNIT_IRRECONCIBLE;
  }   }
  free_utree(ap);   free_utree(ap);
       } else {        } else {
  result = UNIT_FAIL;   result = UNIT_INVALID_STUDENT3;
       }        }
     } else { /* invalid unit representation */      } else { /* invalid unit representation */
       result = UNIT_FAIL;        result = UNIT_INVALID_STUDENT2;
     }      }
   } else {    } else {
     result = UNIT_FAIL;      result = UNIT_INVALID_STUDENT1;
   }    }
 #ifdef UNIT_DBUG  #ifdef UNIT_DBUG
   fclose(ufp);    fclose(ufp);
Line 912  u_copy_unit(Unit_t *a_p, Unit_t *b_p, do Line 914  u_copy_unit(Unit_t *a_p, Unit_t *b_p, do
       a_p->u_count++;        a_p->u_count++;
     } else if( b_p->u_type == U_DERIVED) {      } else if( b_p->u_type == U_DERIVED) {
       /* derived units but without any units elements (scalar) */        /* derived units but without any units elements (scalar) */
       /* do nothing, ignore this units  WE REALLY MEAN THIS DON'T DO THE NEXT LINE!*/  
       /*a_p->u_count++;*/        /*a_p->u_count++;*/
         scale = pow(b_p->u_scale, exp_scale);
         a_p->u_scale = a_p->u_scale * scale;
     } else if( b_p->u_type == U_CONSTANT ) {      } else if( b_p->u_type == U_CONSTANT ) {
       scale = pow(b_p->u_scale, exp_scale);        scale = pow(b_p->u_scale, exp_scale);
       a_p->u_scale = a_p->u_scale * scale;        a_p->u_scale = a_p->u_scale * scale;
Line 1407  u_insert_derived(n_p,s_p,c_p,u_p)char  * Line 1410  u_insert_derived(n_p,s_p,c_p,u_p)char  *
   strcpy(new_p->u_comment,c_p);    strcpy(new_p->u_comment,c_p);
       
   simplify_unit(new_p);    simplify_unit(new_p);
   /*  #ifdef UNIT_DBUG
   printf("Derived Unit:%s\n",new_p->u_name);    printf("Derived Unit:%s\n",new_p->u_name);
   print_unit_t(new_p);     print_unit_t(new_p); 
   */  #endif
   if (c_result < 0 ) {    if (c_result < 0 ) {
     new_p->u_left = t->u_left; new_p->u_right = t;      new_p->u_left = t->u_left; new_p->u_right = t;
     t->u_left = NULL;      t->u_left = NULL;

Removed from v.1.9  
changed lines
  Added in v.1.13


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>