big part of type_chack_visitor done

This commit is contained in:
ProgramSnail 2023-05-06 19:26:14 +03:00
parent adccf6feec
commit f7080ba856
7 changed files with 427 additions and 171 deletions

View file

@ -1,5 +1,6 @@
#pragma once
#include <cstdlib>
#include <vector>
#include <unordered_map>
@ -17,6 +18,18 @@ enum class AliasModifier { Alias = 0, Type = 1, Let = 2 };
enum class AbstractTypeModifier { Basic = 0, Abstract = 1 };
enum class FunctionTypeModifier { Function = 0, Operator = 1 };
enum class ValueType { Const = 0, Var = 1, Tmp = 2 };
inline ValueType IsConstModifierToValueType(IsConstModifier modifier) {
switch (modifier) {
case IsConstModifier::Const:
return ValueType::Const;
case IsConstModifier::Var:
return ValueType::Var;
}
// unreachable
}
template<typename T>
class Storage {
public: