From c910178efd62beae18a55e5c0b6e66fee5f6e014 Mon Sep 17 00:00:00 2001 From: bronku Date: Tue, 2 Dec 2025 12:52:59 +0100 Subject: [PATCH] kill me please --- src/codegen.hpp | 4 ++-- src/parser.y | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/codegen.hpp b/src/codegen.hpp index cf445e3..ded340f 100644 --- a/src/codegen.hpp +++ b/src/codegen.hpp @@ -180,7 +180,7 @@ private: } else if (auto *str = dynamic_cast(&expr)) { - write("\"" + str->value + "\""); + write(str->value); } else if (auto *binop = dynamic_cast(&expr)) { @@ -202,7 +202,7 @@ private: } else if (auto *unary_op = dynamic_cast(&expr)) { - output << unary_op->op.symbol(); + output << unary_op->op.symbol() << " "; generate_expr(*unary_op->operand); } else if (auto *attr = dynamic_cast(&expr)) diff --git a/src/parser.y b/src/parser.y index 71ba858..0dc5d40 100644 --- a/src/parser.y +++ b/src/parser.y @@ -124,6 +124,7 @@ expr: | expr LT expr { $$ = std::make_unique( BinaryOperator(BinaryOperator::LT) , std::move($1), std::move($3)); } | expr KW_AND expr { $$ = std::make_unique( BinaryOperator(BinaryOperator::AND) , std::move($1), std::move($3)); } | expr KW_OR expr { $$ = std::make_unique( BinaryOperator(BinaryOperator::OR) , std::move($1), std::move($3)); } + | KW_NOT expr { $$ = std::make_unique( UnaryOperator(UnaryOperator::NOT) , std::move($2)); } | expr L_BRACKET expr R_BRACKET { $$ = std::make_unique(std::move($1), std::move($3));} | expr L_BRACKET slice R_BRACKET{ $$ = std::make_unique(std::move($1), std::move($3)); } | L_PAREN expr R_PAREN {$$ = std::move($2); }