%option noyywrap

%{
#include<stdio.h>
#include<stdlib.h>

int num1 = 0, num2 = 0;
char op;
%}

%%
[0-9]+    {
              if(num1 == 0)
                  num1 = atoi(yytext);
              else
                  num2 = atoi(yytext);
          }

[\+\-\*/] {
              op = yytext[0];
          }

\n        {
              switch(op)
              {
                  case '+':
                      printf("Result = %d\n", num1 + num2);
                      break;

                  case '-':
                      printf("Result = %d\n", num1 - num2);
                      break;

                  case '*':
                      printf("Result = %d\n", num1 * num2);
                      break;

                  case '/':
                      if(num2 == 0)
                          printf("Division by zero error\n");
                      else
                          printf("Result = %d\n", num1 / num2);
                      break;

                  default:
                      printf("Invalid operator\n");
              }

              num1 = num2 = 0;
          }

[ \t]     ;

.          {
              printf("Invalid character\n");
           }
%%

int main()
{
    printf("Enter expression (Example: 10+20):\n");
    yylex();
    return 0;
}