fix: 逻辑错误

This commit is contained in:
msojocs 2023-12-24 15:58:15 +08:00
parent 3df049373a
commit 76434aa12a
11 changed files with 255 additions and 10 deletions

4
.vscode/launch.json vendored
View File

@ -12,10 +12,10 @@
"program": "${workspaceFolder}/build/wcc", "program": "${workspaceFolder}/build/wcc",
"args": [ "args": [
"\"--config-path\"", "\"--config-path\"",
"\"/mnt/d/Work/WeChatProjects/issue/97/wcc-cmd2.txt\"" "\"/home/msojocs/github/wx-compiler/test/spec/issue/102/case1.txt\""
], ],
"stopAtEntry": false, "stopAtEntry": false,
"cwd": "/mnt/d/Work/WeChatProjects/issue/97/ThorUI-applets-vip", "cwd": "/home/msojocs/github/wx-compiler/test/spec/issue/102/wxapp",
"environment": [], "environment": [],
"externalConsole": false, "externalConsole": false,
"MIMode": "gdb", "MIMode": "gdb",

View File

@ -57,18 +57,18 @@
"variant": "cpp" "variant": "cpp"
}, },
"cmake.debugConfig": { "cmake.debugConfig": {
"cwd": "/mnt/d/Work/WeChatProjects/issue/97/ThorUI-applets-vip", "cwd": "/home/msojocs/github/wx-compiler/test/spec/issue/102/wxapp",
"args": [ "args": [
"\"--config-path\"", "\"--config-path\"",
"\"/mnt/d/Work/WeChatProjects/issue/97/wcc-cmd2.txt\"" "\"/home/msojocs/github/wx-compiler/test/spec/issue/102/case1.txt\""
] ]
}, },
"cmake.configureSettings": { "cmake.configureSettings": {
"CMAKE_TOOLCHAIN_FILE": "/root/vcpkg/scripts/buildsystems/vcpkg.cmake" "CMAKE_TOOLCHAIN_FILE": "/home/msojocs/github/vcpkg/scripts/buildsystems/vcpkg.cmake"
}, },
"clangd.arguments": [ "clangd.arguments": [
"--background-index", "--background-index",
"--compile-commands-dir=${workspaceFolder}/build/" "--compile-commands-dir=${workspaceFolder}/build/"
], ],
"cmake.sourceDirectory": "/root/github/wx-compiler" "cmake.sourceDirectory": "/home/msojocs/github/wx-compiler"
} }

View File

@ -1510,6 +1510,7 @@ namespace WXML{
int v167 = v281->GetStrID(i->first); int v167 = v281->GetStrID(i->first);
v317 << v167 << "]]={f:" << v314 << ",j:[],i:[],ti:["; v317 << v167 << "]]={f:" << v314 << ",j:[],i:[],ti:[";
auto v171 = i->second->offset_72; auto v171 = i->second->offset_72;
bool isNeedComma = false;
for (int j = 0; j < v171.size(); j++) for (int j = 0; j < v171.size(); j++)
{ {
auto cur = v171[j]; auto cur = v171[j];
@ -1517,7 +1518,7 @@ namespace WXML{
{ {
if (cur->offset_48.find("src") != cur->offset_48.end()) if (cur->offset_48.find("src") != cur->offset_48.end())
{ {
if (j) if (isNeedComma)
{ {
v317 << ","; v317 << ",";
} }
@ -1526,10 +1527,12 @@ namespace WXML{
auto v173 = v172->second.ToAttrContent(); auto v173 = v172->second.ToAttrContent();
int v174 = v281->GetStrID(v173); int v174 = v281->GetStrID(v173);
v317 << v174 << "]"; v317 << v174 << "]";
isNeedComma = true;
} }
} }
} }
v317 << "],ic:["; v317 << "],ic:[";
isNeedComma = false;
for (int jj = 0; jj < i->second->offset_72.size(); jj++) for (int jj = 0; jj < i->second->offset_72.size(); jj++)
{ {
auto cur = i->second->offset_72[jj]; auto cur = i->second->offset_72[jj];
@ -1538,13 +1541,15 @@ namespace WXML{
auto src = cur->offset_48.find("src"); auto src = cur->offset_48.find("src");
if (src != cur->offset_48.end()) if (src != cur->offset_48.end())
{ {
if (jj) if (isNeedComma)
{ {
v317 << ","; v317 << ",";
} }
v317 << "x[";
auto v178 = src->second.ToAttrContent(); auto v178 = src->second.ToAttrContent();
int v179 = v281->GetStrID(v178); int v179 = v281->GetStrID(v178);
v317 << v179 << "]"; v317 << v179 << "]";
isNeedComma = true;
} }
} }
} }

View File

@ -254,12 +254,13 @@ namespace WXML
if ( v5 <= 'Z'/*90*/ ) if ( v5 <= 'Z'/*90*/ )
continue; continue;
if ( v5 != '_' ) if ( v5 != '_' )
return 0; return false;
continue;
} }
if ( v5 <= '/'/*47*/ ) if ( v5 <= '/'/*47*/ )
{ {
if ( v5 != '$' ) if ( v5 != '$' )
return 0; return false;
continue; continue;
} }
v6 = v5 <= '9'/*57*/; v6 = v5 <= '9'/*57*/;

