mirror of
https://gitee.com/langsisi_admin/serein-flow
synced 2026-03-20 00:06:45 +08:00
优化了脚本生成AST时的代码提示,增加了脚本运行时错误提示。
This commit is contained in:
@@ -11,7 +11,14 @@ namespace Serein.Script.Node
|
||||
/// </summary>
|
||||
public class MemberAccessNode : ASTNode
|
||||
{
|
||||
/// <summary>
|
||||
/// 对象token
|
||||
/// </summary>
|
||||
public ASTNode Object { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 成员名称
|
||||
/// </summary>
|
||||
public string MemberName { get; }
|
||||
|
||||
public MemberAccessNode(ASTNode obj, string memberName)
|
||||
|
||||
@@ -11,8 +11,17 @@ namespace Serein.Script.Node
|
||||
/// </summary>
|
||||
public class MemberAssignmentNode : ASTNode
|
||||
{
|
||||
/// <summary>
|
||||
/// 作用的对象
|
||||
/// </summary>
|
||||
public ASTNode Object { get; }
|
||||
/// <summary>
|
||||
/// 被赋值的成员(属性/字段)名称
|
||||
/// </summary>
|
||||
public string MemberName { get; }
|
||||
/// <summary>
|
||||
/// 值来源
|
||||
/// </summary>
|
||||
public ASTNode Value { get; }
|
||||
|
||||
public MemberAssignmentNode(ASTNode obj, string memberName, ASTNode value)
|
||||
|
||||
@@ -11,8 +11,19 @@ namespace Serein.Script.Node
|
||||
/// </summary>
|
||||
public class MemberFunctionCallNode : ASTNode
|
||||
{
|
||||
/// <summary>
|
||||
/// 需要被调用的对象
|
||||
/// </summary>
|
||||
public ASTNode Object { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 被调用的方法名称
|
||||
/// </summary>
|
||||
public string FunctionName { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 方法参数
|
||||
/// </summary>
|
||||
public List<ASTNode> Arguments { get; }
|
||||
|
||||
public MemberFunctionCallNode(ASTNode @object, string functionName, List<ASTNode> arguments)
|
||||
|
||||
90
Serein.Script/Node/NumberIntNode.cs
Normal file
90
Serein.Script/Node/NumberIntNode.cs
Normal file
@@ -0,0 +1,90 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Serein.Script.Node
|
||||
{
|
||||
/// <summary>
|
||||
/// 数值型节点
|
||||
/// </summary>
|
||||
public abstract class NumberNode<T> : ASTNode where T : struct, IComparable<T>
|
||||
{
|
||||
public T Value { get; }
|
||||
public NumberNode(T value) => Value = value;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// int 整数型字面量
|
||||
/// </summary>
|
||||
public class NumberIntNode(int vlaue) : NumberNode<int>(vlaue)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// int 整数型字面量
|
||||
/// </summary>
|
||||
public class NumberLongNode(long vlaue) : NumberNode<long>(vlaue)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// int 整数型字面量
|
||||
/// </summary>
|
||||
public class NumberFloatNode(float vlaue) : NumberNode<float>(vlaue)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// int 整数型字面量
|
||||
/// </summary>
|
||||
public class NumberDoubleNode(double vlaue) : NumberNode<double>(vlaue)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*/// <summary>
|
||||
/// int 整数型字面量
|
||||
/// </summary>
|
||||
public class NumberIntNode : ASTNode
|
||||
{
|
||||
public int Value { get; }
|
||||
public NumberIntNode(int value) => Value = value;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// int 整数型字面量
|
||||
/// </summary>
|
||||
public class NumberLongNode : ASTNode
|
||||
{
|
||||
public long Value { get; }
|
||||
public NumberLongNode(long value) => Value = value;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// int 整数型字面量
|
||||
/// </summary>
|
||||
public class NumberFloatNode : ASTNode
|
||||
{
|
||||
public float Value { get; }
|
||||
public NumberFloatNode(float value) => Value = value;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// int 整数型字面量
|
||||
/// </summary>
|
||||
public class NumberDoubleNode : ASTNode
|
||||
{
|
||||
public double Value { get; }
|
||||
public NumberDoubleNode(double value) => Value = value;
|
||||
}*/
|
||||
|
||||
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Serein.Script.Node
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 整数型字面量
|
||||
/// </summary>
|
||||
public class NumberNode : ASTNode
|
||||
{
|
||||
public int Value { get; }
|
||||
public NumberNode(int value) => Value = value;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user