From 76bdf9bb4a8fec97e89f99a9e4aac50253b50336 Mon Sep 17 00:00:00 2001 From: serr Date: Tue, 13 May 2025 15:37:01 +0300 Subject: [PATCH] float literals --- analyzers/test/test.l | 6 ++++++ analyzers/test/test.y | 3 ++- tests/test_blocks.txt | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/analyzers/test/test.l b/analyzers/test/test.l index 6244dc9..1856a04 100644 --- a/analyzers/test/test.l +++ b/analyzers/test/test.l @@ -48,6 +48,12 @@ LETTER_OR_DIGIT [a-zA-Z0-9_] yylval.str = strdup(yytext); return IDENTIFIER; } + +[0-9]+\.[0-9]+ { + yylval.str = strdup(yytext); + return FLOAT_LITERAL; +} + {DIGIT}+ { yylval.str = strdup(yytext); return NUMBER; diff --git a/analyzers/test/test.y b/analyzers/test/test.y index f982714..cfeccda 100644 --- a/analyzers/test/test.y +++ b/analyzers/test/test.y @@ -19,7 +19,7 @@ void free_node(char *str) { char *str; } -%token IDENTIFIER NUMBER TEXT STRING_LITERAL +%token IDENTIFIER NUMBER TEXT STRING_LITERAL FLOAT_LITERAL %token SHORT_DECLARATION LBRACE RBRACE SEMICOLON ASSIGN %token VAR @@ -86,6 +86,7 @@ type: // Литералы literal: STRING_LITERAL + | FLOAT_LITERAL | NUMBER ; // diff --git a/tests/test_blocks.txt b/tests/test_blocks.txt index b6d91ca..f3b02fd 100644 --- a/tests/test_blocks.txt +++ b/tests/test_blocks.txt @@ -1,7 +1,7 @@ a := 1; { - a := 1; + a := 229.162613; s := "test string";