From 4554542ae5d37ecdd598536da18f72cb7cce7025 Mon Sep 17 00:00:00 2001 From: msojocs Date: Sat, 26 Aug 2023 20:04:45 +0800 Subject: [PATCH] fix: subpackage, "orm"->"rom" --- .vscode/settings.json | 2 +- CMakeLists.txt | 1 + src/wcsc.cpp | 5 +++ src/wxss/css_tree_lib/lexical_checker.cpp | 34 ++++++++++--------- src/wxss/css_tree_lib/parser.cpp | 1 + test/spec/wcsc/ll/{ll.spec1.ts => ll.spec.ts} | 4 +-- test/wcsc.disassembly.cpp | 7 ++-- test/wcsc.sh | 2 +- 8 files changed, 33 insertions(+), 23 deletions(-) rename test/spec/wcsc/ll/{ll.spec1.ts => ll.spec.ts} (98%) diff --git a/.vscode/settings.json b/.vscode/settings.json index fb6ce72..69ffe1f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -60,7 +60,7 @@ "cwd": "/mnt/d/Work/WeChatProjects/miniprogram-demo/miniprogram", "args": [ "\"--config-path\"", - "\"/mnt/d/Work/disassembly/wcc-exec/wcsc/config/ll1.txt\"" + "\"/mnt/d/Work/disassembly/wcc-exec/wcsc/config/ll2.txt\"" ] }, "cmake.configureSettings": { diff --git a/CMakeLists.txt b/CMakeLists.txt index 39f55b6..76be89e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,6 +33,7 @@ add_executable(wcc src/night/ns_token.cpp src/night/ns_god/ns_god.cpp src/night/str/str.cpp + src/wxml/rpx.cpp src/wxml/expr_lib/base.cpp src/wxml/expr_lib/bnf.cpp src/wxml/expr_lib/common.cpp diff --git a/src/wcsc.cpp b/src/wcsc.cpp index 0ff4a00..4909a0b 100644 --- a/src/wcsc.cpp +++ b/src/wcsc.cpp @@ -176,6 +176,7 @@ int main(int argc, const char **argv) { v101.append(v69[i + 1]); // TODO... 待检验 v76 = v101.append("/app.wxss"); + i++; } } // main - 20 @@ -282,6 +283,10 @@ int main(int argc, const char **argv) { // TODO... // main - 35 + if (v77.find(v76) == v77.end()) + { + v77[v76] = ""; + } // main - 40 if (v36) diff --git a/src/wxss/css_tree_lib/lexical_checker.cpp b/src/wxss/css_tree_lib/lexical_checker.cpp index 101d690..b508fc4 100644 --- a/src/wxss/css_tree_lib/lexical_checker.cpp +++ b/src/wxss/css_tree_lib/lexical_checker.cpp @@ -278,13 +278,13 @@ namespace WXSS { continue; } - for (auto i = v13.begin(); i != v13.end(); i++) + for (auto j = v13.begin(); j != v13.end(); j++) { - if ((*i)->offset_0[0] == '$') + if ((*j)->offset_0[0] == '$') { - if (!strcmp((*i)->offset_0.data() + 1, "NAME")) + if (!strcmp((*j)->offset_0.data() + 1, "NAME")) { - std::string lit = (*i)->offset_24.GetLiteral(); + std::string lit = (*j)->offset_24.GetLiteral(); if (lit[0] == '.' || lit[0] == '@') { continue; @@ -308,7 +308,7 @@ namespace WXSS { // LABEL_32 auto v5 = a2->offset_156; - auto v10 = *i; + auto v10 = *j; *v5 = v10->offset_24; std::shared_ptr str(new std::string()); *str = a2->offset_148[0]; @@ -317,10 +317,10 @@ namespace WXSS } continue; } - if (!strcmp((*i)->offset_0.data() + 1,"ID")) + if (!strcmp((*j)->offset_0.data() + 1,"ID")) { auto v5 = a2->offset_156; - auto v10 = *i; + auto v10 = *j; *v5 = v10->offset_24; std::shared_ptr str(new std::string()); *str = a2->offset_148[0]; @@ -360,30 +360,32 @@ namespace WXSS else if (v14[0] == 'S' && !strcmp(v14.data() + 1, "ELECTOR")) { auto v13 = cur->offset_120; - if (v13.size() == 0) + if (v13.size() == 0) // todo: 这个if语句块应该能去掉 { continue; } - for (auto i = v13.begin(); i != v13.end(); i++) + for (auto j = v13.begin(); j != v13.end(); j++) { - if ((*i)->offset_0[0] == '$') + if ((*j)->offset_0[0] == '$') { - if (!strcmp((*i)->offset_0.data() + 1, "NAME")) + if (!strcmp((*j)->offset_0.data() + 1, "NAME")) { - std::string lit = (*i)->offset_24.GetLiteral(); + std::string lit = (*j)->offset_24.GetLiteral(); if (lit[0] == '.' || lit[0] == '@') { continue; } if (lit[0] == 'f') { - if (!strcmp(lit.data() + 1, "orm")) + // from + if (!strcmp(lit.data() + 1, "rom")) { continue; } } else if (lit[0] == 't') { + // to if (!strcmp(lit.data() + 1, "o")) { continue; @@ -394,7 +396,7 @@ namespace WXSS { // LABEL_32 auto v5 = a2->offset_156; - auto v10 = *i; + auto v10 = *j; *v5 = v10->offset_24; std::shared_ptr str(new std::string()); *str = a2->offset_148[0]; @@ -403,10 +405,10 @@ namespace WXSS } continue; } - if (!strcmp((*i)->offset_0.data() + 1,"ID")) + if (!strcmp((*j)->offset_0.data() + 1,"ID")) { auto v5 = a2->offset_156; - auto v10 = *i; + auto v10 = *j; *v5 = v10->offset_24; std::shared_ptr str(new std::string()); *str = a2->offset_148[0]; diff --git a/src/wxss/css_tree_lib/parser.cpp b/src/wxss/css_tree_lib/parser.cpp index fced719..11d18d3 100644 --- a/src/wxss/css_tree_lib/parser.cpp +++ b/src/wxss/css_tree_lib/parser.cpp @@ -65,6 +65,7 @@ namespace WXSS v9[1].assign(a5); std::shared_ptr v14(new WXSS::Token()); v14->offset_4.reset(new std::string()); + *v14->offset_4 = a3; v14->offset_12 = -1; // Parse - 20 diff --git a/test/spec/wcsc/ll/ll.spec1.ts b/test/spec/wcsc/ll/ll.spec.ts similarity index 98% rename from test/spec/wcsc/ll/ll.spec1.ts rename to test/spec/wcsc/ll/ll.spec.ts index b31be2d..2793fa9 100644 --- a/test/spec/wcsc/ll/ll.spec1.ts +++ b/test/spec/wcsc/ll/ll.spec.ts @@ -14,7 +14,7 @@ describe("wcsc", function () { it("主界面", async function () { const projectPath = path.resolve( __dirname, - "../../examples/miniprogram-demo/miniprogram" + "/mnt/d/Work/WeChatProjects/miniprogram-demo/miniprogram" ); const args: string[] = [ "-db", @@ -58,7 +58,7 @@ describe("wcsc", function () { it("接口-设置界面标题", async function () { const projectPath = path.resolve( __dirname, - "../../examples/miniprogram-demo/miniprogram/" + "/mnt/d/Work/WeChatProjects/miniprogram-demo/miniprogram/" ); const args = ["-db","-pc","74","./packageAPI/pages/api/login/login.wxss","./packageAPI/pages/api/get-user-info/get-user-info.wxss","./packageAPI/pages/api/request-payment/request-payment.wxss","./packageAPI/pages/api/jump/jump.wxss","./packageAPI/pages/api/share/share.wxss","./packageAPI/pages/api/share-button/share-button.wxss","./packageAPI/pages/api/custom-message/custom-message.wxss","./packageAPI/pages/api/subscribe-message/subscribe-message.wxss","./packageAPI/pages/api/choose-address/choose-address.wxss","./packageAPI/pages/api/choose-invoice-title/choose-invoice-title.wxss","./packageAPI/pages/api/soter-authentication/soter-authentication.wxss","./packageAPI/pages/api/setting/setting.wxss","./packageAPI/pages/ar/visionkit-basic/visionkit-basic.wxss","./packageAPI/pages/ar/plane-ar/plane-ar.wxss","./packageAPI/pages/ar/2dmarker-ar/2dmarker-ar.wxss","./packageAPI/pages/ar/osd-ar/osd-ar.wxss","./packageAPI/pages/page/set-navigation-bar-title/set-navigation-bar-title.wxss","./packageAPI/pages/page/navigation-bar-loading/navigation-bar-loading.wxss","./packageAPI/pages/page/navigator/navigator.wxss","./packageAPI/pages/page/pull-down-refresh/pull-down-refresh.wxss","./packageAPI/pages/page/animation/animation.wxss","./packageAPI/pages/page/action-sheet/action-sheet.wxss","./packageAPI/pages/page/modal/modal.wxss","./packageAPI/pages/page/toast/toast.wxss","./packageAPI/pages/page/canvas/canvas.wxss","./packageAPI/pages/page/get-wxml-node-info/get-wxml-node-info.wxss","./packageAPI/pages/page/page-scroll/page-scroll.wxss","./packageAPI/pages/page/intersection-observer/intersection-observer.wxss","./packageAPI/pages/device/clipboard-data/clipboard-data.wxss","./packageAPI/pages/device/bluetooth/bluetooth.wxss","./packageAPI/pages/device/bluetooth/slave/slave.wxss","./packageAPI/pages/device/screen-brightness/screen-brightness.wxss","./packageAPI/pages/device/vibrate/vibrate.wxss","./packageAPI/pages/device/add-contact/add-contact.wxss","./packageAPI/pages/device/wifi/wifi.wxss","./packageAPI/pages/device/get-network-type/get-network-type.wxss","./packageAPI/pages/device/on-network-status-change/on-network-status-change.wxss","./packageAPI/pages/device/get-system-info/get-system-info.wxss","./packageAPI/pages/device/on-compass-change/on-compass-change.wxss","./packageAPI/pages/device/make-phone-call/make-phone-call.wxss","./packageAPI/pages/device/scan-code/scan-code.wxss","./packageAPI/pages/device/on-accelerometer-change/on-accelerometer-change.wxss","./packageAPI/pages/device/capture-screen/capture-screen.wxss","./packageAPI/pages/device/ibeacon/ibeacon.wxss","./packageAPI/pages/device/get-battery-info/get-battery-info.wxss","./packageAPI/pages/media/image/image.wxss","./packageAPI/pages/media/voice/voice.wxss","./packageAPI/pages/media/file/file.wxss","./packageAPI/pages/media/load-font-face/load-font-face.wxss","./packageAPI/pages/media/background-audio/background-audio.wxss","./packageAPI/pages/media/video/video.wxss","./packageAPI/pages/media/audio/audio.wxss","./packageAPI/pages/media/media-container/media-container.wxss","./packageAPI/pages/location/get-location/get-location.wxss","./packageAPI/pages/location/open-location/open-location.wxss","./packageAPI/pages/location/choose-location/choose-location.wxss","./packageAPI/pages/network/request/request.wxss","./packageAPI/pages/network/web-socket/web-socket.wxss","./packageAPI/pages/network/upload-file/upload-file.wxss","./packageAPI/pages/network/download-file/download-file.wxss","./packageAPI/pages/network/mdns/mdns.wxss","./packageAPI/pages/network/udp-socket/udp-socket.wxss","./packageAPI/pages/storage/storage/storage.wxss","./packageAPI/pages/storage/get-background-fetch-data/get-background-fetch-data.wxss","./packageAPI/pages/storage/get-background-prefetch-data/get-background-prefetch-data.wxss","./packageAPI/pages/performance/get-performance/get-performance.wxss","./packageAPI/pages/worker/worker/worker.wxss","./packageAPI/pages/framework/two-way-bindings/two-way-bindings.wxss","./packageAPI/pages/framework/wxs/wxs.wxss","./packageAPI/pages/framework/resizable/resizable.wxss","./packageAPI/pages/framework/wxs/movable.wxss","./packageAPI/pages/framework/wxs/sidebar.wxss","./packageAPI/pages/framework/wxs/stick-top.wxss","./packageAPI/pages/framework/wxs/nearby.wxss","./app.wxss","./common/common-skyline.wxss","./common/reset.wxss","./common/lib/weui.wxss","./component/navigation-bar/navigation-bar.wxss","./components/navigation-bar/index.wxss","./components/page-scroll/index.wxss","./page/API/index.wxss","./page/API/components/set-tab-bar/set-tab-bar.wxss","./page/cloud/index.wxss","./page/common/index-skyline.wxss","./page/component/index.wxss","./page/extend/index.wxss","./miniprogram_npm/miniprogram-barrage/index.wxss","./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxss","./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxss","./miniprogram_npm/wxml-to-canvas/index.wxss","--subpackage","packageAPI","-ll"] const w = JSON.parse(await wine.wcsc(args, projectPath)); diff --git a/test/wcsc.disassembly.cpp b/test/wcsc.disassembly.cpp index fdc1409..dfe3adb 100644 --- a/test/wcsc.disassembly.cpp +++ b/test/wcsc.disassembly.cpp @@ -46104,10 +46104,10 @@ LABEL_38: goto LABEL_34; if ( v8 == 'f'/*102*/ ) { - v9 = strcmp(Strc + 1, (const char *)&off_50E044); + v9 = strcmp(Strc + 1, (const char *)&off_50E044); // orm LABEL_30: if ( !v9 ) - goto LABEL_34; + goto LABEL_34; // continue; } else if ( v8 == 't'/*116*/ ) { @@ -46144,7 +46144,7 @@ LABEL_39: std::string::basic_string(Strd, (int)lpuexcpta); zcc::shared_ptr::shared_ptr(Strd); std::__shared_ptr::operator=( - (volatile signed __int32 **)(*((_DWORD *)this + 39) + 4), // a2->offset_156 + (volatile signed __int32 **)(*((_DWORD *)this + 39) + 4), // a2->offset_156->offset_4 (volatile signed __int32 **)&v23); std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(v24); return 1; @@ -180447,6 +180447,7 @@ int __cdecl main(int argc, const char **argv, const char **envp) v14 = v46; goto LABEL_89; } + // 找v76 - app.wxss if ( (unsigned __int8)std::operator<((int)v76, (int)(v46 + 4)) ) { v14 = &v78; diff --git a/test/wcsc.sh b/test/wcsc.sh index 38cd699..1b68899 100644 --- a/test/wcsc.sh +++ b/test/wcsc.sh @@ -11,6 +11,6 @@ cd /mnt/d/Work/WeChatProjects/miniprogram-demo/miniprogram # /root/github/wx-compiler/build/wcc "--config-path" "/mnt/d/Work/disassembly/wcc-exec/wcc/config/$cmd.txt" > /root/github/wx-compiler/test/wcc_linux.json # /mnt/d/Work/disassembly/wcc-exec/wcc/wcc.exe "--config-path" "d:/Work/disassembly/wcc-exec/wcc/config/$cmd.txt" > /root/github/wx-compiler/test/wcc_win.json # done; -filename="ll1.txt" +filename="ll2.txt" /root/github/wx-compiler/build/wcsc "--config-path" "/mnt/d/Work/disassembly/wcc-exec/wcsc/config/$filename" > /root/github/wx-compiler/test/wcsc_linux.json /mnt/d/Work/disassembly/wcc-exec/wcsc/wcsc.exe "--config-path" "d:/Work/disassembly/wcc-exec/wcsc/config/$filename" > /root/github/wx-compiler/test/wcsc_win.json