Allow expressions in designators
This commit is contained in:
@ -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;
|
||||
|
||||
|
Reference in New Issue
Block a user