print + build partially tested

This commit is contained in:
ProgramSnail 2023-04-02 15:10:32 +03:00
parent 0d62ae0814
commit 15e36c203a
22 changed files with 179 additions and 116 deletions

View file

@ -30,7 +30,7 @@ void PrintVisitor::Visit(Sources* node) {
out_ << "\n)\n";
}
// Namespaces, partittions -----------------
// Namespaces, partitions -----------------
void PrintVisitor::Visit(Partition* node) {
out_ << "(Partition ";
@ -82,7 +82,7 @@ void PrintVisitor::Visit(Namespace* node) {
void PrintVisitor::Visit(ImportStatement* node) {
out_ << "(Import \"" << node->module_name << "\" ";
if (node->symbols.size() > 0) {
if (!node->symbols.empty()) {
out_ << '\n';
}
for (auto& symbol : node->symbols) {
@ -157,7 +157,7 @@ void PrintVisitor::Visit(TypeDefinition* node) {
void PrintVisitor::Visit(TypeclassDefinition* node) {
out_ << "(Typeclass ";
Visit(node->typeclass.get());
if (node->requirements.size() > 0) {
if (!node->requirements.empty()) {
out_ << " : \n";
}
for (auto& requirement : node->requirements) {
@ -172,13 +172,13 @@ void PrintVisitor::Visit(TypeclassDefinition* node) {
void PrintVisitor::Visit(DefinedName* node) {
out_ << "(DefinedName ";
Visit(&node->name);
if (node->parameters.size() > 0) {
if (!node->parameters.empty()) {
out_ << "\n";
}
for (auto& parameter : node->parameters) {
Visit(parameter.get());
}
if (node->arguments.size() > 0) {
if (!node->arguments.empty()) {
out_ << " : \n";
}
for (auto& argument : node->arguments) {
@ -204,13 +204,13 @@ void PrintVisitor::Visit(DefinedAnnotatedName* node) {
void PrintVisitor::Visit(DefinedType* node) {
out_ << "(DefinedType ";
Visit(node->type.get());
if (node->parameters.size() > 0) {
if (!node->parameters.empty()) {
out_ << "\n";
}
for (auto& parameter : node->parameters) {
Visit(parameter.get());
}
if (node->arguments.size() > 0) {
if (!node->arguments.empty()) {
out_ << " : \n";
}
for (auto& argument : node->arguments) {
@ -222,13 +222,13 @@ void PrintVisitor::Visit(DefinedType* node) {
void PrintVisitor::Visit(DefinedTypeclass* node) {
out_ << "(DefinedTypeclass ";
Visit(node->typeclass.get());
if (node->parameters.size() > 0) {
if (!node->parameters.empty()) {
out_ << "\n";
}
for (auto& parameter : node->parameters) {
Visit(parameter.get());
}
if (node->arguments.size() > 0) {
if (!node->arguments.empty()) {
out_ << " : \n";
}
for (auto& argument : node->arguments) {
@ -238,7 +238,7 @@ void PrintVisitor::Visit(DefinedTypeclass* node) {
}
void PrintVisitor::Visit(DefinitionParameter* node) {
out_ << "(DefinitionParameter " << (node->typeclasses.size() > 0 ? "(" : "");
out_ << "(DefinitionParameter " << (!node->typeclasses.empty() > 0 ? "(" : "");
Visit(&node->type);
out_ << ' ';
for (auto& typeclass : node->typeclasses) {
@ -248,7 +248,7 @@ void PrintVisitor::Visit(DefinitionParameter* node) {
}
void PrintVisitor::Visit(DefinitionArgument* node) {
out_ << "(DefinitionArgument " << (node->types.size() > 0 ? "(" : "");
out_ << "(DefinitionArgument " << (!node->types.empty() ? "(" : "");
Visit(&node->name);
out_ << ' ';
for (auto& type : node->types) {
@ -428,7 +428,7 @@ void PrintVisitor::Visit(LambdaFunction* node) {
for (auto& parameter : node->parameters) {
Visit(parameter.get());
}
if (node->parameters.size() > 0) {
if (!node->parameters.empty()) {
out_ << " : ";
}
for (auto& argument : node->arguments) {
@ -553,7 +553,7 @@ void PrintVisitor::Visit(VariantType* node) {
void PrintVisitor::Visit(AnnotatedType* node) {
out_ << "(AnnotatedType ";
Visit(node->type_expression.get());
if (node->annotations.size() > 0) {
if (!node->annotations.empty()) {
out_ << " :";
}
for (auto& annotation : node->annotations) {
@ -566,9 +566,9 @@ void PrintVisitor::Visit(AnnotatedType* node) {
void PrintVisitor::Visit(ParametrizedType* node) {
out_ << "(ParametrizedType ";
Visit(node->type_expression.get());
for (auto& paramater : node->parameters) {
for (auto& parameter : node->parameters) {
out_ << ' ';
Visitor::Visit(paramater);
Visitor::Visit(parameter);
}
out_ << " )";
}
@ -588,7 +588,7 @@ void PrintVisitor::Visit(TypeExpression* node) {
void PrintVisitor::Visit(AnnotatedTypeclass* node) {
out_ << "(AnnotatedTypeclass ";
Visit(node->typeclass_expression.get());
if (node->annotations.size() > 0) {
if (!node->annotations.empty()) {
out_ << " :";
}
for (auto& annotation : node->annotations) {