LPAREN, RPAREN added

master
serr 2025-04-01 18:10:14 +03:00
parent 759749b254
commit 0810b7275c
3 changed files with 6 additions and 3 deletions

View File

@ -18,6 +18,8 @@ void yyerror(const char *s) {
%%
"{" { return LBRACE; }
"}" { return RBRACE; }
"(" { return LPAREN; }
")" { return RPAREN; }
";" { return SEMICOLON; }
"=" { return ASSIGN; }
"+" { return PLUS; }

View File

@ -12,7 +12,7 @@ extern FILE *yyin;
}
%token <str> IDENTIFIER NUMBER
%token LBRACE RBRACE SEMICOLON ASSIGN PLUS MINUS MULT DIV MOD RET PRINT
%token LBRACE RBRACE LPAREN RPAREN SEMICOLON ASSIGN PLUS MINUS MULT DIV MOD RET PRINT
%type <str> expr program statement block
@ -50,6 +50,7 @@ expr:
| expr MULT { printf("MULT\n") } expr // выражения вида expr*expr
| expr DIV { printf("DIV\n") } expr // выражения вида expr/expr
| expr MOD { printf("MOD\n") } expr // выражения вида expr%expr
| LPAREN { printf("LPAREN\n") } expr RPAREN { printf("RPAREN\n") } // выражения вида (expr)
| IDENTIFIER { printf("IDENTIFIER(%s)\n", $1); free($1); }
| NUMBER { printf("NUMBER(%s)\n", $1); free($1); }
;

View File

@ -3,9 +3,9 @@
x = z + 3 + 5;
{
x = -10;
y = x + 5 % 2;
y = (x + +5) % 2;
{
z = y * +2 / 5 * 3;
z = y * +2 / -(5 * ( ((3)) ));
}
}
print x;