fixes , constructor patter fix, for loop fix

This commit is contained in:
ProgramSnail 2023-05-06 13:46:01 +03:00
parent 6ba31969d2
commit 70b84c38f0
7 changed files with 33 additions and 49 deletions

View file

@ -61,7 +61,6 @@ private:
void Visit(ForLoop* node) override;
void Visit(LoopLoop* node) override;
void Visit(PatternToken& node) override; // variant
void Visit(Pattern& node) override; // variant
void Visit(FlowControl& node) override; // variant

View file

@ -246,15 +246,13 @@ struct ExtendedName {
std::string name;
};
using PatternToken = std::variant<
using Pattern = std::variant<
std::unique_ptr<ExtendedName>,
std::unique_ptr<Literal>,
std::unique_ptr<TypeConstructorPattern>>;
using Pattern = std::variant<
std::unique_ptr<TypeConstructorPattern>,
std::unique_ptr<PatternToken>>;
using ScopedPattern = Pattern;
////////////////////////////////////////////////////////////////////////////////////////////
@ -413,7 +411,7 @@ struct TypeConstructorPatternParameter {
BaseNode base;
std::optional<ExtendedName> name;
PatternToken value;
ScopedPattern value;
};
struct TypeConstructorPattern {
@ -462,6 +460,7 @@ struct WhileLoop {
struct ForLoop {
BaseNode base;
utils::IsConstModifier variable_modifier;
AnyName variable;
Expression interval;
Expression statement;

View file

@ -58,7 +58,6 @@ protected:
virtual void Visit(ForLoop* node);
virtual void Visit(LoopLoop* node);
virtual void Visit(PatternToken& node); // variant
virtual void Visit(Pattern& node); // variant
virtual void Visit(FlowControl& node); // variant