Improved types

This commit is contained in:
nub31
2025-01-30 17:36:44 +01:00
parent 47b88f58f3
commit 1f4b2a42eb
8 changed files with 94 additions and 54 deletions

View File

@@ -397,23 +397,6 @@ public class Parser
switch (name)
{
case "Func":
{
List<Type> typeArguments = [];
if (TryExpectSymbol(Symbol.LessThan))
{
while (!TryExpectSymbol(Symbol.GreaterThan))
{
var type = ParseType();
typeArguments.Add(type);
TryExpectSymbol(Symbol.Comma);
}
}
var returnType = Optional<Type>.OfNullable(typeArguments.LastOrDefault());
return new DelegateType(typeArguments.Take(typeArguments.Count - 1).ToList(), returnType);
}
case "String":
{
return new StringType();
@@ -425,6 +408,10 @@ public class Parser
ExpectSymbol(Symbol.GreaterThan);
return new ArrayType(innerType);
}
case "Any":
{
return new AnyType();
}
default:
{
return PrimitiveType.Parse(name);