#include char exprline[100]; int ptr; double x = 1.0, y = 2.0; double val; int yyparse(); int myungetc() { ptr--; return 0; } int mygetchar() { return exprline[ptr++]; } int yyerror(char *s) { (void) fprintf(stderr, "%s\n", s); return 1; } int evalExpr(char *expr, float xp, float yp, float *value) { int ierr; sprintf(exprline, "%s;", expr); ptr = 0; x = (double) xp; y = (double) yp; ierr = yyparse(); *value = val; return ierr; } void evalexpr_(char *expr, double *xp, double *yp, double *value, int *ierr) { int i, j; char ex[100]; j = 0; for(i = 0; i < 78; i++){ if(expr[i] != '\0'){ ex[j++] = expr[i]; } } ex[j] = '\0'; sprintf(exprline, "%s;", ex); /* printf("expr = %s\n", exprline); */ ptr = 0; x = *xp; y = *yp; *ierr = yyparse(); *value = val; }