1. 移除了FlipflopContext,统一流程API

2. Script项目脚本修复了 RawString 原始字符串存在的问题
3. Script使用了ValueNode统一了值类型节点,为后续扩展更多的值类型做准备
4. TypeHelper.ToTypeOfString()方法中添加了部分值类型的"Type[]”与“List<Type>”的显式定义,用于脚本在类型中定义数组成员
5. Script项目脚本默认挂载的json方法拆分为jsonObj(String)与jsonStr(Object)以支持序列化与反序列化
6. 项目保存为dnf项目文件时,将不再保存名称为”Default"并且没有节点的画布,避免重复保存时默认画布增多。
This commit is contained in:
fengjiayi
2025-08-02 22:04:13 +08:00
parent 93747ce7fd
commit 79af278b70
26 changed files with 398 additions and 149 deletions

View File

@@ -128,6 +128,9 @@ namespace Serein.Script
case CharNode charNode: // char字面量
NodeSymbolInfos[charNode] = typeof(char);
return typeof(char);
case RawStringNode rawStringNode: // 原始字符串字面量(多行字符串)
NodeSymbolInfos[rawStringNode] = typeof(string);
return typeof(string);
case StringNode stringNode: // 字符串字面量
NodeSymbolInfos[stringNode] = typeof(string);
return typeof(string);
@@ -507,6 +510,7 @@ namespace Serein.Script
break;
case NullNode nullNode: // null
case CharNode charNode: // char字面量
case RawStringNode rawStringNode:
case StringNode stringNode: // 字符串字面量
case BooleanNode booleanNode: // 布尔值字面量
case NumberIntNode numberIntNode: // int整型数值字面量
@@ -558,6 +562,20 @@ namespace Serein.Script
}
AnalysisCollectionIndexNode(collectionIndexNode);
break;
case CollectionAssignmentNode collectionAssignmentNode: // 集合赋值操作
void AnalysisCollectionAssignmentNode(CollectionAssignmentNode collectionAssignmentNode)
{
Analysis(collectionAssignmentNode);
}
AnalysisCollectionAssignmentNode(collectionAssignmentNode);
break;
case ArrayDefintionNode arrayDefintionNode:
void AnalysisArrayDefintionNode(ArrayDefintionNode arrayDefintionNode)
{
Analysis(arrayDefintionNode);
}
AnalysisArrayDefintionNode(arrayDefintionNode);
break;
case ClassTypeDefinitionNode classTypeDefinitionNode: // 类型定义
Analysis(classTypeDefinitionNode);
break;