fixes , type check visitor part

This commit is contained in:
ProgramSnail 2023-05-06 13:18:32 +03:00
parent 634ade6875
commit 6ba31969d2
2 changed files with 178 additions and 90 deletions

View file

@ -53,10 +53,10 @@ void PrintVisitor::Visit(Namespace* node) {
out_ << "[Namespace] ";
if (node->modifier.has_value()) {
switch (node->modifier.value()) {
case Namespace::Const:
case utils::IsConstModifier::Const:
out_ << "const ";
break;
case Namespace::Var:
case utils::IsConstModifier::Var:
out_ << "var ";
break;
}
@ -88,13 +88,13 @@ void PrintVisitor::Visit(ImportStatement* node) {
void PrintVisitor::Visit(AliasDefinitionStatement* node) {
out_ << "[Alias ";
switch (node->modifier) {
case AliasDefinitionStatement::Alias:
case utils::AliasModifier::Alias:
out_ << "alias";
break;
case AliasDefinitionStatement::Type:
case utils::AliasModifier::Type:
out_ << "type";
break;
case AliasDefinitionStatement::Let:
case utils::AliasModifier::Let:
out_ << "let";
break;
}
@ -108,10 +108,10 @@ void PrintVisitor::Visit(AliasDefinitionStatement* node) {
void PrintVisitor::Visit(VariableDefinitionStatement* node) {
out_ << "[Variable ";
switch (node->modifier) {
case VariableDefinitionStatement::Const:
case utils::IsConstModifier::Const:
out_ << "const";
break;
case VariableDefinitionStatement::Var:
case utils::IsConstModifier::Var:
out_ << "var";
break;
}
@ -145,10 +145,10 @@ void PrintVisitor::Visit(FunctionDefinitionStatement* node) {
void PrintVisitor::Visit(TypeDefinitionStatement* node) {
out_ << "[Type ";
switch (node->modifier) {
case TypeDefinitionStatement::Struct:
case utils::ClassModifier::Struct:
out_ << "struct";
break;
case TypeDefinitionStatement::Class:
case utils::ClassModifier::Class:
out_ << "class";
break;
}
@ -162,10 +162,10 @@ void PrintVisitor::Visit(TypeDefinitionStatement* node) {
void PrintVisitor::Visit(AbstractTypeDefinitionStatement* node) {
out_ << "[AbstractType ";
switch (node->modifier) {
case AbstractTypeDefinitionStatement::Basic:
case utils::AbstractTypeModifier::Basic:
out_ << "basic";
break;
case AbstractTypeDefinitionStatement::Abstract:
case utils::AbstractTypeModifier::Abstract:
out_ << "abstract";
break;
}
@ -193,10 +193,10 @@ void PrintVisitor::Visit(TypeclassDefinitionStatement* node) {
void PrintVisitor::Visit(FunctionDefinition* node) {
out_ << "[FunctionDefinition ";
switch (node->modifier) {
case FunctionDefinition::Operator:
case utils::FunctionTypeModifier::Operator:
out_ << "operator";
break;
case FunctionDefinition::Function:
case utils::FunctionTypeModifier::Function:
out_ << "function";
break;
}
@ -397,10 +397,10 @@ void PrintVisitor::Visit(ReferenceExpression* node) {
out_ << "[ReferenceExpression ";
for (auto& reference : node->references) {
switch (reference) {
case utils::ReferenceType::Reference:
case utils::ReferenceModifier::Reference:
out_ << '~';
break;
case utils::ReferenceType::UniqueReference:
case utils::ReferenceModifier::UniqueReference:
out_ << '@';
break;
}
@ -481,10 +481,10 @@ void PrintVisitor::Visit(TypeConstructorParameter* node) {
if (node->name.has_value()) {
Visit(&node->name.value());
switch (node->asignment_modifier.value()) {
case TypeConstructorParameter::Assign:
case utils::AssignmentModifier::Assign:
out_ << " = ";
break;
case TypeConstructorParameter::Move:
case utils::AssignmentModifier::Move:
out_ << " <- ";
break;
}
@ -650,10 +650,10 @@ void PrintVisitor::Visit(ExtendedScopedAnyType* node) {
out_ << "[ExtendedScopedAnyType ";
for (auto& reference : node->references) {
switch (reference) {
case utils::ReferenceType::Reference:
case utils::ReferenceModifier::Reference:
out_ << '~';
break;
case utils::ReferenceType::UniqueReference:
case utils::ReferenceModifier::UniqueReference:
out_ << '@';
break;
}