...
This commit is contained in:
15
src/compiler/Syntax/Parsing/Node/Definition.cs
Normal file
15
src/compiler/Syntax/Parsing/Node/Definition.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using Common;
|
||||
using Syntax.Tokenization;
|
||||
using Syntax.Typing;
|
||||
|
||||
namespace Syntax.Parsing.Node;
|
||||
|
||||
public abstract record DefinitionNode(IEnumerable<Token> Tokens, Optional<string> Documentation, string Namespace) : Node(Tokens);
|
||||
|
||||
public record FuncParameter(string Name, NubType Type);
|
||||
public abstract record FuncDefinition(IEnumerable<Token> Tokens, Optional<string> Documentation, string Namespace, string Name, List<FuncParameter> Parameters, NubType ReturnType) : DefinitionNode(Tokens, Documentation, Namespace);
|
||||
public record LocalFuncDefinitionNode(IEnumerable<Token> Tokens, Optional<string> Documentation, string Namespace, string Name, List<FuncParameter> Parameters, BlockNode Body, NubType ReturnType, bool Exported) : FuncDefinition(Tokens, Documentation, Namespace, Name, Parameters, ReturnType);
|
||||
public record ExternFuncDefinitionNode(IEnumerable<Token> Tokens, Optional<string> Documentation, string Namespace, string Name, string CallName, List<FuncParameter> Parameters, NubType ReturnType) : FuncDefinition(Tokens, Documentation, Namespace, Name, Parameters, ReturnType);
|
||||
|
||||
public record StructField(string Name, NubType Type, Optional<ExpressionNode> Value);
|
||||
public record StructDefinitionNode(IEnumerable<Token> Tokens, Optional<string> Documentation, string Namespace, string Name, List<StructField> Fields) : DefinitionNode(Tokens, Documentation, Namespace);
|
||||
Reference in New Issue
Block a user