feat(furc/parser): add variable and group expressions

This commit is contained in:
2026-08-08 00:02:30 +02:00
parent ecdf6944a7
commit 212b1e2384
3 changed files with 36 additions and 17 deletions
+17 -2
View File
@@ -79,8 +79,6 @@ public:
virtual decl_type_e decl_type() const = 0;
};
class expr_node;
struct var_decl_node final : public decl_node {
decl_type_e decl_type() const override { return Variable; }
@@ -103,6 +101,8 @@ public:
enum expr_type_e {
Literal,
VarRead,
Group,
BinaryOp,
UnaryOp,
};
@@ -114,6 +114,21 @@ public:
virtual expr_type_e expr_type() const = 0;
};
struct var_read_expr_node final : public expr_node {
expr_type_e expr_type() const override { return VarRead; }
std::string name;
var_read_expr_node(std::string&& name)
: name(std::move(name)) {}
};
struct group_expr_node final : public expr_node {
expr_type_e expr_type() const override { return Group; }
expr_node* inner = nullptr;
};
struct binary_op_expr_node final : public expr_node {
enum binary_op_type {
Add = 0,