remove read only stuff
This commit is contained in:
@@ -8,19 +8,19 @@ namespace NubLang.Parsing;
|
||||
public sealed class Parser
|
||||
{
|
||||
private readonly List<Diagnostic> _diagnostics = [];
|
||||
private IReadOnlyList<Token> _tokens = [];
|
||||
private List<Token> _tokens = [];
|
||||
private int _tokenIndex;
|
||||
private string _moduleName = string.Empty;
|
||||
|
||||
private Token? CurrentToken => _tokenIndex < _tokens.Count ? _tokens[_tokenIndex] : null;
|
||||
private bool HasToken => CurrentToken != null;
|
||||
|
||||
public IReadOnlyList<Diagnostic> GetDiagnostics()
|
||||
public List<Diagnostic> GetDiagnostics()
|
||||
{
|
||||
return _diagnostics;
|
||||
}
|
||||
|
||||
public SyntaxTree Parse(IReadOnlyList<Token> tokens)
|
||||
public SyntaxTree Parse(List<Token> tokens)
|
||||
{
|
||||
_diagnostics.Clear();
|
||||
_tokens = tokens;
|
||||
|
||||
@@ -6,7 +6,7 @@ public abstract record DefinitionSyntax(IEnumerable<Token> Tokens, string Name,
|
||||
|
||||
public record FuncParameterSyntax(IEnumerable<Token> Tokens, string Name, TypeSyntax Type) : SyntaxNode(Tokens);
|
||||
|
||||
public record FuncSignatureSyntax(IEnumerable<Token> Tokens, IReadOnlyList<FuncParameterSyntax> Parameters, TypeSyntax ReturnType) : SyntaxNode(Tokens);
|
||||
public record FuncSignatureSyntax(IEnumerable<Token> Tokens, List<FuncParameterSyntax> Parameters, TypeSyntax ReturnType) : SyntaxNode(Tokens);
|
||||
|
||||
public record FuncSyntax(IEnumerable<Token> Tokens, string Name, bool Exported, string? ExternSymbol, FuncSignatureSyntax Signature, BlockSyntax? Body) : DefinitionSyntax(Tokens, Name, Exported);
|
||||
|
||||
@@ -14,8 +14,8 @@ public record StructFieldSyntax(IEnumerable<Token> Tokens, string Name, TypeSynt
|
||||
|
||||
public record StructFuncSyntax(IEnumerable<Token> Tokens, string Name, FuncSignatureSyntax Signature, BlockSyntax Body) : SyntaxNode(Tokens);
|
||||
|
||||
public record StructSyntax(IEnumerable<Token> Tokens, string Name, bool Exported, IReadOnlyList<StructFieldSyntax> Fields, IReadOnlyList<StructFuncSyntax> Functions, IReadOnlyList<TypeSyntax> InterfaceImplementations) : DefinitionSyntax(Tokens, Name, Exported);
|
||||
public record StructSyntax(IEnumerable<Token> Tokens, string Name, bool Exported, List<StructFieldSyntax> Fields, List<StructFuncSyntax> Functions, List<TypeSyntax> InterfaceImplementations) : DefinitionSyntax(Tokens, Name, Exported);
|
||||
|
||||
public record InterfaceFuncSyntax(IEnumerable<Token> Tokens, string Name, FuncSignatureSyntax Signature) : SyntaxNode(Tokens);
|
||||
|
||||
public record InterfaceSyntax(IEnumerable<Token> Tokens, string Name, bool Exported, IReadOnlyList<InterfaceFuncSyntax> Functions) : DefinitionSyntax(Tokens, Name, Exported);
|
||||
public record InterfaceSyntax(IEnumerable<Token> Tokens, string Name, bool Exported, List<InterfaceFuncSyntax> Functions) : DefinitionSyntax(Tokens, Name, Exported);
|
||||
@@ -36,9 +36,9 @@ public record BinaryExpressionSyntax(IEnumerable<Token> Tokens, ExpressionSyntax
|
||||
|
||||
public record UnaryExpressionSyntax(IEnumerable<Token> Tokens, UnaryOperatorSyntax Operator, ExpressionSyntax Operand) : ExpressionSyntax(Tokens);
|
||||
|
||||
public record FuncCallSyntax(IEnumerable<Token> Tokens, ExpressionSyntax Expression, IReadOnlyList<ExpressionSyntax> Parameters) : ExpressionSyntax(Tokens);
|
||||
public record FuncCallSyntax(IEnumerable<Token> Tokens, ExpressionSyntax Expression, List<ExpressionSyntax> Parameters) : ExpressionSyntax(Tokens);
|
||||
|
||||
public record DotFuncCallSyntax(IEnumerable<Token> Tokens, string Name, ExpressionSyntax ThisParameter, IReadOnlyList<ExpressionSyntax> Parameters) : ExpressionSyntax(Tokens);
|
||||
public record DotFuncCallSyntax(IEnumerable<Token> Tokens, string Name, ExpressionSyntax ThisParameter, List<ExpressionSyntax> Parameters) : ExpressionSyntax(Tokens);
|
||||
|
||||
public record LocalIdentifierSyntax(IEnumerable<Token> Tokens, string Name) : ExpressionSyntax(Tokens);
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@ namespace NubLang.Parsing.Syntax;
|
||||
|
||||
public abstract record SyntaxNode(IEnumerable<Token> Tokens);
|
||||
|
||||
public record SyntaxTreeMetadata(string ModuleName, IReadOnlyList<string> Imports);
|
||||
public record SyntaxTreeMetadata(string ModuleName, List<string> Imports);
|
||||
|
||||
public record SyntaxTree(IReadOnlyList<DefinitionSyntax> Definitions, SyntaxTreeMetadata Metadata);
|
||||
public record SyntaxTree(List<DefinitionSyntax> Definitions, SyntaxTreeMetadata Metadata);
|
||||
|
||||
public record BlockSyntax(IEnumerable<Token> Tokens, IReadOnlyList<StatementSyntax> Statements) : SyntaxNode(Tokens);
|
||||
public record BlockSyntax(IEnumerable<Token> Tokens, List<StatementSyntax> Statements) : SyntaxNode(Tokens);
|
||||
@@ -4,7 +4,7 @@ namespace NubLang.Parsing.Syntax;
|
||||
|
||||
public abstract record TypeSyntax(IEnumerable<Token> Tokens) : SyntaxNode(Tokens);
|
||||
|
||||
public record FuncTypeSyntax(IEnumerable<Token> Tokens, IReadOnlyList<TypeSyntax> Parameters, TypeSyntax ReturnType) : TypeSyntax(Tokens);
|
||||
public record FuncTypeSyntax(IEnumerable<Token> Tokens, List<TypeSyntax> Parameters, TypeSyntax ReturnType) : TypeSyntax(Tokens);
|
||||
|
||||
public record PointerTypeSyntax(IEnumerable<Token> Tokens, TypeSyntax BaseType) : TypeSyntax(Tokens);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user