function definition class structure changed, corresponding builders and printers fixes, fixes

This commit is contained in:
ProgramSnail 2023-07-26 13:43:14 +03:00
parent 18d7bdf5c1
commit b4ce56b5f7
13 changed files with 323 additions and 284 deletions

View file

@ -6,6 +6,30 @@
namespace printers {
void print_modifier(const nodes::Modifier &modifier, Printer &printer) {
switch (modifier) {
case nodes::Modifier::OUT:
printer.print(printer.print_words_instead_of_symbols() ? "out " : "-> ");
break;
case nodes::Modifier::IN:
printer.print(printer.print_words_instead_of_symbols() ? "in " : "<- ");
break;
case nodes::Modifier::REF:
printer.print(printer.print_words_instead_of_symbols() ? "ref " : "<> ");
break;
case nodes::Modifier::OR_FALSE:
printer.print("?");
break;
case nodes::Modifier::OR_RETURN:
printer.print("!");
break;
case nodes::Modifier::NONE:
break;
default:
break;
}
}
void print_literal(const nodes::Literal &literal, Printer &printer) {
switch (literal.get_any()->index()) {
case 0: // double