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

View File

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