Files
Flee/ExpressionElements/Base/Unary.cs

29 lines
776 B
C#
Raw Normal View History

2025-10-08 09:49:37 +08:00
using Flee.PublicTypes;
using Flee.Resources;
namespace Flee.ExpressionElements.Base
{
internal abstract class UnaryElement : ExpressionElement
{
protected ExpressionElement MyChild;
private Type _myResultType;
public void SetChild(ExpressionElement child)
{
MyChild = child;
_myResultType = this.GetResultType(child.ResultType);
if (_myResultType == null)
{
base.ThrowCompileException(CompileErrorResourceKeys.OperationNotDefinedForType, CompileExceptionReason.TypeMismatch, MyChild.ResultType.Name);
}
}
protected abstract Type GetResultType(Type childType);
public override System.Type ResultType => _myResultType;
}
}