LT,GT added

master
serr 2025-04-01 20:46:39 +03:00
parent 62d7cd8840
commit 7e3df8f400
3 changed files with 8 additions and 3 deletions

View File

@ -28,6 +28,8 @@ void yyerror(const char *s) {
"&&" { return AND; }
"||" { return OR; }
"!" { return NOT; }
"<" { return LT; }
">" { return GT; }
"return" { return RET; }
"print" { return PRINT; }

View File

@ -16,7 +16,7 @@ bool debug = false; // debug mode
}
%token <str> IDENTIFIER NUMBER
%token LBRACE RBRACE LPAREN RPAREN SEMICOLON ASSIGN PLUS MINUS MULT DIV MOD RET PRINT WHILE DO IF ELSE AND OR NOT
%token LBRACE RBRACE LPAREN RPAREN SEMICOLON ASSIGN PLUS MINUS MULT DIV MOD RET PRINT WHILE DO IF ELSE AND OR NOT LT GT
%token FUNC COMMA
%type <str> expr program statement block func_decl param_list params
@ -105,6 +105,8 @@ expr:
| LPAREN { if (debug) printf("LPAREN\n") } expr RPAREN { if (debug) printf("RPAREN\n") } // выражения вида (expr)
| expr OR { if (debug) printf("OR\n") } expr
| expr AND { if (debug) printf("AND\n") } expr
| expr LT { if (debug) printf("LT\n") } expr
| expr GT { if (debug) printf("GT\n") } expr
| NOT { if (debug) printf("NOT\n") } expr
| IDENTIFIER { if (debug) printf("IDENTIFIER(%s)\n", $1); free($1); }
| NUMBER { if (debug) printf("NUMBER(%s)\n", $1); free($1); }

View File

@ -1,4 +1,5 @@
func FUNC_1(a, b, c) {
x = x + 1;
a = a + 1;
}
@ -6,7 +7,7 @@ func FUNC_1(a, b, c) {
func FUNC_2() {
do {
x = x + 1;
} while(!x);
} while(x < 5);
x = 5;
}