explicit variable types

This commit is contained in:
nub31
2025-05-16 21:27:27 +02:00
parent ecd0e01aac
commit 1676806ef0
5 changed files with 31 additions and 10 deletions

View File

@@ -157,7 +157,14 @@ public class Parser
case Symbol.Assign:
{
var value = ParseExpression();
return new VariableAssignmentNode(identifier.Value, value);
return new VariableAssignmentNode(identifier.Value, Optional<NubType>.Empty(), value);
}
case Symbol.Colon:
{
var type = ParseType();
ExpectSymbol(Symbol.Assign);
var value = ParseExpression();
return new VariableAssignmentNode(identifier.Value,type, value);
}
default:
{

View File

@@ -1,7 +1,8 @@
namespace Nub.Lang.Frontend.Parsing;
public class VariableAssignmentNode(string name, ExpressionNode value) : StatementNode
public class VariableAssignmentNode(string name, Optional<NubType> explicitType, ExpressionNode value) : StatementNode
{
public string Name { get; } = name;
public Optional<NubType> ExplicitType { get; } = explicitType;
public ExpressionNode Value { get; } = value;
}