diff --git a/StgSharp.C/StgSharpC.c b/StgSharp.C/StgSharpC.c index 43fa0bbd..310a71e3 100644 --- a/StgSharp.C/StgSharpC.c +++ b/StgSharp.C/StgSharpC.c @@ -68,7 +68,7 @@ SSCAPI void SSCDECL unloadImageData(Image *out) free(out->pixelPtr); } -char *SSCDECL readLog() +SSCAPI char *SSCDECL readLog() { infolog[511] = '\0'; return infolog; diff --git a/StgSharp.C/x64/Debug/StgSharp.C.ilk b/StgSharp.C/x64/Debug/StgSharp.C.ilk index d5332a33..83e1a0df 100644 Binary files a/StgSharp.C/x64/Debug/StgSharp.C.ilk and b/StgSharp.C/x64/Debug/StgSharp.C.ilk differ diff --git a/StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.command.1.tlog b/StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.command.1.tlog index 0a1b834d..f18958bf 100644 Binary files a/StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.command.1.tlog and b/StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.command.1.tlog differ diff --git a/StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.read.1.tlog b/StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.read.1.tlog index ba075e94..7d944fad 100644 Binary files a/StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.read.1.tlog and b/StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.read.1.tlog differ diff --git a/StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.16312.write.1.tlog b/StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.write.1.tlog similarity index 80% rename from StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.16312.write.1.tlog rename to StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.write.1.tlog index 6e7e0b8e..663701b6 100644 Binary files a/StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.16312.write.1.tlog and b/StgSharp.C/x64/Debug/StgSharp.C.tlog/CL.write.1.tlog differ diff --git a/StgSharp.C/x64/Debug/StgSharp.C.tlog/bscmake.read.1.tlog b/StgSharp.C/x64/Debug/StgSharp.C.tlog/bscmake.read.1.tlog index 5bb4144b..925321f8 100644 Binary files a/StgSharp.C/x64/Debug/StgSharp.C.tlog/bscmake.read.1.tlog and b/StgSharp.C/x64/Debug/StgSharp.C.tlog/bscmake.read.1.tlog differ diff --git a/StgSharp.C/x64/Debug/StgSharp.C.tlog/link.read.1.tlog b/StgSharp.C/x64/Debug/StgSharp.C.tlog/link.read.1.tlog index 9eea48cd..13964ded 100644 Binary files a/StgSharp.C/x64/Debug/StgSharp.C.tlog/link.read.1.tlog and b/StgSharp.C/x64/Debug/StgSharp.C.tlog/link.read.1.tlog differ diff --git a/StgSharp.C/x64/Debug/StgSharpC.log b/StgSharp.C/x64/Debug/StgSharpC.log index 27f548c3..d6ef9e93 100644 --- a/StgSharp.C/x64/Debug/StgSharpC.log +++ b/StgSharp.C/x64/Debug/StgSharpC.log @@ -1,150 +1,5 @@ C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\Microsoft.CppBuild.targets(517,5): warning MSB8004: Output 目录未以斜杠结尾。 此生成实例将添加斜杠,因为必须有这个斜杠才能正确计算 Output 目录。 - dllmain.c - intrinsic.c - mat2.c - mat3.c - mat4.c - stb_image.c StgSharpC.c - hash.c - string.c - vector.c - vector_dot.c -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\stb_image.c(882,25): warning C4047: “=”:“stbi_uc”与“char [33]”的间接级别不同 D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\StgSharpC.c(14,30): warning C4244: “函数”: 从“uint64_t”转换到“GLuint”,可能丢失数据 D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\StgSharpC.c(16,43): warning C4244: “函数”: 从“uint64_t”转换到“GLuint”,可能丢失数据 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(9,36): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(9,62): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(11,36): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(11,62): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(20,36): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(20,62): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(22,36): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(22,62): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(24,36): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(24,62): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(26,36): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(26,62): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(36,36): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(36,62): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(38,36): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(38,62): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(40,36): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(40,62): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(42,36): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(42,62): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(51,54): warning C4028: 形参 1 与声明不同 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(51,84): warning C4028: 形参 2 与声明不同 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(53,22): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(54,22): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(55,22): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(56,22): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(59,28): warning C4013: “det_mat3_internal”未定义;假设外部返回 int -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(59,28): warning C4244: “函数”: 从“int”转换到“float”,可能丢失数据 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(59,62): warning C4244: “函数”: 从“int”转换到“float”,可能丢失数据 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(60,28): warning C4244: “函数”: 从“int”转换到“float”,可能丢失数据 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(60,62): warning C4244: “函数”: 从“int”转换到“float”,可能丢失数据 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(61,36): warning C4133: “函数”: 从“const __m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(69,37): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(69,61): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(70,37): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(70,61): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(71,37): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(71,61): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(72,37): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(72,61): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\vector_dot.c(83,23): warning C4133: “函数”: 从“__m256 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(77,38): warning C4133: “函数”: 从“__m256 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(77,63): warning C4133: “函数”: 从“__m256 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(78,38): warning C4133: “函数”: 从“__m256 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\vector_dot.c(90,16): warning C4133: “函数”: 从“__m256 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(78,63): warning C4133: “函数”: 从“__m256 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\vector_dot.c(97,33): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(88,37): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(88,61): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\vector_dot.c(97,48): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(89,37): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(89,61): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(90,37): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(90,61): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(91,37): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\vector_dot.c(114,33): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(91,61): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\vector_dot.c(114,48): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(96,38): warning C4133: “函数”: 从“__m256 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(96,63): warning C4133: “函数”: 从“__m256 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(97,38): warning C4133: “函数”: 从“__m256 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c(97,63): warning C4133: “函数”: 从“__m256 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\vector_dot.c(127,23): warning C4133: “函数”: 从“__m256 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\vector_dot.c(136,16): warning C4133: “函数”: 从“__m256 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\vector_dot.c(144,33): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\vector_dot.c(144,48): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c(4,50): warning C4028: 形参 1 与声明不同 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c(6,36): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c(6,62): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c(8,36): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c(8,62): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c(16,50): warning C4028: 形参 1 与声明不同 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c(18,36): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c(18,62): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(5,49): warning C4028: 形参 1 与声明不同 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c(20,36): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c(20,62): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(7,36): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(7,62): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c(31,35): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c(31,59): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(9,36): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c(32,35): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c(32,59): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(15,49): warning C4028: 形参 1 与声明不同 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c(40,37): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(17,36): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c(40,64): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(17,62): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c(46,35): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c(46,59): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c(47,35): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(19,36): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c(47,59): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(19,62): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c(55,37): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat2.c(55,64): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(21,36): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(22,36): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(29,49): warning C4028: 形参 1 与声明不同 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(31,36): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(31,62): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(33,36): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(33,62): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(35,36): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(36,36): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(80,35): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(80,59): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(81,35): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(81,59): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(82,35): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(82,59): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(91,38): warning C4133: “函数”: 从“__m256 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(91,60): warning C4133: “函数”: 从“__m256 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(92,35): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(92,59): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(106,35): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(106,59): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(107,35): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(107,59): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(108,35): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(108,59): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(117,38): warning C4133: “函数”: 从“__m256 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(117,60): warning C4133: “函数”: 从“__m256 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(118,35): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat3.c(118,59): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\hash.c(29,43): warning C4244: “函数”: 从“uint64_t”转换到“unsigned char”,可能丢失数据 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\hash.c(30,50): warning C4244: “函数”: 从“uint64_t”转换到“unsigned char”,可能丢失数据 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\hash.c(7,15): warning C4090: “初始化”: 不同的“const”限定符 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\hash.c(7,34): warning C4090: “初始化”: 不同的“const”限定符 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\string.c(21,54): warning C4267: “return”: 从“size_t”转换到“int”,可能丢失数据 -D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\string.c(36,54): warning C4267: “return”: 从“size_t”转换到“int”,可能丢失数据 - 正在创建库 D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\build\StgSharp.C.lib 和对象 D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\build\StgSharp.C.exp -LINK : warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library StgSharpC.vcxproj -> D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\build\StgSharp.C.dll diff --git a/StgSharp.C/x64/Debug/StgSharpC.obj b/StgSharp.C/x64/Debug/StgSharpC.obj index ce86f11e..b319ce9d 100644 Binary files a/StgSharp.C/x64/Debug/StgSharpC.obj and b/StgSharp.C/x64/Debug/StgSharpC.obj differ diff --git a/StgSharp.C/x64/Debug/vc143.idb b/StgSharp.C/x64/Debug/vc143.idb index b9967017..8ad7b582 100644 Binary files a/StgSharp.C/x64/Debug/vc143.idb and b/StgSharp.C/x64/Debug/vc143.idb differ diff --git a/StgSharp.C/x64/Debug/vc143.pdb b/StgSharp.C/x64/Debug/vc143.pdb index 63dacdaa..60ecf559 100644 Binary files a/StgSharp.C/x64/Debug/vc143.pdb and b/StgSharp.C/x64/Debug/vc143.pdb differ diff --git a/StgSharp.Model/obj/x64/Debug/net8.0/StgSharp.Model.AssemblyInfo.cs b/StgSharp.Model/obj/x64/Debug/net8.0/StgSharp.Model.AssemblyInfo.cs index 5a5ef2b9..418eb6fd 100644 --- a/StgSharp.Model/obj/x64/Debug/net8.0/StgSharp.Model.AssemblyInfo.cs +++ b/StgSharp.Model/obj/x64/Debug/net8.0/StgSharp.Model.AssemblyInfo.cs @@ -14,7 +14,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("StgSharp.Model")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+17a226c20653a1c92f6a3b420d6388c31f6a8c1e")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+d270b6b1f8220e14d01610bd55f11c0b4908af39")] [assembly: System.Reflection.AssemblyProductAttribute("StgSharp.Model")] [assembly: System.Reflection.AssemblyTitleAttribute("StgSharp.Model")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/StgSharp.Model/obj/x64/Debug/net8.0/StgSharp.Model.sourcelink.json b/StgSharp.Model/obj/x64/Debug/net8.0/StgSharp.Model.sourcelink.json index 15b457c1..fb815ce1 100644 --- a/StgSharp.Model/obj/x64/Debug/net8.0/StgSharp.Model.sourcelink.json +++ b/StgSharp.Model/obj/x64/Debug/net8.0/StgSharp.Model.sourcelink.json @@ -1 +1 @@ -{"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/17a226c20653a1c92f6a3b420d6388c31f6a8c1e/*"}} \ No newline at end of file +{"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/d270b6b1f8220e14d01610bd55f11c0b4908af39/*"}} \ No newline at end of file diff --git a/StgSharp.Script/Express/ExpAstNode/ExpInstanceReferenceNode.cs b/StgSharp.Script/Express/ExpAstNode/ExpInstanceReferenceNode.cs index e50cf585..770b621f 100644 --- a/StgSharp.Script/Express/ExpAstNode/ExpInstanceReferenceNode.cs +++ b/StgSharp.Script/Express/ExpAstNode/ExpInstanceReferenceNode.cs @@ -40,29 +40,29 @@ namespace StgSharp.Script.Express public class ExpInstanceReferenceNode : ExpNode { - private ExpElementInstance _instance; - internal ExpInstanceReferenceNode( Token source, ExpElementInstance instance ) : base( source ) { - _instance = instance; - _nodeFlag = ( _instance._nodeFlag | ( ExpNodeFlag.Name_Any | ExpNodeFlag.Collection_Any ) ); + OriginObject = instance; + _nodeFlag = ( OriginObject._nodeFlag | ( ExpNodeFlag.Name_Any | ExpNodeFlag.Collection_Any ) ); CodeConvertTemplate = source.Value; } internal ExpInstanceReferenceNode( Token source, ExpInstanceReferenceNode reference ) : base( source ) { - _instance = reference._instance; - _nodeFlag = ( _instance._nodeFlag | ( ExpNodeFlag.Name_Any | ExpNodeFlag.Collection_Any ) ); + OriginObject = reference.OriginObject; + _nodeFlag = ( OriginObject._nodeFlag | ( ExpNodeFlag.Name_Any | ExpNodeFlag.Collection_Any ) ); CodeConvertTemplate = source.Value; } + public ExpElementInstance OriginObject { get ; private set; } + public override ExpNode Left => Empty; public override ExpNode Right => Empty; - public override IExpElementSource EqualityTypeConvert => _instance.EqualityTypeConvert; + public override IExpElementSource EqualityTypeConvert => OriginObject.EqualityTypeConvert; [MethodImpl( MethodImplOptions.AggressiveInlining )] public static ExpInstanceReferenceNode MakeReferenceFrom( diff --git a/StgSharp.Script/Express/ExpAstNode/ExpRepeatNode.cs b/StgSharp.Script/Express/ExpAstNode/ExpRepeatNode.cs index 8ddfab33..1fc52867 100644 --- a/StgSharp.Script/Express/ExpAstNode/ExpRepeatNode.cs +++ b/StgSharp.Script/Express/ExpAstNode/ExpRepeatNode.cs @@ -59,7 +59,7 @@ namespace StgSharp.Script.Express increment.NodeFlag ) ) { throw new InvalidCastException(); } - if( ExpNode.IsNullOrEmpty( increment ) ) + if( IsNullOrEmpty( increment ) ) { switch( ( ExpNodeFlag )variable.NodeFlag | ExpNodeFlag.BuiltinType_Any ) { @@ -84,7 +84,7 @@ namespace StgSharp.Script.Express _variable = variable; _begin = begin; _end = end; - _increment = increment; + _increment = increment!; _operationBegin = operationBegin; _untilRule = untilRule; _whileRule = whileRule; @@ -106,52 +106,54 @@ namespace StgSharp.Script.Express /// WHILE and UNTIL regulation. /// /// - /// Position of the loop + /// Position of the loop. /// /// - /// + /// The variable recording increment by step. /// /// - /// + /// Beginning value of the loop. /// /// - /// + /// When reach the value, the loop ends. /// /// - /// + /// Expressions to operate multiple times. /// /// - /// + /// A representing the repeat expression. /// public static ExpRepeatNode Create( Token t, - ExpElementInstance repeatVariable, + ExpInstanceReferenceNode repeatVariable, ExpNode begin, ExpNode end, ExpNode increment, + ExpNode whileRule, + ExpNode untilRule, ExpNode body ) { - ExpNode untilRule = ExpBoolNode.False( null ); - ExpNode whileRule = ExpBoolNode.True( null ); + untilRule = ExpBoolNode.False( null ); + whileRule = ExpBoolNode.True( null ); ExpRepeatNode ret = new ExpRepeatNode( - t, repeatVariable, begin, end, increment, body, whileRule, untilRule ) + t, repeatVariable.OriginObject, begin, end, increment, body, whileRule, untilRule ) { /* - * 0 increment variable type - * 1: variable name - * 2: beginning value - * 3: ending value - * 4: increment - * 5: body - * 6: while - * 7: until + * 0: variable name + * 1: beginning value + * 2: ending value + * 3: increment + * 4: body + * 5: while + * 6: until */ + CodeConvertTemplate = $$""" - for({{0}} {{1}} = {{2}}; {{1}} <= {{3}}; {{1}} += {{4}}) + for( {0} = {1}; {0} <= {2}; {0} += {3}) { - if(!( {{6}} )) break; - {{5}} - if( {{7}} ) break; + if(!( {5} )) break; + {4} + if( {6} ) break; } """ }; @@ -174,21 +176,21 @@ namespace StgSharp.Script.Express t, repeatVariable, begin, end, increment, body, whileRule, untilRule ) { /* - * 0 increment variable type - * 1: variable name - * 2: beginning value - * 3: ending value - * 4: increment - * 5: body - * 6: while - * 7: until + * 0: variable name + * 1: beginning value + * 2: ending value + * 3: increment + * 4: body + * 5: while + * 6: until */ + CodeConvertTemplate = $$""" - for({{0}} {{1}} = {{2}}; {{1}} <= {{3}}; {{1}} += {{4}}) + for({{repeatVariable.TypeName}} {0} = {1}; {0} <= {2}; {0} += {3}) { - if(!( {{6}} )) break; - {{5}} - if( {{7}} ) break; + if(!( {5} )) break; + {4} + if( {6} ) break; } """ }; diff --git a/StgSharp.Script/Express/ExpAstNode/_ExpNode.cs b/StgSharp.Script/Express/ExpAstNode/_ExpNode.cs index 7d466d2d..a40e8090 100644 --- a/StgSharp.Script/Express/ExpAstNode/_ExpNode.cs +++ b/StgSharp.Script/Express/ExpAstNode/_ExpNode.cs @@ -32,6 +32,7 @@ using CommunityToolkit.HighPerformance.Buffers; using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Runtime.CompilerServices; using System.Text; @@ -97,7 +98,7 @@ namespace StgSharp.Script.Express return new ExpNodeNextEnumerator( this ); } - public static bool IsNullOrEmpty( ExpNode node ) + public static bool IsNullOrEmpty( [AllowNull]ExpNode node ) { return node == ExpEmptyNode._only || node == null; } diff --git a/StgSharp.Script/Express/ExpExceptions.cs b/StgSharp.Script/Express/ExpExceptions.cs index e342bcb5..477edfab 100644 --- a/StgSharp.Script/Express/ExpExceptions.cs +++ b/StgSharp.Script/Express/ExpExceptions.cs @@ -39,7 +39,14 @@ using System.Text; namespace StgSharp.Script.Express { - public class ExpInvalidCharException : Exception + public class ExpException : Exception + { + + public ExpException( string message ) : base( message ) { } + + } + + public class ExpInvalidCharException : ExpException { public ExpInvalidCharException( char c ) : base( $"An unknown char {c} occurred." ) { } @@ -49,7 +56,7 @@ namespace StgSharp.Script.Express } - public class ExpStringNotCloseException : Exception + public class ExpStringNotCloseException : ExpException { public ExpStringNotCloseException( int linenum ) @@ -57,7 +64,7 @@ namespace StgSharp.Script.Express } - public class ExpInvalidSyntaxException : Exception + public class ExpInvalidSyntaxException : ExpException { public ExpInvalidSyntaxException( string message ) : base( message ) { } @@ -76,7 +83,7 @@ namespace StgSharp.Script.Express } - public class ExpInvalidElementDeclareEndingExceptions : Exception + public class ExpInvalidElementDeclareEndingExceptions : ExpException { public ExpInvalidElementDeclareEndingExceptions( string declaredName, string endedName ) @@ -85,7 +92,7 @@ namespace StgSharp.Script.Express } - public class ExpInvalidElementNameException : Exception + public class ExpInvalidElementNameException : ExpException { public ExpInvalidElementNameException( string elementName, ExpSchema schema ) @@ -148,7 +155,7 @@ namespace StgSharp.Script.Express } - public class ExpCompileException : Exception + public class ExpCompileException : ExpException { public ExpCompileException( Token pos, string message ) diff --git a/StgSharp.Script/Express/ExpSourceReader.cs b/StgSharp.Script/Express/ExpSourceReader.cs index a359ec7f..37fd9256 100644 --- a/StgSharp.Script/Express/ExpSourceReader.cs +++ b/StgSharp.Script/Express/ExpSourceReader.cs @@ -356,7 +356,7 @@ namespace StgSharp.Script.Express private static partial Regex GetNextWordTokenPattern(); [GeneratedRegex( - @"(?-?\s*?[0-9]+(?:\.[0-9]*)?E?(?:[+-]?[0-9]+))(?\s*?)(?\S|$)", + @"(?-?\s*?[0-9]+(?:\.[0-9]*)?E?(?:[+-]?[0-9]+)?)(?\s*?)(?\S|$)", RegexOptions.Singleline )] private static partial Regex GetNumberLiteralPattern(); diff --git a/StgSharp.Script/Express/ExpSyntaxAnalyzer.RepeatLoop.cs b/StgSharp.Script/Express/ExpSyntaxAnalyzer.RepeatLoop.cs index 6047f84a..92d454b4 100644 --- a/StgSharp.Script/Express/ExpSyntaxAnalyzer.RepeatLoop.cs +++ b/StgSharp.Script/Express/ExpSyntaxAnalyzer.RepeatLoop.cs @@ -56,6 +56,7 @@ namespace StgSharp.Script.Express { state = new RepeatLoopState( t ); _cache.CurrentDepthMark.StateCache = state; + state.CurrentState = t.Value; return true; } switch( state.CurrentState ) @@ -86,9 +87,19 @@ namespace StgSharp.Script.Express ExpNode root = _cache.PackAllStatements(); state.Body = root; _cache.DecreaseDepth(); - root = ExpRepeatNode.Create( - state.Position, state.IncrementVariable, state.Begin, state.End, - state.IncrementVariable, state.Body, state.UntilExpression, state.WhileExpression ); + if( ExpTypeSource.IsNullOrVoid( state.IncrementVariableType ) ) + { + root = ExpRepeatNode.Create( + state.Position, state.IncrementVariable, state.Begin, state.End, + state.IncrementVariable, state.Body, state.UntilExpression, + state.WhileExpression ); + } else + { + root = ExpRepeatNode.Create( + state.Position, state.IncrementVariable.OriginObject, state.Begin, state.End, + state.IncrementVariable, state.Body, state.UntilExpression, + state.WhileExpression ); + } _cache.StatementsInDepth.Push( root ); _tempVariableInLoops.Remove( state.IncrementVariable.CodeConvertTemplate ); return true; @@ -194,18 +205,29 @@ namespace StgSharp.Script.Express return true; case ExpKeyword.Assignment: state.CurrentState = ExpKeyword.Assignment; - _tempVariableInLoops.Add( - state.IncrementVariable.CodeConvertTemplate, state.IncrementVariable ); - return true; default: if( ExpTypeSource.IsNullOrVoid( state.IncrementVariableType ) ) { - throw new ExpInvalidTypeException( "Numerical", t.Value ); + if( ( _local.TryGetMember( t.Value, + out ExpNode? node ) && node is ExpElementInstance instance ) || _tempVariableInLoops.TryGetValue( + t.Value, out instance ) ) + { + state.IncrementVariable = ExpInstanceReferenceNode.MakeReferenceFrom( + t, instance ); + return true; + } else + { + throw new ExpInvalidSyntaxException( + $"Variable {t.Value} is not declared or initialized." ); + } } else { - state.IncrementVariable = state.IncrementVariableType - .CreateInstanceNode( t ); + ExpElementInstance variable = state.IncrementVariableType + .CreateInstanceNode( t ); + _tempVariableInLoops.Add( t.Value, variable ); + state.IncrementVariable = ExpInstanceReferenceNode.MakeReferenceFrom( + t, variable ); return true; } } @@ -240,7 +262,7 @@ namespace StgSharp.Script.Express WhileExpression = ExpNode.Empty; } - public ExpElementInstance IncrementVariable { get; set; } + public ExpInstanceReferenceNode IncrementVariable { get; set; } public ExpNode StepIncrement { get; set; } diff --git a/StgSharp.Script/Express/ExpSyntaxAnalyzer.TokenSpliter.cs b/StgSharp.Script/Express/ExpSyntaxAnalyzer.TokenSpliter.cs index 1bf28d40..6f67fdb4 100644 --- a/StgSharp.Script/Express/ExpSyntaxAnalyzer.TokenSpliter.cs +++ b/StgSharp.Script/Express/ExpSyntaxAnalyzer.TokenSpliter.cs @@ -235,8 +235,10 @@ namespace StgSharp.Script.Express { _cache.PushOperand( ExpInstanceReferenceNode.MakeReferenceFrom( t, instance ) ); return true; - } else if( _tempVariableInLoops.TryGetValue( t.Value, out instance ) ) { + } else if( _tempVariableInLoops.TryGetValue( t.Value, out instance! ) ) + { _cache.PushOperand( ExpInstanceReferenceNode.MakeReferenceFrom( t, instance ) ); + return true; } return false; } diff --git a/StgSharp.Script/Express/ExpSyntaxAnalyzer.cs b/StgSharp.Script/Express/ExpSyntaxAnalyzer.cs index c2e14002..954e9813 100644 --- a/StgSharp.Script/Express/ExpSyntaxAnalyzer.cs +++ b/StgSharp.Script/Express/ExpSyntaxAnalyzer.cs @@ -87,6 +87,9 @@ namespace StgSharp.Script.Express case ExpCompileStateCode.CaseBranch: AppendToken_CaseOf( expToken ); break; + case ExpCompileStateCode.RepeatLoop: + AppendToken_RepeatLoop( expToken ); + break; default: AppendToken_common( expToken ); break; diff --git a/StgSharp.Script/obj/x64/Debug/net8.0/StgSharp.Script.AssemblyInfo.cs b/StgSharp.Script/obj/x64/Debug/net8.0/StgSharp.Script.AssemblyInfo.cs index 3f57f3e0..f1226f44 100644 --- a/StgSharp.Script/obj/x64/Debug/net8.0/StgSharp.Script.AssemblyInfo.cs +++ b/StgSharp.Script/obj/x64/Debug/net8.0/StgSharp.Script.AssemblyInfo.cs @@ -14,7 +14,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("StgSharp.Script")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+1a1db3554b10ed4a707671695d5100eee621af75")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+d270b6b1f8220e14d01610bd55f11c0b4908af39")] [assembly: System.Reflection.AssemblyProductAttribute("StgSharp.Script")] [assembly: System.Reflection.AssemblyTitleAttribute("StgSharp.Script")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/StgSharp.Script/obj/x64/Debug/net8.0/StgSharp.Script.sourcelink.json b/StgSharp.Script/obj/x64/Debug/net8.0/StgSharp.Script.sourcelink.json index 37e8070f..fb815ce1 100644 --- a/StgSharp.Script/obj/x64/Debug/net8.0/StgSharp.Script.sourcelink.json +++ b/StgSharp.Script/obj/x64/Debug/net8.0/StgSharp.Script.sourcelink.json @@ -1 +1 @@ -{"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/1a1db3554b10ed4a707671695d5100eee621af75/*"}} \ No newline at end of file +{"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/d270b6b1f8220e14d01610bd55f11c0b4908af39/*"}} \ No newline at end of file diff --git a/StgSharpDebug/ExpLinearExpressionTest.cs b/StgSharpDebug/ExpLinearExpressionTest.cs index a6cbf33d..812b1fce 100644 --- a/StgSharpDebug/ExpLinearExpressionTest.cs +++ b/StgSharpDebug/ExpLinearExpressionTest.cs @@ -135,6 +135,10 @@ namespace StgSharp 1 : a := 1 + e ; OTHERWISE : a:=a; END_CASE + REPEAT a := 1 TO 10; + b := 10; + END_REPEAT + """; public static void ExpLinearExpressionTest() diff --git a/StgSharpDebug/Program.cs b/StgSharpDebug/Program.cs index fa6f062e..5bb33ee9 100644 --- a/StgSharpDebug/Program.cs +++ b/StgSharpDebug/Program.cs @@ -56,12 +56,14 @@ namespace StgSharp internal static unsafe void Main( string[] args ) { - try { + try + { StgSharp.Init(); ExpLinearExpressionTest(); return; } - catch( Exception ex ) { + catch( Exception ex ) + { Console.WriteLine( ex ); /* StgSharp.WriteLog($"{ex}", LogType.Error); @@ -71,7 +73,8 @@ namespace StgSharp StgSharp.Terminate( -1 ); /**/ } - finally { + finally + { StgSharp.Terminate( 0 ); } } diff --git a/StgSharpDebug/obj/x64/Debug/net8.0/StgSharpDebug.AssemblyInfo.cs b/StgSharpDebug/obj/x64/Debug/net8.0/StgSharpDebug.AssemblyInfo.cs index 524bb584..5eded2dc 100644 --- a/StgSharpDebug/obj/x64/Debug/net8.0/StgSharpDebug.AssemblyInfo.cs +++ b/StgSharpDebug/obj/x64/Debug/net8.0/StgSharpDebug.AssemblyInfo.cs @@ -14,7 +14,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("StgSharpDebug")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+17a226c20653a1c92f6a3b420d6388c31f6a8c1e")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+d270b6b1f8220e14d01610bd55f11c0b4908af39")] [assembly: System.Reflection.AssemblyProductAttribute("StgSharpDebug")] [assembly: System.Reflection.AssemblyTitleAttribute("StgSharpDebug")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/StgSharpDebug/obj/x64/Debug/net8.0/StgSharpDebug.sourcelink.json b/StgSharpDebug/obj/x64/Debug/net8.0/StgSharpDebug.sourcelink.json index 15b457c1..fb815ce1 100644 --- a/StgSharpDebug/obj/x64/Debug/net8.0/StgSharpDebug.sourcelink.json +++ b/StgSharpDebug/obj/x64/Debug/net8.0/StgSharpDebug.sourcelink.json @@ -1 +1 @@ -{"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/17a226c20653a1c92f6a3b420d6388c31f6a8c1e/*"}} \ No newline at end of file +{"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/d270b6b1f8220e14d01610bd55f11c0b4908af39/*"}} \ No newline at end of file