This is the code that I added to the first example (a postfix calculator) provided with the documentation for bison++ and flex++.
void parse :: yyerror (char* msg)
printf ("%s", msg);
int parse :: yylex ()
int c = 0;
while ((c = getchar ()) == '' '' || c == ''\t'');
if (c == ''.'' || isdigit ©)
ungetc (c, stdin);
scanf ("%lf", yylval);
if (c == EOF)
int main (int argc, char** argv)
parse* parser = new parse ();
parser = 0;
The code compiles fine, with a few tweaks, like defining that alloc should not be used. However, on execution, when I enter the line 4 5 +, expecting 9, I instead get a runtime error:
R6002 - runtime error, floating point not loaded.
What is this, and how can I prevent it from occuring? I''m very new to both compiler compilers, and especially bison, having messed around a bit in SableCC.
Any help is much appreciated.
I''m from the north of England. We live in huts.