using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Serein.Script.Node
{
///
/// 数值型节点
///
public abstract class NumberNode : ASTNode where T : struct, IComparable
{
public T Value { get; }
public NumberNode(T value) => Value = value;
public override string ToString()
{
return $"{Value}";
}
}
///
/// int 整数型字面量
///
public class NumberIntNode(int vlaue) : NumberNode(vlaue)
{
}
///
/// int 整数型字面量
///
public class NumberLongNode(long vlaue) : NumberNode(vlaue)
{
}
///
/// int 整数型字面量
///
public class NumberFloatNode(float vlaue) : NumberNode(vlaue)
{
}
///
/// int 整数型字面量
///
public class NumberDoubleNode(double vlaue) : NumberNode(vlaue)
{
}
/*///
/// int 整数型字面量
///
public class NumberIntNode : ASTNode
{
public int Value { get; }
public NumberIntNode(int value) => Value = value;
}
///
/// int 整数型字面量
///
public class NumberLongNode : ASTNode
{
public long Value { get; }
public NumberLongNode(long value) => Value = value;
}
///
/// int 整数型字面量
///
public class NumberFloatNode : ASTNode
{
public float Value { get; }
public NumberFloatNode(float value) => Value = value;
}
///
/// int 整数型字面量
///
public class NumberDoubleNode : ASTNode
{
public double Value { get; }
public NumberDoubleNode(double value) => Value = value;
}*/
}