mirror of
https://codeberg.org/ProgramSnail/lang_2023.git
synced 2025-12-07 15:38:47 +00:00
fixes , type check visitor part
This commit is contained in:
parent
634ade6875
commit
6ba31969d2
2 changed files with 178 additions and 90 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue