fork download
  1. %{
  2. int op=0,i;
  3. float a, b;
  4. %}
  5. dig [0-9]+|([0-9]*)"."([0-9]+)
  6. add "+"
  7. sub "-"
  8. mul "*"
  9. div "/"
  10. pow "^"
  11. ln \n
  12. %%
  13. {dig} {digi();}
  14. {add} {op=1;}
  15. {sub} {op=2;}
  16. {mul} {op=3;}
  17. {div} {op=4;}
  18. {pow} {op=5;}
  19. {ln} {printf("\n The Answer :%f\n\n",a);}
  20. %%
  21. digi()
  22. {
  23. if(op==0)
  24. a=atof(yytext);
  25. else
  26. {
  27. b=atof(yytext);
  28. switch(op)
  29. {
  30. case 1:a=a+b;
  31. break;
  32. case 2:a=a-b;
  33. break;
  34. case 3:a=a*b;
  35. break;
  36. case 4:a=a/b;
  37. break;
  38. case 5:for(i=a;b>1;b--)
  39. a=a*i;
  40. break;
  41. }
  42. op=0;
  43. }
  44. }
  45. main(int argv,char*argc[])
  46. {
  47. yylex();
  48. }
  49. yywrap()
  50. {
  51. return1;
  52. }
  53.  
  54.  
  55.  
Success #stdin #stdout #stderr 0.02s 6896KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
ERROR: /home/UlKmFf/prog:54:0: Syntax error: Unexpected end of file
ERROR: '$runtoplevel'/0: Undefined procedure: program/0
   Exception: (3) program ? EOF: exit