mirror of
https://codeberg.org/ProgramSnail/lang_2023.git
synced 2025-12-06 06:58:45 +00:00
print + build partially tested
This commit is contained in:
parent
0d62ae0814
commit
15e36c203a
22 changed files with 179 additions and 116 deletions
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue