Generate code for custom type

This commit is contained in:
Rafał Grodziński
2025-08-05 11:16:50 +09:00
parent dc8d10c81c
commit b6c2ff3983
8 changed files with 113 additions and 22 deletions

View File

@@ -12,6 +12,7 @@
#include "Parser/Statement/StatementVariable.h"
#include "Parser/Statement/StatementFunction.h"
#include "Parser/Statement/StatementRawFunction.h"
#include "Parser/Statement/StatementType.h"
#include "Parser/Statement/StatementBlock.h"
#include "Parser/Statement/StatementAssignment.h"
#include "Parser/Statement/StatementReturn.h"
@@ -223,6 +224,8 @@ string Logger::toString(shared_ptr<ValueType> valueType) {
return "R32";
case ValueTypeKind::DATA:
return "[]";
case ValueTypeKind::TYPE:
return format("TYPE({})", valueType->getTypeName());
}
}
@@ -236,6 +239,8 @@ string Logger::toString(shared_ptr<Statement> statement) {
return toString(dynamic_pointer_cast<StatementFunction>(statement));
case StatementKind::RAW_FUNCTION:
return toString(dynamic_pointer_cast<StatementRawFunction>(statement));
case StatementKind::TYPE:
return toString(dynamic_pointer_cast<StatementType>(statement));
case StatementKind::BLOCK:
return toString(dynamic_pointer_cast<StatementBlock>(statement));
case StatementKind::ASSIGNMENT:
@@ -296,6 +301,14 @@ string Logger::toString(shared_ptr<StatementRawFunction> statement) {
return text;
}
string Logger::toString(shared_ptr<StatementType> statement) {
string text;
text += format("TYPE(\"{}\"):\n", statement->getIdentifier());
return text;
}
string Logger::toString(shared_ptr<StatementBlock> statement) {
string text;