mirror of
https://github.com/msojocs/wx-compiler.git
synced 2025-07-19 00:00:04 +08:00
fix: IfHasItsElse
This commit is contained in:
parent
c264fc0d06
commit
6513e930c9
@ -92,7 +92,7 @@ namespace WXML
|
||||
int offset_24 = 0; // ???
|
||||
int offset_40 = 0; // AttrsCompartor用到,怎么来不知道
|
||||
// ??? -3, -1
|
||||
int offset_56 = 1;
|
||||
int offset_56 = -1;
|
||||
std::string offset_60 = ""; // ???
|
||||
Token();
|
||||
Token(std::string &);
|
||||
@ -236,9 +236,9 @@ namespace WXML
|
||||
private:
|
||||
/* data */
|
||||
public:
|
||||
std::string offset_0;
|
||||
int offset_4;
|
||||
RVMOpCodePosition(std::string);
|
||||
int offset_0 = 0;
|
||||
int offset_4 = 0;
|
||||
RVMOpCodePosition(int);
|
||||
RVMOpCodePosition(/* args */);
|
||||
~RVMOpCodePosition();
|
||||
};
|
||||
|
@ -329,7 +329,8 @@ namespace WXML{
|
||||
i->second->RewriteTree();
|
||||
std::string v328 = "ALL";
|
||||
auto v51 = componentListMap[v328];
|
||||
auto v282 = i->second;
|
||||
std::shared_ptr<WXML::DOMLib::WXMLDom> v282 = i->second;
|
||||
// 标记如果有后代
|
||||
v282->MarkIfHasDescendant(v51);
|
||||
if (isLLA)
|
||||
{
|
||||
|
@ -389,6 +389,7 @@ namespace WXML
|
||||
this->offset_20 = this->lineLength;
|
||||
this->offset_16 = this->lineCount;
|
||||
token.offset_24 = WXML::DOMLib::Machine::STT[v45];
|
||||
token.offset_56 = -1;
|
||||
if(token.offset_24 == 3)
|
||||
{
|
||||
a5.push_back(token);
|
||||
@ -416,6 +417,7 @@ namespace WXML
|
||||
v49.offset_20 = this->fileLength - t4;
|
||||
int stt = WXML::DOMLib::Machine::STT[v45];
|
||||
v49.offset_24 = stt;
|
||||
v49.offset_56 = -1;
|
||||
if (stt == 3)
|
||||
{
|
||||
a5.push_back(v49);
|
||||
|
@ -2,12 +2,8 @@
|
||||
namespace WXML
|
||||
{
|
||||
namespace DOMLib
|
||||
{
|
||||
/**
|
||||
* 感觉不太对,可能不是一个类
|
||||
*/
|
||||
|
||||
RVMOpCodePosition::RVMOpCodePosition(std::string a)
|
||||
{
|
||||
RVMOpCodePosition::RVMOpCodePosition(int a)
|
||||
{
|
||||
this->offset_0 = a;
|
||||
}
|
||||
|
@ -104,7 +104,7 @@ namespace WXML {
|
||||
v52 = 0;
|
||||
if (v77.size() == 1)
|
||||
{
|
||||
v52 = a8 & v77[0].offset_0 == true;
|
||||
v52 = a8 & (v77[0].offset_0 == true);
|
||||
}
|
||||
}
|
||||
a3 << "Z(";
|
||||
@ -163,13 +163,15 @@ namespace WXML {
|
||||
WXML::Rewrite::ToStringCode(r, a3);
|
||||
a3 << "']";
|
||||
}
|
||||
int v68 = a9->offset_0;
|
||||
int v43 = -1;
|
||||
if (v52)
|
||||
{
|
||||
v43 = a9->offset_4;
|
||||
}
|
||||
WXML::DOMLib::RVMOpCodePosition pos;
|
||||
pos.offset_4 = -1;
|
||||
pos.offset_0 = a9->offset_0;
|
||||
pos.offset_4 = v43;
|
||||
v80.push_back({v29, pos});
|
||||
}
|
||||
else
|
||||
@ -213,6 +215,7 @@ namespace WXML {
|
||||
a3 << "]";
|
||||
if (a5->offset_56 == -1)
|
||||
a5->offset_56 = a9->offset_0;
|
||||
a9->offset_4 = 0;
|
||||
a9->offset_0++;
|
||||
for (auto i = v80.begin(); i != v80.end(); i++)
|
||||
{
|
||||
@ -1599,9 +1602,6 @@ namespace WXML {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*/
|
||||
bool WXMLDom::IfHasItsElse(
|
||||
int a2,
|
||||
std::vector<std::string> const& a3
|
||||
@ -1623,7 +1623,7 @@ namespace WXML {
|
||||
{
|
||||
int v11 = a2 - 1;
|
||||
auto v5 = this->offset_72[a2];
|
||||
if(v5->offset_48.begin() == v5->offset_48.end())
|
||||
if(v5->offset_72.begin() == v5->offset_72.end())
|
||||
{
|
||||
for (int i = a2 + 1; i < this->offset_72.size(); i++)
|
||||
{
|
||||
|
@ -23979,6 +23979,8 @@ int __cdecl WXML::DOMLib::WXMLDom::DealSingleTokenToOps(
|
||||
std::string::append(v83, v46); // v28
|
||||
v57 = (_DWORD *)a4[2];
|
||||
v63 = a4 + 1;
|
||||
|
||||
// find
|
||||
while ( v57 )
|
||||
{
|
||||
v30 = (unsigned __int8)std::operator<<char>((int)(v57 + 4), (int)v83) == 0;
|
||||
@ -23993,6 +23995,7 @@ int __cdecl WXML::DOMLib::WXMLDom::DealSingleTokenToOps(
|
||||
v57 = v32;
|
||||
v63 = v31;
|
||||
}
|
||||
|
||||
if ( a4 + 1 == v63 || (unsigned __int8)std::operator<<char>((int)v83, (int)(v63 + 4)) )
|
||||
{
|
||||
if ( *(_DWORD *)(*(_DWORD *)&v77[1] + 28 * v51) )
|
||||
@ -24145,6 +24148,7 @@ LABEL_107:
|
||||
if ( v52 )
|
||||
std::operator<<<std::char_traits<char>>(lpuexcptd, "]");
|
||||
v35 = *a9;
|
||||
// a5->offset_56
|
||||
if ( a5[14] == -1 )
|
||||
a5[14] = v35;
|
||||
v67 = 0;
|
||||
@ -27380,7 +27384,14 @@ LABEL_12:
|
||||
v29 = WXML::DOMLib::Machine::STT[v45];
|
||||
// v53 -> v49.offset_16 = this->offset_4 修改之前的
|
||||
v53 = v23;
|
||||
v60 = -1;
|
||||
v60 = -1; // offset_56
|
||||
/*
|
||||
v49 offset_0
|
||||
|
||||
v50
|
||||
|
||||
v60 offset_56
|
||||
*/
|
||||
// v55 -> v49.offset_24
|
||||
v55 = v29;
|
||||
if ( v29 == 3 )
|
||||
@ -53070,7 +53081,7 @@ char __thiscall WXML::DOMLib::WXMLDom::IfHasItsElse(_DWORD *this, signed int a2,
|
||||
std::string::_M_dispose(v23);
|
||||
if ( !v18 )
|
||||
break;
|
||||
v12 = a3[1]; // a3.offset_4
|
||||
v12 = a3[1]; // a3.end()
|
||||
if ( v12 != std::find<__gnu_cxx::__normal_iterator<std::string const*,std::vector<std::string>>,std::string>(
|
||||
*a3, // start
|
||||
v12, // end
|
||||
|
Loading…
x
Reference in New Issue
Block a user