simple calc +

master
serr 2025-03-30 18:31:54 +03:00
parent baada0416f
commit aa52376507
2 changed files with 6 additions and 5 deletions

View File

@ -3,10 +3,11 @@
%}
%%
[0-9]+ { yylval = atoi(yytext); return NUMBER; }
[-+*/()] { return yytext[0]; }
[ \t\n] ; // Игнорируем пробелы и переносы
. { printf("unknown: %s\n", yytext); }
[0-9]+ { yylval = atoi(yytext); return NUMBER; } // Если ввод - набор цифр, то возвращаем int
[-+*/()] { return yytext[0]; } // Если символ совпал с каким то из этих, то он возвращается, далее bison будет его использовать
[ \t] ; // Пробелы и табы игнорируются
\n { return 0; } // Энтер обозначает конец ввода
. { printf("unknown: %s\n", yytext); } // Неподдерживаемый символ
%%
int yywrap() { return 1; }

View File

@ -10,7 +10,7 @@ int yylex();
%left '*' '/'
%%
input: /* пусто */
input:
| input expr { printf("= %d\n", $2); }
;