This commit is contained in:
nub31
2025-07-03 17:55:48 +02:00
parent a5099b921b
commit 4357eef438
2 changed files with 66 additions and 82 deletions

View File

@@ -29,7 +29,10 @@ public abstract class NubType
public abstract override string ToString();
}
public class NubCStringType : NubType
public abstract class NubComplexType : NubType;
public abstract class NubSimpleType : NubType;
public class NubCStringType : NubComplexType
{
public override bool Equals(object? obj)
{
@@ -47,7 +50,7 @@ public class NubCStringType : NubType
}
}
public class NubStringType : NubType
public class NubStringType : NubComplexType
{
public override bool Equals(object? obj)
{
@@ -65,7 +68,7 @@ public class NubStringType : NubType
}
}
public class NubFuncType(NubType returnType, List<NubType> parameters) : NubType
public class NubFuncType(NubType returnType, List<NubType> parameters) : NubSimpleType
{
public NubType ReturnType { get; } = returnType;
public List<NubType> Parameters { get; } = parameters;
@@ -86,7 +89,7 @@ public class NubFuncType(NubType returnType, List<NubType> parameters) : NubType
}
}
public class NubStructType(string @namespace, string name) : NubType
public class NubStructType(string @namespace, string name) : NubComplexType
{
public string Namespace { get; } = @namespace;
public string Name { get; } = name;
@@ -107,7 +110,7 @@ public class NubStructType(string @namespace, string name) : NubType
}
}
public class NubPointerType(NubType baseType) : NubType
public class NubPointerType(NubType baseType) : NubSimpleType
{
public NubType BaseType { get; } = baseType;
@@ -127,7 +130,7 @@ public class NubPointerType(NubType baseType) : NubType
}
}
public class NubArrayType(NubType elementType) : NubType
public class NubArrayType(NubType elementType) : NubComplexType
{
public NubType ElementType { get; } = elementType;
@@ -152,7 +155,7 @@ public class NubArrayType(NubType elementType) : NubType
}
}
public class NubAnyType : NubType
public class NubAnyType : NubSimpleType
{
public override string ToString() => "any";
@@ -167,7 +170,7 @@ public class NubAnyType : NubType
}
}
public class NubVoidType : NubType
public class NubVoidType : NubSimpleType
{
public override string ToString() => "void";
@@ -182,7 +185,7 @@ public class NubVoidType : NubType
}
}
public class NubPrimitiveType(PrimitiveTypeKind kind) : NubType
public class NubPrimitiveType(PrimitiveTypeKind kind) : NubSimpleType
{
public PrimitiveTypeKind Kind { get; } = kind;