1
test/spec/issue/102/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
wxapp

View File

@ -0,0 +1,150 @@
-ds
-d
--split
>_<4815
-xc
74>_<4815./friendcoupon/index.wxml>_<48150>_<4815./pages/auth/index.wxml>_<48150>_<4815./pages/creditshop/comment/index.wxml>_<48150>_<4815./pages/creditshop/create/index.wxml>_<48150>_<4815./pages/creditshop/creditlog/index.wxml>_<48150>_<4815./pages/creditshop/detail/index.wxml>_<48150>_<4815./pages/creditshop/express/index.wxml>_<48150>_<4815./pages/creditshop/index.wxml>_<48150>_<4815./pages/creditshop/lists/index.wxml>_<48150>_<4815./pages/creditshop/log/detail/index.wxml>_<48150>_<4815./pages/creditshop/log/index.wxml>_<48150>_<4815./pages/creditshop/verify/index.wxml>_<48150>_<4815./pages/custom/index.wxml>_<48150>_<4815./pages/goods/detail/index.wxml>_<48151>_<4815share-button>_<4815./pages/goods/index/index.wxml>_<48150>_<4815./pages/goods/package/detail/index.wxml>_<48150>_<4815./pages/goods/package/index.wxml>_<48150>_<4815./pages/goods/poster/poster.wxml>_<48150>_<4815./pages/goods/region/index.wxml>_<48150>_<4815./pages/index/index.wxml>_<48150>_<4815./pages/login/privacy_agreement/privacy_agreement.wxml>_<48150>_<4815./pages/login/user_terms/user_terms.wxml>_<48150>_<4815./pages/map/index.wxml>_<48150>_<4815./pages/member/address/index.wxml>_<48150>_<4815./pages/member/address/post.wxml>_<48150>_<4815./pages/member/address/select.wxml>_<48150>_<4815./pages/member/bind/index.wxml>_<48150>_<4815./pages/member/cart/index.wxml>_<48150>_<4815./pages/member/favorite/index.wxml>_<48150>_<4815./pages/member/history/index.wxml>_<48150>_<4815./pages/member/index/index.wxml>_<48150>_<4815./pages/member/info/index.wxml>_<48150>_<4815./pages/member/log/index.wxml>_<48150>_<4815./pages/member/membercard/detail/index.wxml>_<48150>_<4815./pages/member/membercard/index.wxml>_<48150>_<4815./pages/member/membercard/pay/index.wxml>_<48150>_<4815./pages/member/middlejump/middlejump.wxml>_<48150>_<4815./pages/member/recharge/index.wxml>_<48150>_<4815./pages/member/withdraw/index.wxml>_<48150>_<4815./pages/message/auth/index.wxml>_<48150>_<4815./pages/order/comment/index.wxml>_<48150>_<4815./pages/order/create/index.wxml>_<48150>_<4815./pages/order/cycle/address.wxml>_<48150>_<4815./pages/order/cycle/index.wxml>_<48150>_<4815./pages/order/cycle/order.wxml>_<48150>_<4815./pages/order/detail/index.wxml>_<48150>_<4815./pages/order/express/index.wxml>_<48150>_<4815./pages/order/express/number.wxml>_<48150>_<4815./pages/order/index.wxml>_<48150>_<4815./pages/order/pay/coupons/coupons.wxml>_<48150>_<4815./pages/order/pay/index.wxml>_<48150>_<4815./pages/order/pay/share/share.wxml>_<48150>_<4815./pages/order/refund/index.wxml>_<48150>_<4815./pages/order/singlerefund/index.wxml>_<48150>_<4815./pages/order/store/index.wxml>_<48150>_<4815./pages/order/store/map.wxml>_<48150>_<4815./pages/public/coupon/index.wxml>_<48150>_<4815./pages/quickbuy/index.wxml>_<48150>_<4815./pages/sale/coupon/detail/index.wxml>_<48150>_<4815./pages/sale/coupon/index/index.wxml>_<48150>_<4815./pages/sale/coupon/my/detail/index.wxml>_<48150>_<4815./pages/sale/coupon/my/index/index.wxml>_<48150>_<4815./pages/sale/coupon/my/list/index.wxml>_<48150>_<4815./pages/sale/coupon/my/showcoupons2/index.wxml>_<48150>_<4815./pages/shop/caregory/index.wxml>_<48150>_<4815./pages/shop/notice/detail/detail.wxml>_<48150>_<4815./pages/shop/notice/index/index.wxml>_<48150>_<4815./pages/transfer/bargain/index.wxml>_<48150>_<4815./pages/transfer/commission/index.wxml>_<48150>_<4815./pages/transfer/groups/index.wxml>_<48150>_<4815./pages/transfer/seckill/index.wxml>_<48150>_<4815./pages/verifygoods/detail/index.wxml>_<48150>_<4815./pages/verifygoods/index.wxml>_<48150>_<4815./pages/web/index.wxml>_<48150
./friendcoupon/index.wxml
./pages/auth/index.wxml
./pages/common/act-picker.wxml
./pages/common/city-picker.wxml
./pages/common/copyright.wxml
./pages/common/coupon-picker.wxml
./pages/common/diyform.wxml
./pages/common/diyform_view.wxml
./pages/common/gift-picker.wxml
./pages/common/goods-picker.wxml
./pages/common/menu.wxml
./pages/creditshop/comment/index.wxml
./pages/creditshop/create/index.wxml
./pages/creditshop/creditlog/index.wxml
./pages/creditshop/detail/index.wxml
./pages/creditshop/express/index.wxml
./pages/creditshop/index.wxml
./pages/creditshop/lists/index.wxml
./pages/creditshop/log/detail/index.wxml
./pages/creditshop/log/index.wxml
./pages/creditshop/verify/index.wxml
./pages/custom/index.wxml
./pages/date/date.wxml
./pages/diy/index.wxml
./pages/diy/template/tpl.wxml
./pages/diy/template/tpl_audio.wxml
./pages/diy/template/tpl_banner.wxml
./pages/diy/template/tpl_bindmobile.wxml
./pages/diy/template/tpl_blank.wxml
./pages/diy/template/tpl_copyright.wxml
./pages/diy/template/tpl_coupon.wxml
./pages/diy/template/tpl_detail_buyshow.wxml
./pages/diy/template/tpl_detail_comment.wxml
./pages/diy/template/tpl_detail_info.wxml
./pages/diy/template/tpl_detail_navbar.wxml
./pages/diy/template/tpl_detail_package.wxml
./pages/diy/template/tpl_detail_sale.wxml
./pages/diy/template/tpl_detail_seckill.wxml
./pages/diy/template/tpl_detail_shop.wxml
./pages/diy/template/tpl_detail_spec.wxml
./pages/diy/template/tpl_detail_swipe.wxml
./pages/diy/template/tpl_fixedsearch.wxml
./pages/diy/template/tpl_goods.wxml
./pages/diy/template/tpl_groupsgoods.wxml
./pages/diy/template/tpl_icongroup.wxml
./pages/diy/template/tpl_line.wxml
./pages/diy/template/tpl_listmenu.wxml
./pages/diy/template/tpl_memberhead.wxml
./pages/diy/template/tpl_menu.wxml
./pages/diy/template/tpl_menu2.wxml
./pages/diy/template/tpl_merchgroup.wxml
./pages/diy/template/tpl_notice.wxml
./pages/diy/template/tpl_picture.wxml
./pages/diy/template/tpl_pictures.wxml
./pages/diy/template/tpl_picturew.wxml
./pages/diy/template/tpl_richtext.wxml
./pages/diy/template/tpl_search.wxml
./pages/diy/template/tpl_seckill_advs.wxml
./pages/diy/template/tpl_seckill_list.wxml
./pages/diy/template/tpl_seckill_rooms.wxml
./pages/diy/template/tpl_seckill_times.wxml
./pages/diy/template/tpl_seckillgroup.wxml
./pages/diy/template/tpl_tabbar.wxml
./pages/diy/template/tpl_tabbarlist.wxml
./pages/diy/template/tpl_tablist.wxml
./pages/diy/template/tpl_title.wxml
./pages/diy/template/tpl_topmenu.wxml
./pages/diy/template/tpl_verifygoods.wxml
./pages/diy/template/tpl_video.wxml
./pages/goods/detail/index.wxml
./pages/goods/index/index.wxml
./pages/goods/package/detail/index.wxml
./pages/goods/package/index.wxml
./pages/goods/poster/poster.wxml
./pages/goods/region/index.wxml
./pages/index/adv.wxml
./pages/index/adver.wxml
./pages/index/banner.wxml
./pages/index/coupontips.wxml
./pages/index/cube.wxml
./pages/index/index.wxml
./pages/index/nav.wxml
./pages/index/notice.wxml
./pages/index/recommand.wxml
./pages/index/search.wxml
./pages/login/privacy_agreement/privacy_agreement.wxml
./pages/login/user_terms/user_terms.wxml
./pages/map/index.wxml
./pages/member/address/index.wxml
./pages/member/address/post.wxml
./pages/member/address/select.wxml
./pages/member/bind/index.wxml
./pages/member/cart/index.wxml
./pages/member/favorite/index.wxml
./pages/member/history/index.wxml
./pages/member/index/index.wxml
./pages/member/info/index.wxml
./pages/member/log/index.wxml
./pages/member/membercard/detail/index.wxml
./pages/member/membercard/index.wxml
./pages/member/membercard/pay/index.wxml
./pages/member/middlejump/middlejump.wxml
./pages/member/recharge/index.wxml
./pages/member/withdraw/index.wxml
./pages/message/auth/index.wxml
./pages/order/comment/index.wxml
./pages/order/create/index.wxml
./pages/order/cycle/address.wxml
./pages/order/cycle/index.wxml
./pages/order/cycle/order.wxml
./pages/order/detail/index.wxml
./pages/order/express/index.wxml
./pages/order/express/number.wxml
./pages/order/index.wxml
./pages/order/pay/coupons/coupons.wxml
./pages/order/pay/index.wxml
./pages/order/pay/share/share.wxml
./pages/order/public/verify.wxml
./pages/order/refund/index.wxml
./pages/order/singlerefund/index.wxml
./pages/order/store/index.wxml
./pages/order/store/map.wxml
./pages/public/coupon/index.wxml
./pages/quickbuy/index.wxml
./pages/sale/coupon/detail/index.wxml
./pages/sale/coupon/index/index.wxml
./pages/sale/coupon/my/detail/index.wxml
./pages/sale/coupon/my/index/index.wxml
./pages/sale/coupon/my/list/index.wxml
./pages/sale/coupon/my/showcoupons2/index.wxml
./pages/shop/caregory/index.wxml
./pages/shop/notice/detail/detail.wxml
./pages/shop/notice/index/index.wxml
./pages/transfer/bargain/index.wxml
./pages/transfer/commission/index.wxml
./pages/transfer/groups/index.wxml
./pages/transfer/seckill/index.wxml
./pages/verifygoods/detail/index.wxml
./pages/verifygoods/index.wxml
./pages/web/index.wxml
./utils/wxParse/wxParse.wxml
./utils/price.wxs
-gn
$gwx

File diff suppressed because one or more lines are too long

5
test/spec/issue/102/prepare.sh Executable file
View File

@ -0,0 +1,5 @@
#! /bin/bash
dir=$(cd `dirname $0` && pwd -P)
tar -zxf $dir/wxapp.tar.gz -C $dir

Binary file not shown.

15
test/spec/issue/prepare.sh Executable file
View File

@ -0,0 +1,15 @@
#! /bin/bash
test_dir=$(cd `dirname $0`/../.. && pwd -P)
project_dir="$test_dir/spec/issue"
cd "$project_dir"
echo "prepare for ${project_dir}"
for dir in "$project_dir"/*; do
if [ -d "$dir" ]; then
if [ -f "$dir/prepare.sh" ]; then
"$dir/prepare.sh"
fi
fi
done

View File

@ -3,6 +3,7 @@
set -e set -e
test_dir=$(cd `dirname $0`/.. && pwd -P) test_dir=$(cd `dirname $0`/.. && pwd -P)
"$test_dir/spec/issue/prepare.sh"
project_dir="$test_dir/projects" project_dir="$test_dir/projects"
for dir in "$project_dir"/*; do for dir in "$project_dir"/*; do