добавил тип bool

master2
serr 2025-05-18 18:24:55 +03:00
parent 62f411eb2c
commit 204a2badd6
4 changed files with 15 additions and 4 deletions

View File

@ -22,6 +22,7 @@ LETTER_OR_DIGIT [a-zA-Z0-9_]
"string" { return STRING; } "string" { return STRING; }
"bool" { return BOOL; }
"uint" { return UINT; } "uint" { return UINT; }
"uint8" { return UINT8; } "uint8" { return UINT8; }
"uint16" { return UINT16; } "uint16" { return UINT16; }
@ -39,12 +40,13 @@ LETTER_OR_DIGIT [a-zA-Z0-9_]
"float32" { return FLOAT32; } "float32" { return FLOAT32; }
"float64" { return FLOAT64; } "float64" { return FLOAT64; }
"uintptr" { return UINT_PTR; } "uintptr" { return UINT_PTR; }
"true" { return BOOL_LITERAL; }
"false" { return BOOL_LITERAL; }
"if" { return IF; } "if" { return IF; }
"else" { return ELSE; } "else" { return ELSE; }
"<-" { return ARROW; } "<-" { return ARROW; }
"true" { return BOOL_LITERAL; }
"false" { return BOOL_LITERAL; }
"==" { return EQ; } "==" { return EQ; }
"&&" { return AND; } "&&" { return AND; }
"||" { return OR; } "||" { return OR; }

View File

@ -31,7 +31,7 @@ void free_node(char *str) {
%token STRING %token STRING
%token UINT UINT8 UINT16 UINT32 UINT64 UINT_PTR %token UINT UINT8 UINT16 UINT32 UINT64 UINT_PTR
%token INT INT8 INT16 INT32 INT64 %token INT INT8 INT16 INT32 INT64
%token RUNE BYTE BOOL_LITERAL %token RUNE BYTE BOOL_LITERAL BOOL
%token FLOAT32 FLOAT64 %token FLOAT32 FLOAT64
%token COMPLEX64 COMPLEX128 %token COMPLEX64 COMPLEX128
%token <str> IDENTIFIER WITH_DOT_IDENTIFIER %token <str> IDENTIFIER WITH_DOT_IDENTIFIER
@ -228,6 +228,10 @@ log_expr:
// //
// types // types
bool_types:
BOOL
int_types: int_types:
UINT { } UINT { }
| UINT8 { } | UINT8 { }
@ -258,6 +262,7 @@ type:
| string_types { } | string_types { }
| float_types { } | float_types { }
| complex_types { } | complex_types { }
| bool_types { }
; ;
// //

View File

@ -8,6 +8,10 @@ func test(a int) int {
return a; return a;
} }
func isValid() bool {
return true;
}
func main() { func main() {
a := test(1); // вызов функции обычной a := test(1); // вызов функции обычной
fmt.Println(test(test(1)*2+3 - a)); // вызов функции из fmt fmt.Println(test(test(1)*2+3 - a)); // вызов функции из fmt

View File

@ -49,7 +49,7 @@ func isValid() bool {
} }
func shouldReturn() bool { func shouldReturn() bool {
return false return false;
} }
if a, b := 1, 2; a < b && b < 3 { if a, b := 1, 2; a < b && b < 3 {
} }