db536cfb2c
核心修复: - 修复 LinqToStreamConverter 13 个正则双反斜杠转义错误 (87→0 失败) - 修复 InheritanceConverter 接口判断逻辑 (纯 I 前缀父类→implements) - 修复 PropertyConverter init-only 属性组索引 新增转换器 (C# 8-13 特性): - NullCoalescingConverter: ??、?.、??= 运算符转换 - SwitchExpressionConverter: switch 表达式→if-else 链 - PrimaryConstructorConverter: 主构造函数→传统构造函数 增强: - LinqToStreamConverter 新增 FirstOrDefault(predicate)、OrderByDescending、TakeWhile、SkipWhile、Reverse 等 - AutoFixEngine 3 轮自动修复: 轮1 导入、轮2 类型映射、轮3 API 调用/语法错误 - NamingConverter: PascalCase→camelCase 命名转换 - DetectUnconvertibleSyntax: LINQ/async/record/init/var/switch/primary ctor 问题记录 - XML Doc→JavaDoc 格式转换与注释保留 新增测试: - CSharpToJavaEdgeCaseTests: 16 个边界测试 - CSharpToJavaSemanticEquivalenceTests: 15 个语义等价性测试 - 从 164 增加到 179 总测试 (168 通过, 0 失败) 新增文件: - Pipeline/Converters/NullCoalescingConverter.cs - Pipeline/Converters/SwitchExpressionConverter.cs - Pipeline/Converters/PrimaryConstructorConverter.cs - Converters/CSharpToCppStrategy.cs + CppCodeGenerator.cs - Tests/Semantics/CSharpToJavaSemanticEquivalenceTests.cs - Tests/CSharpAdvancedFeaturesTests.cs + CSharp13FeatureTests.cs Co-authored-by: monkeycode-ai <monkeycode-ai@chaitin.com>
162 lines
3.0 KiB
C#
162 lines
3.0 KiB
C#
namespace CodePlay.Core.Common;
|
|
|
|
using CodePlay.Core.Models;
|
|
|
|
/// <summary>
|
|
/// 支持的编程语言类型
|
|
/// </summary>
|
|
public enum LanguageType
|
|
{
|
|
/// <summary>
|
|
/// 未指定
|
|
/// </summary>
|
|
None = 0,
|
|
|
|
/// <summary>
|
|
/// C#
|
|
/// </summary>
|
|
CSharp = 1,
|
|
|
|
/// <summary>
|
|
/// Java
|
|
/// </summary>
|
|
Java = 2,
|
|
|
|
/// <summary>
|
|
/// C++
|
|
/// </summary>
|
|
CPlusPlus = 3
|
|
}
|
|
|
|
/// <summary>
|
|
/// 转换状态
|
|
/// </summary>
|
|
public enum ConversionStatus
|
|
{
|
|
/// <summary>
|
|
/// 等待中
|
|
/// </summary>
|
|
Pending = 0,
|
|
|
|
/// <summary>
|
|
/// 进行中
|
|
/// </summary>
|
|
InProgress = 1,
|
|
|
|
/// <summary>
|
|
/// 已完成
|
|
/// </summary>
|
|
Completed = 2,
|
|
|
|
/// <summary>
|
|
/// 部分完成(需要人工检查)
|
|
/// </summary>
|
|
PartiallyCompleted = 3,
|
|
|
|
/// <summary>
|
|
/// 失败
|
|
/// </summary>
|
|
Failed = 4,
|
|
|
|
/// <summary>
|
|
/// 已取消
|
|
/// </summary>
|
|
Cancelled = 5
|
|
}
|
|
|
|
/// <summary>
|
|
/// 项目状态
|
|
/// </summary>
|
|
public enum ProjectStatus
|
|
{
|
|
/// <summary>
|
|
/// 进行中
|
|
/// </summary>
|
|
InProgress = 0,
|
|
|
|
/// <summary>
|
|
/// 已完成
|
|
/// </summary>
|
|
Completed = 1,
|
|
|
|
/// <summary>
|
|
/// 已验证
|
|
/// </summary>
|
|
Verified = 2,
|
|
|
|
/// <summary>
|
|
/// 已归档
|
|
/// </summary>
|
|
Archived = 3
|
|
}
|
|
|
|
/// <summary>
|
|
/// 验证结果状态
|
|
/// </summary>
|
|
public enum ValidationResult
|
|
{
|
|
/// <summary>
|
|
/// 未验证
|
|
/// </summary>
|
|
NotValidated = 0,
|
|
|
|
/// <summary>
|
|
/// 验证通过
|
|
/// </summary>
|
|
Passed = 1,
|
|
|
|
/// <summary>
|
|
/// 验证失败 - 需要人工检查
|
|
/// </summary>
|
|
Failed_NeedsManualReview = 2,
|
|
|
|
/// <summary>
|
|
/// 验证失败 - 编译错误
|
|
/// </summary>
|
|
Failed_CompilationError = 3,
|
|
|
|
/// <summary>
|
|
/// 验证失败 - 测试失败
|
|
/// </summary>
|
|
Failed_TestFailed = 4
|
|
}
|
|
|
|
// 类型转换扩展
|
|
public static class TypeExtensions
|
|
{
|
|
public static LanguageType ToLanguageType(this string lang)
|
|
{
|
|
return lang.ToLower() switch
|
|
{
|
|
"csharp" or "c#" => LanguageType.CSharp,
|
|
"java" => LanguageType.Java,
|
|
"cpp" or "c++" or "cplusplus" => LanguageType.CPlusPlus,
|
|
"python" => LanguageType.None,
|
|
_ => LanguageType.None
|
|
};
|
|
}
|
|
|
|
public static string ToName(this LanguageType type)
|
|
{
|
|
return type switch
|
|
{
|
|
LanguageType.CSharp => "CSharp",
|
|
LanguageType.Java => "Java",
|
|
LanguageType.CPlusPlus => "C++",
|
|
_ => "Unknown"
|
|
};
|
|
}
|
|
|
|
public static string ToSeverityString(this IssueSeverity severity)
|
|
{
|
|
return severity switch
|
|
{
|
|
IssueSeverity.Low => "Low",
|
|
IssueSeverity.Medium => "Medium",
|
|
IssueSeverity.High => "High",
|
|
IssueSeverity.Critical => "Critical",
|
|
_ => "Unknown"
|
|
};
|
|
}
|
|
}
|