#include #include #undef YY_INPUT #define YY_INPUT(buf,result,max_size) \ { int c = jjgetc( yyin ); \ result = c == EOF ? 0 : 1; \ buf[0] = (char) c; } static char* line_read = (char *)NULL; int do_gets() { int ret; ret=((line_read = readline("?- ")) == NULL) ? EOF : 0; if(line_read && *line_read) add_history(line_read); return(ret); } static int jjgetc(FILE* fp) { static int p=0; if(line_read == NULL) { if(do_gets()== EOF) return EOF; p=0; return (jjgetc(fp)); } if(*(line_read+p) == '\0') { free(line_read); line_read=NULL; return(10) ;} return(*(line_read+(p++))); }