EP 0.1.1
This commit is contained in:
29
Convention/[Symbolization]/Internal/Namespace.cs
Normal file
29
Convention/[Symbolization]/Internal/Namespace.cs
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Convention.Symbolization.Internal
|
||||||
|
{
|
||||||
|
internal sealed class NamespaceModel
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class Namespace : Variable
|
||||||
|
{
|
||||||
|
private NamespaceModel Data;
|
||||||
|
|
||||||
|
public override object Clone()
|
||||||
|
{
|
||||||
|
Namespace result = new()
|
||||||
|
{
|
||||||
|
Data = Data
|
||||||
|
};
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@@ -30,5 +30,15 @@ namespace Convention.Symbolization.Internal
|
|||||||
}
|
}
|
||||||
return target;
|
return target;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool Equals(Structure other)
|
||||||
|
{
|
||||||
|
return Name.Equals(other.Name);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int GetHashCode()
|
||||||
|
{
|
||||||
|
return Name.GetHashCode();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -6,9 +6,36 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace Convention.Symbolization.Internal
|
namespace Convention.Symbolization.Internal
|
||||||
{
|
{
|
||||||
public abstract class Variable : ICloneable
|
public abstract class Variable : ICloneable, IEquatable<Variable>
|
||||||
{
|
{
|
||||||
|
public readonly VariableSymbol SymbolInfo;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// for construct
|
||||||
|
/// </summary>
|
||||||
|
protected Variable(string symbolName, Type variableType)
|
||||||
|
{
|
||||||
|
SymbolInfo = new VariableSymbol(symbolName, variableType);
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// for clone
|
||||||
|
/// </summary>
|
||||||
|
protected Variable(string symbolName, Variable variable) : this(symbolName, variable.SymbolInfo.VariableType) { }
|
||||||
|
|
||||||
public abstract object Clone();
|
public abstract object Clone();
|
||||||
|
public abstract bool Equals(Variable other);
|
||||||
|
|
||||||
|
public override bool Equals(object obj)
|
||||||
|
{
|
||||||
|
return obj is Variable variable && Equals(variable);
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract int GetVariableHashCode();
|
||||||
|
|
||||||
|
public override sealed int GetHashCode()
|
||||||
|
{
|
||||||
|
return GetVariableHashCode();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public readonly struct VariableSymbol
|
public readonly struct VariableSymbol
|
||||||
|
@@ -8,24 +8,20 @@ namespace Convention.Symbolization
|
|||||||
{
|
{
|
||||||
public class SymbolizationContext
|
public class SymbolizationContext
|
||||||
{
|
{
|
||||||
public Internal.VariableContext Context = new();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class SymbolizationRunner
|
public class SymbolizationRunner
|
||||||
{
|
{
|
||||||
|
private readonly Internal.Namespace GlobalNamespace;
|
||||||
private readonly SymbolizationContext Context;
|
private readonly SymbolizationContext Context;
|
||||||
|
|
||||||
public SymbolizationRunner(SymbolizationContext context)
|
public SymbolizationRunner(SymbolizationContext context)
|
||||||
{
|
{
|
||||||
|
GlobalNamespace = new();
|
||||||
Context = context;
|
Context = context;
|
||||||
}
|
}
|
||||||
public SymbolizationRunner() :this(new()){ }
|
public SymbolizationRunner() :this(new()){ }
|
||||||
|
|
||||||
public void Execute(string funcName)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Execute()=>Execute("main")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user