оператор go добавил

master2
serr 2025-05-18 20:13:41 +03:00
parent dbfcb87b81
commit cfdd475fc1
3 changed files with 5 additions and 3 deletions

View File

@ -72,6 +72,7 @@ LETTER_OR_DIGIT [a-zA-Z0-9_]
"++" { return INC; }
"--" { return DEC; }
"go" { return GO; }
"defer" { return DEFER; }
"range" { return RANGE; }
"for" { return FOR; }

View File

@ -25,7 +25,7 @@ void free_node(char *str) {
%token VAR FUNC RETURN STRING_LITERAL FLOAT_LITERAL COMPLEX_LITERAL NUMBER PACKAGE IMPORT
%token INC DEC PLUS_EQ MINUS_EQ MUL_EQ DIV_EQ MOD_EQ
%token AMPERSAND_EQ PIPE_EQ XOR_EQ LSHIFT_EQ RSHIFT_EQ AND_NOT_EQ
%token FOR BREAK CONTINUE ARROW IF ELSE RANGE DEFER
%token FOR BREAK CONTINUE ARROW IF ELSE RANGE DEFER GO
%token CHAN CONST CASE SWITCH
%token PLUS MINUS MULT DIV MOD
%token STRING
@ -58,6 +58,7 @@ program:
;
statement:
| GO func_call SEMICOLON
| DEFER func_call SEMICOLON
| func_call SEMICOLON
{ printf("\033[1;33mSTATEMENT: func_call\033[0m\n"); }

View File

@ -13,13 +13,13 @@ func iife(work int) {
func(){}();
func(){fmt.Println(123);}();
func(a, b string) {
go func(a, b string) {
fmt.Println("Message:", a + b);
}("Hello", ", world!");
defer func() {
if err := recover(); err != nil {
log.Println("work failed:", err);
go log.Println("work failed:", err);
}
}();
}