added comments

master
serr 2025-03-30 18:53:55 +03:00
parent aa52376507
commit 381805e980
2 changed files with 7 additions and 3 deletions

View File

@ -5,15 +5,19 @@ void yyerror(const char *s);
int yylex(); int yylex();
%} %}
// В Bison приоритет операторов определяется обратным порядком объявления
// left означает левоассоциативность, т.е. вычисление 8/2/2/2 например производится слева направо
%token NUMBER %token NUMBER
%left '+' '-' %left '+' '-' // т.е. операторы в этой строке имеют более низкий приотритет
%left '*' '/' %left '*' '/' // нежели операторы в этой строке
%% %%
// Это правило отвечает за обработку потока выражений и вывод результатов.
input: input:
| input expr { printf("= %d\n", $2); } | input expr { printf("= %d\n", $2); }
; ;
// $1 - значение первого операнда, $2 - оператор, а $3 - значение второго операнда
expr: NUMBER { $$ = $1; } expr: NUMBER { $$ = $1; }
| expr '+' expr { $$ = $1 + $3; } | expr '+' expr { $$ = $1 + $3; }
| expr '-' expr { $$ = $1 - $3; } | expr '-' expr { $$ = $1 - $3; }

View File

@ -27,7 +27,7 @@ def main():
for cmd in cmds: for cmd in cmds:
try: try:
subprocess.run(cmd, capture_output=True, check=True) subprocess.run(cmd, capture_output=True, check=True)
print(f'\033[92mSuccess execute {cmd}!\033[0m') print(f'\033[92mSuccess execute \033[0m{cmd}!')
except subprocess.CalledProcessError as e: except subprocess.CalledProcessError as e:
print(f"\033[91mError: {e}\033[0m") print(f"\033[91mError: {e}\033[0m")
# #