2023-07-24 22:50:18 +03:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "basic_printers.hpp"
|
|
|
|
|
#include "statement_nodes.hpp"
|
|
|
|
|
|
2023-07-26 14:21:33 +03:00
|
|
|
#include <vector>
|
|
|
|
|
|
2023-07-24 22:50:18 +03:00
|
|
|
namespace printers {
|
|
|
|
|
|
2023-07-26 14:21:33 +03:00
|
|
|
void print_source_file(const std::vector<nodes::Statement> &statements,
|
|
|
|
|
Printer &printer);
|
2023-07-24 22:50:18 +03:00
|
|
|
|
2023-07-26 14:21:33 +03:00
|
|
|
void print_statement(const nodes::Statement &statements, Printer &printer);
|
2023-07-24 22:50:18 +03:00
|
|
|
|
|
|
|
|
void print_import(const nodes::Import &statement, Printer &printer);
|
|
|
|
|
|
|
|
|
|
void print_constraint(const nodes::Constraint &statement, Printer &printer);
|
|
|
|
|
|
|
|
|
|
void print_type_definition(const nodes::TypeDefinition &statement,
|
|
|
|
|
Printer &printer);
|
|
|
|
|
|
|
|
|
|
void print_function_definition(const nodes::FunctionDefinition &statement,
|
|
|
|
|
Printer &printer);
|
|
|
|
|
|
|
|
|
|
void print_typeclass_definition(const nodes::TypeclassDefinition &statement,
|
|
|
|
|
Printer &printer);
|
|
|
|
|
|
|
|
|
|
} // namespace printers
|