#include <stdio.h>
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;
}


syntax highlighted by Code2HTML, v. 0.9.1