simple calc +
parent
baada0416f
commit
aa52376507
|
@ -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; }
|
|
@ -10,7 +10,7 @@ int yylex();
|
||||||
%left '*' '/'
|
%left '*' '/'
|
||||||
|
|
||||||
%%
|
%%
|
||||||
input: /* пусто */
|
input:
|
||||||
| input expr { printf("= %d\n", $2); }
|
| input expr { printf("= %d\n", $2); }
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue