Allow expressions in designators

This commit is contained in:
2025-02-07 00:56:54 +01:00
parent 5e9b4259ca
commit 077de53c74
5 changed files with 51 additions and 40 deletions

View File

@ -33,7 +33,8 @@ namespace boot
enum class unary_operator
{
reference,
negation
negation,
minus
};
class variable_declaration;
@ -528,14 +529,14 @@ namespace boot
class array_access_expression : public designator_expression
{
designator_expression *m_base;
expression *m_base;
expression *m_index;
public:
array_access_expression(const struct position position, designator_expression *base, expression *index);
array_access_expression(const struct position position, expression *base, expression *index);
virtual void accept(parser_visitor *visitor) override;
designator_expression& base();
expression& base();
expression& index();
array_access_expression *is_array_access() override;
@ -563,13 +564,13 @@ namespace boot
class dereference_expression : public designator_expression
{
designator_expression *m_base;
expression *m_base;
public:
dereference_expression(const struct position position, designator_expression *base);
dereference_expression(const struct position position, expression *base);
virtual void accept(parser_visitor *visitor) override;
designator_expression& base();
expression& base();
dereference_expression *is_dereference() override;