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;
|
||||
}
|
||||
|
||||
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
|
||||
{
|
||||
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 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
|
||||
|
Reference in New Issue
Block a user