Add an else to the case statement

This commit is contained in:
2025-04-11 15:28:43 +02:00
parent f68667d5e5
commit 6fd1bda112
6 changed files with 173 additions and 169 deletions

View File

@ -461,8 +461,10 @@ namespace elna::boot
public:
const std::vector<switch_case> cases;
const std::vector<statement *> *alternative;
case_statement(const struct position position, expression *condition, std::vector<switch_case>&& cases);
case_statement(const struct position position, expression *condition,
std::vector<switch_case>&& cases, std::vector<statement *> *alternative = nullptr);
void accept(parser_visitor *visitor) override;
expression& condition();
};
@ -592,10 +594,10 @@ namespace elna::boot
class if_statement : public statement
{
conditional_statements *m_body;
std::vector<statement *> *m_alternative;
public:
std::vector<conditional_statements *> branches;
const std::vector<statement *> *alternative;
if_statement(const struct position position, conditional_statements *body,
std::vector<statement *> *alternative = nullptr);
@ -603,7 +605,6 @@ namespace elna::boot
virtual if_statement *is_if() override;
conditional_statements& body();
std::vector<statement *> *alternative();
virtual ~if_statement() override;
};