This commit is contained in:
nub31
2025-06-13 00:07:16 +02:00
parent 351d4ebd68
commit cae8c81380
67 changed files with 163 additions and 159 deletions

2
run.sh
View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/bin/bash
set -e set -e
dotnet run --project src/cli/cli.csproj example dotnet run --project src/CLI/CLI.csproj example
./bin/out ./bin/out

View File

@@ -2,10 +2,10 @@
/shelf/ /shelf/
/workspace.xml /workspace.xml
# Rider ignored files # Rider ignored files
/projectSettingsUpdater.xml
/.idea.compiler.iml
/modules.xml /modules.xml
/projectSettingsUpdater.xml
/contentModel.xml /contentModel.xml
/.idea.Compiler.iml
# Editor-based HTTP Client requests # Editor-based HTTP Client requests
/httpRequests/ /httpRequests/
# Datasource local storage ignored files # Datasource local storage ignored files

1
src/.idea/.idea.Compiler/.idea/.name generated Normal file
View File

@@ -0,0 +1 @@
Compiler

6
src/.idea/.idea.Compiler/.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>

View File

@@ -1 +0,0 @@
compiler

View File

@@ -7,12 +7,11 @@
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<PublishAot>true</PublishAot> <PublishAot>true</PublishAot>
<RootNamespace>cli</RootNamespace>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\generation2\generation2.csproj" /> <ProjectReference Include="..\Generation\Generation.csproj" />
<ProjectReference Include="..\syntax2\syntax2.csproj" /> <ProjectReference Include="..\Syntax\Syntax.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -1,10 +1,10 @@
using System.Diagnostics; using System.Diagnostics;
using System.Reflection; using System.Reflection;
using generation.QBE; using Generation.QBE;
using syntax; using Syntax;
using syntax.Parsing; using Syntax.Parsing;
using syntax.Tokenization; using Syntax.Tokenization;
using syntax.Typing; using Syntax.Typing;
const string BIN_DIR = "bin"; const string BIN_DIR = "bin";
const string BIN_INT_DIR = "bin-int"; const string BIN_INT_DIR = "bin-int";

View File

@@ -1,4 +1,4 @@
.intel_syntax noprefix .intel_Syntax noprefix
.extern main .extern main
.section .text .section .text

View File

@@ -1,4 +1,4 @@
.intel_syntax noprefix .intel_Syntax noprefix
.section .text .section .text
# func nub_memcpy(destination: ^u8, source: ^u8, count: u64): ^u8 # func nub_memcpy(destination: ^u8, source: ^u8, count: u64): ^u8

View File

@@ -1,4 +1,4 @@
.intel_syntax noprefix .intel_Syntax noprefix
.section .text .section .text
# func nub_memset(destination: ^u8, value: i8, count: u64): ^u8 # func nub_memset(destination: ^u8, value: i8, count: u64): ^u8

View File

@@ -1,4 +1,4 @@
.intel_syntax noprefix .intel_Syntax noprefix
.section .text .section .text
# func nub_panic(message: ^u8, message_length: u64): void # func nub_panic(message: ^u8, message_length: u64): void

View File

@@ -1,4 +1,4 @@
.intel_syntax noprefix .intel_Syntax noprefix
.section .text .section .text
# func nub_strcmp(lhs: ^u8, rhs: ^u8): bool # func nub_strcmp(lhs: ^u8, rhs: ^u8): bool

View File

