version 1.11, 2000/09/20 19:03:09
|
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); |