This commit is contained in:
nub31
2025-05-26 20:48:31 +02:00
parent 8495704ea0
commit 8f1ad5a346
15 changed files with 29 additions and 24 deletions

View File

@@ -1,6 +1,7 @@
using System.Globalization; using System.Globalization;
using System.Text; using System.Text;
using Nub.Lang.Frontend.Parsing; using Nub.Lang.Frontend.Parsing;
using Nub.Lang.Frontend.Typing;
namespace Nub.Lang.Backend; namespace Nub.Lang.Backend;

View File

@@ -1,6 +1,4 @@
using Nub.Lang.Frontend.Diagnostics; namespace Nub.Lang.Frontend.Diagnostics;
namespace Nub.Lang.Frontend;
public class DiagnosticsResult(List<Diagnostic> diagnostics) public class DiagnosticsResult(List<Diagnostic> diagnostics)
{ {

View File

@@ -1,4 +1,5 @@
using Nub.Lang.Frontend.Diagnostics; using Nub.Lang.Frontend.Diagnostics;
using Nub.Lang.Frontend.Typing;
namespace Nub.Lang.Frontend.Lexing; namespace Nub.Lang.Frontend.Lexing;

View File

@@ -1,4 +1,5 @@
using Nub.Lang.Frontend.Diagnostics; using Nub.Lang.Frontend.Diagnostics;
using Nub.Lang.Frontend.Typing;
namespace Nub.Lang.Frontend.Lexing; namespace Nub.Lang.Frontend.Lexing;

View File

@@ -1,4 +1,5 @@
using Nub.Lang.Frontend.Lexing; using Nub.Lang.Frontend.Lexing;
using Nub.Lang.Frontend.Typing;
namespace Nub.Lang.Frontend.Parsing; namespace Nub.Lang.Frontend.Parsing;

View File

@@ -1,4 +1,5 @@
using Nub.Lang.Frontend.Lexing; using Nub.Lang.Frontend.Lexing;
using Nub.Lang.Frontend.Typing;
namespace Nub.Lang.Frontend.Parsing; namespace Nub.Lang.Frontend.Parsing;

View File

@@ -1,7 +1,17 @@
using Nub.Lang.Frontend.Lexing; using Nub.Lang.Frontend.Lexing;
using Nub.Lang.Frontend.Typing;
namespace Nub.Lang.Frontend.Parsing; namespace Nub.Lang.Frontend.Parsing;
public class FuncParameter(string name, NubType type, bool variadic)
{
public string Name { get; } = name;
public NubType Type { get; } = type;
public bool Variadic { get; } = variadic;
public override string ToString() => $"{Name}: {Type}";
}
public interface IFuncSignature public interface IFuncSignature
{ {
public string Name { get; } public string Name { get; }

View File

@@ -1,4 +1,5 @@
using Nub.Lang.Frontend.Lexing; using Nub.Lang.Frontend.Lexing;
using Nub.Lang.Frontend.Typing;
namespace Nub.Lang.Frontend.Parsing; namespace Nub.Lang.Frontend.Parsing;

View File

@@ -1,6 +1,7 @@
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using Nub.Lang.Frontend.Diagnostics; using Nub.Lang.Frontend.Diagnostics;
using Nub.Lang.Frontend.Lexing; using Nub.Lang.Frontend.Lexing;
using Nub.Lang.Frontend.Typing;
namespace Nub.Lang.Frontend.Parsing; namespace Nub.Lang.Frontend.Parsing;

View File

@@ -1,7 +1,15 @@
using Nub.Lang.Frontend.Lexing; using Nub.Lang.Frontend.Lexing;
using Nub.Lang.Frontend.Typing;
namespace Nub.Lang.Frontend.Parsing; namespace Nub.Lang.Frontend.Parsing;
public class StructField(string name, NubType type, Optional<ExpressionNode> value)
{
public string Name { get; } = name;
public NubType Type { get; } = type;
public Optional<ExpressionNode> Value { get; } = value;
}
public class StructDefinitionNode(IReadOnlyList<Token> tokens, Optional<string> documentation, string name, List<StructField> fields) : DefinitionNode(tokens, documentation) public class StructDefinitionNode(IReadOnlyList<Token> tokens, Optional<string> documentation, string name, List<StructField> fields) : DefinitionNode(tokens, documentation)
{ {
public string Name { get; } = name; public string Name { get; } = name;

View File

@@ -1,4 +1,5 @@
using Nub.Lang.Frontend.Lexing; using Nub.Lang.Frontend.Lexing;
using Nub.Lang.Frontend.Typing;
namespace Nub.Lang.Frontend.Parsing; namespace Nub.Lang.Frontend.Parsing;

View File

@@ -1,4 +1,5 @@
using Nub.Lang.Frontend.Lexing; using Nub.Lang.Frontend.Lexing;
using Nub.Lang.Frontend.Typing;
namespace Nub.Lang.Frontend.Parsing; namespace Nub.Lang.Frontend.Parsing;

View File

@@ -1,6 +1,6 @@
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
namespace Nub.Lang; namespace Nub.Lang.Frontend.Typing;
public abstract class NubType public abstract class NubType
{ {

View File

@@ -1,10 +0,0 @@
namespace Nub.Lang;
public class FuncParameter(string name, NubType type, bool variadic)
{
public string Name { get; } = name;
public NubType Type { get; } = type;
public bool Variadic { get; } = variadic;
public override string ToString() => $"{Name}: {Type}";
}

View File

@@ -1,10 +0,0 @@
using Nub.Lang.Frontend.Parsing;
namespace Nub.Lang;
public class StructField(string name, NubType type, Optional<ExpressionNode> value)
{
public string Name { get; } = name;
public NubType Type { get; } = type;
public Optional<ExpressionNode> Value { get; } = value;
}