@@ -4,7 +4,7 @@
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<RootNamespace>common</RootNamespace> <IsAotCompatible>true</IsAotCompatible>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@@ -1,6 +1,6 @@
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
namespace common; namespace Common;
public readonly struct Optional public readonly struct Optional
{ {

View File

@@ -1,4 +1,4 @@
namespace common; namespace Common;
public readonly struct Variant<T1, T2> where T1 : notnull where T2 : notnull public readonly struct Variant<T1, T2> where T1 : notnull where T2 : notnull
{ {

View File

@@ -4,12 +4,12 @@
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<RootNamespace>generation</RootNamespace> <IsAotCompatible>true</IsAotCompatible>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Common\Common.csproj" /> <ProjectReference Include="..\Common\Common.csproj" />
<ProjectReference Include="..\syntax2\syntax2.csproj" /> <ProjectReference Include="..\Syntax\Syntax.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -1,15 +1,15 @@
using System.Diagnostics; using System.Diagnostics;
using System.Globalization; using System.Globalization;
using System.Text; using System.Text;
using syntax; using Syntax;
using syntax.Parsing; using Syntax.Parsing;
using syntax.Parsing.Definitions; using Syntax.Parsing.Definitions;
using syntax.Parsing.Expressions; using Syntax.Parsing.Expressions;
using syntax.Parsing.Statements; using Syntax.Parsing.Statements;
using syntax.Tokenization; using Syntax.Tokenization;
using syntax.Typing; using Syntax.Typing;
namespace generation.QBE; namespace Generation.QBE;
public static class QBEGenerator public static class QBEGenerator
{ {

View File

@@ -1,8 +1,8 @@
using common; using Common;
using syntax.Parsing; using Syntax.Parsing;
using syntax.Parsing.Definitions; using Syntax.Parsing.Definitions;
namespace syntax; namespace Syntax;
public class DefinitionTable public class DefinitionTable
{ {

View File

@@ -1,7 +1,7 @@
using System.Text; using System.Text;
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Diagnostics; namespace Syntax.Diagnostics;
public static class ConsoleColors public static class ConsoleColors
{ {

View File

@@ -1,8 +1,8 @@
using System.Text; using System.Text;
using syntax.Parsing; using Syntax.Parsing;
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Diagnostics; namespace Syntax.Diagnostics;
public class Diagnostic public class Diagnostic
{ {

View File

@@ -1,4 +1,4 @@
namespace syntax.Diagnostics; namespace Syntax.Diagnostics;
public class DiagnosticsResult(List<Diagnostic> diagnostics) public class DiagnosticsResult(List<Diagnostic> diagnostics)
{ {

View File

@@ -1,6 +1,6 @@
using syntax.Parsing.Definitions; using Syntax.Parsing.Definitions;
namespace syntax.Parsing; namespace Syntax.Parsing;
public class CompilationUnit(string @namespace, List<DefinitionNode> definitions) public class CompilationUnit(string @namespace, List<DefinitionNode> definitions)
{ {

View File

@@ -1,7 +1,7 @@
using common; using Common;
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing.Definitions; namespace Syntax.Parsing.Definitions;
public abstract class DefinitionNode(IReadOnlyList<Token> tokens, Optional<string> documentation, string @namespace) : Node(tokens) public abstract class DefinitionNode(IReadOnlyList<Token> tokens, Optional<string> documentation, string @namespace) : Node(tokens)
{ {

View File

@@ -1,9 +1,9 @@
using common; using Common;
using syntax.Parsing.Statements; using Syntax.Parsing.Statements;
using syntax.Tokenization; using Syntax.Tokenization;
using syntax.Typing; using Syntax.Typing;
namespace syntax.Parsing.Definitions; namespace Syntax.Parsing.Definitions;
public class FuncParameter(string name, NubType type) public class FuncParameter(string name, NubType type)
{ {

View File

@@ -1,9 +1,9 @@
using common; using Common;
using syntax.Parsing.Expressions; using Syntax.Parsing.Expressions;
using syntax.Tokenization; using Syntax.Tokenization;
using syntax.Typing; using Syntax.Typing;
namespace syntax.Parsing.Definitions; namespace Syntax.Parsing.Definitions;
public class StructField(string name, NubType type, Optional<ExpressionNode> value) public class StructField(string name, NubType type, Optional<ExpressionNode> value)
{ {

View File

@@ -1,6 +1,6 @@
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing.Expressions; namespace Syntax.Parsing.Expressions;
public class AddressOfNode(IReadOnlyList<Token> tokens, LValueNode expression) : ExpressionNode(tokens) public class AddressOfNode(IReadOnlyList<Token> tokens, LValueNode expression) : ExpressionNode(tokens)
{ {

View File

@@ -1,9 +1,9 @@
using syntax.Parsing.Definitions; using Syntax.Parsing.Definitions;
using syntax.Parsing.Statements; using Syntax.Parsing.Statements;
using syntax.Tokenization; using Syntax.Tokenization;
using syntax.Typing; using Syntax.Typing;
namespace syntax.Parsing.Expressions; namespace Syntax.Parsing.Expressions;
public class AnonymousFuncNode(IReadOnlyList<Token> tokens, List<FuncParameter> parameters, BlockNode body, NubType returnType) : ExpressionNode(tokens) public class AnonymousFuncNode(IReadOnlyList<Token> tokens, List<FuncParameter> parameters, BlockNode body, NubType returnType) : ExpressionNode(tokens)
{ {

View File

@@ -1,6 +1,6 @@
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing.Expressions; namespace Syntax.Parsing.Expressions;
public class ArrayIndexAccessNode(IReadOnlyList<Token> tokens, ExpressionNode array, ExpressionNode index) : LValueNode(tokens) public class ArrayIndexAccessNode(IReadOnlyList<Token> tokens, ExpressionNode array, ExpressionNode index) : LValueNode(tokens)
{ {

View File

@@ -1,7 +1,7 @@
using syntax.Tokenization; using Syntax.Tokenization;
using syntax.Typing; using Syntax.Typing;
namespace syntax.Parsing.Expressions; namespace Syntax.Parsing.Expressions;
public class ArrayInitializerNode(IReadOnlyList<Token> tokens, ExpressionNode capacity, NubType elementType) : ExpressionNode(tokens) public class ArrayInitializerNode(IReadOnlyList<Token> tokens, ExpressionNode capacity, NubType elementType) : ExpressionNode(tokens)
{ {

View File

@@ -1,6 +1,6 @@
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing.Expressions; namespace Syntax.Parsing.Expressions;
public class BinaryExpressionNode(IReadOnlyList<Token> tokens, ExpressionNode left, BinaryExpressionOperator @operator, ExpressionNode right) : ExpressionNode(tokens) public class BinaryExpressionNode(IReadOnlyList<Token> tokens, ExpressionNode left, BinaryExpressionOperator @operator, ExpressionNode right) : ExpressionNode(tokens)
{ {

View File

@@ -1,6 +1,6 @@
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing.Expressions; namespace Syntax.Parsing.Expressions;
public class DereferenceNode(IReadOnlyList<Token> tokens, ExpressionNode expression) : LValueNode(tokens) public class DereferenceNode(IReadOnlyList<Token> tokens, ExpressionNode expression) : LValueNode(tokens)
{ {

View File

@@ -1,7 +1,7 @@
using syntax.Tokenization; using Syntax.Tokenization;
using syntax.Typing; using Syntax.Typing;
namespace syntax.Parsing.Expressions; namespace Syntax.Parsing.Expressions;
public abstract class ExpressionNode(IReadOnlyList<Token> tokens) : Node(tokens) public abstract class ExpressionNode(IReadOnlyList<Token> tokens) : Node(tokens)
{ {

View File

@@ -1,7 +1,7 @@
using syntax.Tokenization; using Syntax.Tokenization;
using syntax.Typing; using Syntax.Typing;
namespace syntax.Parsing.Expressions; namespace Syntax.Parsing.Expressions;
public class FixedArrayInitializerNode(IReadOnlyList<Token> tokens, NubType elementType, int capacity) : ExpressionNode(tokens) public class FixedArrayInitializerNode(IReadOnlyList<Token> tokens, NubType elementType, int capacity) : ExpressionNode(tokens)
{ {

View File

@@ -1,6 +1,6 @@
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing.Expressions; namespace Syntax.Parsing.Expressions;
public class FuncCallNode(IReadOnlyList<Token> tokens, ExpressionNode expression, List<ExpressionNode> parameters) : ExpressionNode(tokens) public class FuncCallNode(IReadOnlyList<Token> tokens, ExpressionNode expression, List<ExpressionNode> parameters) : ExpressionNode(tokens)
{ {

View File

@@ -1,7 +1,7 @@
using common; using Common;
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing.Expressions; namespace Syntax.Parsing.Expressions;
public class IdentifierNode(IReadOnlyList<Token> tokens, Optional<string> @namespace, string name) : LValueNode(tokens) public class IdentifierNode(IReadOnlyList<Token> tokens, Optional<string> @namespace, string name) : LValueNode(tokens)
{ {

View File

@@ -1,6 +1,6 @@
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing.Expressions; namespace Syntax.Parsing.Expressions;
public class LiteralNode(IReadOnlyList<Token> tokens, string literal, LiteralKind kind) : ExpressionNode(tokens) public class LiteralNode(IReadOnlyList<Token> tokens, string literal, LiteralKind kind) : ExpressionNode(tokens)
{ {

View File

@@ -1,6 +1,6 @@
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing.Expressions; namespace Syntax.Parsing.Expressions;
public class MemberAccessNode(IReadOnlyList<Token> tokens, ExpressionNode expression, string member) : LValueNode(tokens) public class MemberAccessNode(IReadOnlyList<Token> tokens, ExpressionNode expression, string member) : LValueNode(tokens)
{ {

View File

@@ -1,7 +1,7 @@
using syntax.Tokenization; using Syntax.Tokenization;
using syntax.Typing; using Syntax.Typing;
namespace syntax.Parsing.Expressions; namespace Syntax.Parsing.Expressions;
public class StructInitializerNode(IReadOnlyList<Token> tokens, NubStructType structType, Dictionary<string, ExpressionNode> initializers) : ExpressionNode(tokens) public class StructInitializerNode(IReadOnlyList<Token> tokens, NubStructType structType, Dictionary<string, ExpressionNode> initializers) : ExpressionNode(tokens)
{ {

View File

@@ -1,6 +1,6 @@
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing.Expressions; namespace Syntax.Parsing.Expressions;
public class UnaryExpressionNode(IReadOnlyList<Token> tokens, UnaryExpressionOperator @operator, ExpressionNode operand) : ExpressionNode(tokens) public class UnaryExpressionNode(IReadOnlyList<Token> tokens, UnaryExpressionOperator @operator, ExpressionNode operand) : ExpressionNode(tokens)
{ {

View File

@@ -1,6 +1,6 @@
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing; namespace Syntax.Parsing;
public abstract class Node(IReadOnlyList<Token> tokens) public abstract class Node(IReadOnlyList<Token> tokens)
{ {

View File

@@ -1,14 +1,14 @@
using System.Diagnostics; using System.Diagnostics;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using common; using Common;
using syntax.Diagnostics; using Syntax.Diagnostics;
using syntax.Parsing.Definitions; using Syntax.Parsing.Definitions;
using syntax.Parsing.Expressions; using Syntax.Parsing.Expressions;
using syntax.Parsing.Statements; using Syntax.Parsing.Statements;
using syntax.Tokenization; using Syntax.Tokenization;
using syntax.Typing; using Syntax.Typing;
namespace syntax.Parsing; namespace Syntax.Parsing;
public static class Parser public static class Parser
{ {

View File

@@ -1,7 +1,7 @@
using syntax.Parsing.Expressions; using Syntax.Parsing.Expressions;
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing.Statements; namespace Syntax.Parsing.Statements;
public class ArrayIndexAssignmentNode(IReadOnlyList<Token> tokens, ArrayIndexAccessNode arrayIndexAccess, ExpressionNode value) : StatementNode(tokens) public class ArrayIndexAssignmentNode(IReadOnlyList<Token> tokens, ArrayIndexAccessNode arrayIndexAccess, ExpressionNode value) : StatementNode(tokens)
{ {

View File

@@ -1,6 +1,6 @@
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing.Statements; namespace Syntax.Parsing.Statements;
public class BlockNode(IReadOnlyList<Token> tokens, List<StatementNode> statements) : Node(tokens) public class BlockNode(IReadOnlyList<Token> tokens, List<StatementNode> statements) : Node(tokens)
{ {

View File

@@ -1,5 +1,5 @@
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing.Statements; namespace Syntax.Parsing.Statements;
public class BreakNode(IReadOnlyList<Token> tokens) : StatementNode(tokens); public class BreakNode(IReadOnlyList<Token> tokens) : StatementNode(tokens);

View File

@@ -1,5 +1,5 @@
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing.Statements; namespace Syntax.Parsing.Statements;
public class ContinueNode(IReadOnlyList<Token> tokens) : StatementNode(tokens); public class ContinueNode(IReadOnlyList<Token> tokens) : StatementNode(tokens);

View File

@@ -1,7 +1,7 @@
using syntax.Parsing.Expressions; using Syntax.Parsing.Expressions;
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing.Statements; namespace Syntax.Parsing.Statements;
public class DereferenceAssignmentNode(IReadOnlyList<Token> tokens, DereferenceNode dereference, ExpressionNode value) : StatementNode(tokens) public class DereferenceAssignmentNode(IReadOnlyList<Token> tokens, DereferenceNode dereference, ExpressionNode value) : StatementNode(tokens)
{ {

View File

@@ -1,8 +1,8 @@
using common; using Common;
using syntax.Parsing.Expressions; using Syntax.Parsing.Expressions;
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing.Statements; namespace Syntax.Parsing.Statements;
public class IfNode(IReadOnlyList<Token> tokens, ExpressionNode condition, BlockNode body, Optional<Variant<IfNode, BlockNode>> @else) : StatementNode(tokens) public class IfNode(IReadOnlyList<Token> tokens, ExpressionNode condition, BlockNode body, Optional<Variant<IfNode, BlockNode>> @else) : StatementNode(tokens)
{ {

View File

@@ -1,7 +1,7 @@
using syntax.Parsing.Expressions; using Syntax.Parsing.Expressions;
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing.Statements; namespace Syntax.Parsing.Statements;
public class MemberAssignmentNode(IReadOnlyList<Token> tokens, MemberAccessNode expression, ExpressionNode value) : StatementNode(tokens) public class MemberAssignmentNode(IReadOnlyList<Token> tokens, MemberAccessNode expression, ExpressionNode value) : StatementNode(tokens)
{ {

View File

@@ -1,8 +1,8 @@
using common; using Common;
using syntax.Parsing.Expressions; using Syntax.Parsing.Expressions;
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing.Statements; namespace Syntax.Parsing.Statements;
public class ReturnNode(IReadOnlyList<Token> tokens, Optional<ExpressionNode> value) : StatementNode(tokens) public class ReturnNode(IReadOnlyList<Token> tokens, Optional<ExpressionNode> value) : StatementNode(tokens)
{ {

View File

@@ -1,7 +1,7 @@
using syntax.Parsing.Expressions; using Syntax.Parsing.Expressions;
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing.Statements; namespace Syntax.Parsing.Statements;
public class StatementExpressionNode(IReadOnlyList<Token> tokens, ExpressionNode expression) : StatementNode(tokens) public class StatementExpressionNode(IReadOnlyList<Token> tokens, ExpressionNode expression) : StatementNode(tokens)
{ {

View File

@@ -1,5 +1,5 @@
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing.Statements; namespace Syntax.Parsing.Statements;
public abstract class StatementNode(IReadOnlyList<Token> tokens) : Node(tokens); public abstract class StatementNode(IReadOnlyList<Token> tokens) : Node(tokens);

View File

@@ -1,7 +1,7 @@
using syntax.Parsing.Expressions; using Syntax.Parsing.Expressions;
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing.Statements; namespace Syntax.Parsing.Statements;
public class VariableAssignmentNode(IReadOnlyList<Token> tokens, IdentifierNode identifier, ExpressionNode value) : StatementNode(tokens) public class VariableAssignmentNode(IReadOnlyList<Token> tokens, IdentifierNode identifier, ExpressionNode value) : StatementNode(tokens)
{ {

View File

@@ -1,9 +1,9 @@
using common; using Common;
using syntax.Parsing.Expressions; using Syntax.Parsing.Expressions;
using syntax.Tokenization; using Syntax.Tokenization;
using syntax.Typing; using Syntax.Typing;
namespace syntax.Parsing.Statements; namespace Syntax.Parsing.Statements;
public class VariableDeclarationNode(IReadOnlyList<Token> tokens, string name, Optional<NubType> explicitType, Optional<ExpressionNode> value) : StatementNode(tokens) public class VariableDeclarationNode(IReadOnlyList<Token> tokens, string name, Optional<NubType> explicitType, Optional<ExpressionNode> value) : StatementNode(tokens)
{ {

View File

@@ -1,7 +1,7 @@
using syntax.Parsing.Expressions; using Syntax.Parsing.Expressions;
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Parsing.Statements; namespace Syntax.Parsing.Statements;
public class WhileNode(IReadOnlyList<Token> tokens, ExpressionNode condition, BlockNode body) : StatementNode(tokens) public class WhileNode(IReadOnlyList<Token> tokens, ExpressionNode condition, BlockNode body) : StatementNode(tokens)
{ {

View File

@@ -1,6 +1,6 @@
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
namespace syntax; namespace Syntax;
/// <summary> /// <summary>
/// Represents a location in source code with line and column information. /// Represents a location in source code with line and column information.

View File

@@ -5,7 +5,6 @@
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<IsAotCompatible>true</IsAotCompatible> <IsAotCompatible>true</IsAotCompatible>
<RootNamespace>syntax</RootNamespace>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View File

@@ -1,4 +1,4 @@
namespace syntax.Tokenization; namespace Syntax.Tokenization;
public class DocumentationToken(SourceSpan span, string documentation) : Token(span) public class DocumentationToken(SourceSpan span, string documentation) : Token(span)
{ {

View File

@@ -1,4 +1,4 @@
namespace syntax.Tokenization; namespace Syntax.Tokenization;
public class IdentifierToken(SourceSpan span, string value) : Token(span) public class IdentifierToken(SourceSpan span, string value) : Token(span)
{ {

View File

@@ -1,4 +1,4 @@
namespace syntax.Tokenization; namespace Syntax.Tokenization;
public class LiteralToken(SourceSpan span, LiteralKind kind, string value) : Token(span) public class LiteralToken(SourceSpan span, LiteralKind kind, string value) : Token(span)
{ {

View File

@@ -1,4 +1,4 @@
namespace syntax.Tokenization; namespace Syntax.Tokenization;
public class ModifierToken(SourceSpan span, Modifier modifier) : Token(span) public class ModifierToken(SourceSpan span, Modifier modifier) : Token(span)
{ {

View File

@@ -1,4 +1,4 @@
namespace syntax.Tokenization; namespace Syntax.Tokenization;
public class SymbolToken(SourceSpan span, Symbol symbol) : Token(span) public class SymbolToken(SourceSpan span, Symbol symbol) : Token(span)
{ {

View File

@@ -1,4 +1,4 @@
namespace syntax.Tokenization; namespace Syntax.Tokenization;
public abstract class Token(SourceSpan span) public abstract class Token(SourceSpan span)
{ {

View File

@@ -1,7 +1,7 @@
using common; using Common;
using syntax.Diagnostics; using Syntax.Diagnostics;
namespace syntax.Tokenization; namespace Syntax.Tokenization;
public static class Tokenizer public static class Tokenizer
{ {

View File

@@ -1,6 +1,6 @@
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
namespace syntax.Typing; namespace Syntax.Typing;
public abstract class NubType public abstract class NubType
{ {

View File

@@ -1,12 +1,12 @@
using System.Diagnostics; using System.Diagnostics;
using syntax.Diagnostics; using Syntax.Diagnostics;
using syntax.Parsing; using Syntax.Parsing;
using syntax.Parsing.Definitions; using Syntax.Parsing.Definitions;
using syntax.Parsing.Expressions; using Syntax.Parsing.Expressions;
using syntax.Parsing.Statements; using Syntax.Parsing.Statements;
using syntax.Tokenization; using Syntax.Tokenization;
namespace syntax.Typing; namespace Syntax.Typing;
public static class TypeChecker public static class TypeChecker
{ {