mirror of
https://github.com/msojocs/wx-compiler.git
synced 2025-07-19 00:00:04 +08:00
feat: 添加一些方法
This commit is contained in:
parent
4e5a379569
commit
349ff43767
@ -14,9 +14,11 @@ namespace WXSS
|
|||||||
int NewLintAndParseCSSList(std::map<std::string,std::string> const&, std::vector<std::string> &, std::string&, std::string&, int, bool, std::string const&, std::string const&);
|
int NewLintAndParseCSSList(std::map<std::string,std::string> const&, std::vector<std::string> &, std::string&, std::string&, int, bool, std::string const&, std::string const&);
|
||||||
int LintAndParseCSSList(std::map<std::string,std::string> const&, std::string&, std::string&, std::string&, int, bool, bool, bool, std::string const&);
|
int LintAndParseCSSList(std::map<std::string,std::string> const&, std::string&, std::string&, std::string&, int, bool, bool, bool, std::string const&);
|
||||||
void LintAndParseCSS(std::string const&, std::string const&, std::string&, std::string&, bool, bool, bool, bool, std::string const&);
|
void LintAndParseCSS(std::string const&, std::string const&, std::string&, std::string&, bool, bool, bool, bool, std::string const&);
|
||||||
enum TokenType {
|
// enum TokenType {
|
||||||
A,
|
// A,
|
||||||
};
|
// };
|
||||||
|
using TokenType = int;
|
||||||
|
|
||||||
class Token
|
class Token
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
@ -37,11 +39,7 @@ namespace WXSS
|
|||||||
private:
|
private:
|
||||||
/* data */
|
/* data */
|
||||||
public:
|
public:
|
||||||
struct STATE
|
using STATE = int;
|
||||||
{
|
|
||||||
/* data */
|
|
||||||
};
|
|
||||||
|
|
||||||
static int TT[26113];
|
static int TT[26113];
|
||||||
static bool bInited;
|
static bool bInited;
|
||||||
std::string offset_0;
|
std::string offset_0;
|
||||||
@ -53,6 +51,23 @@ namespace WXSS
|
|||||||
void InitSubStrCheckingCaluseTable(void);
|
void InitSubStrCheckingCaluseTable(void);
|
||||||
WXSS::TokenType TryGetAnotherTypeByAnySubStr(char const*, uint, WXSS::Tokenizer::STATE, WXSS::TokenType);
|
WXSS::TokenType TryGetAnotherTypeByAnySubStr(char const*, uint, WXSS::Tokenizer::STATE, WXSS::TokenType);
|
||||||
int GetTokens(std::vector<WXSS::Token> &, std::string &, int);
|
int GetTokens(std::vector<WXSS::Token> &, std::string &, int);
|
||||||
|
class SubStrCheckingClause
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
/* data */
|
||||||
|
public:
|
||||||
|
static bool inited;
|
||||||
|
WXSS::Tokenizer::STATE offset_0;
|
||||||
|
int offset_4 = 0;
|
||||||
|
char offset_8[16];
|
||||||
|
WXSS::TokenType offset_24;
|
||||||
|
SubStrCheckingClause();
|
||||||
|
SubStrCheckingClause(WXSS::Tokenizer::STATE, char const*, WXSS::TokenType);
|
||||||
|
SubStrCheckingClause& operator=(SubStrCheckingClause const &);
|
||||||
|
};
|
||||||
|
static SubStrCheckingClause SCC[5];
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
namespace CSSTreeLib
|
namespace CSSTreeLib
|
||||||
|
@ -275,10 +275,26 @@ namespace WXSS
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool WXSS::Tokenizer::SubStrCheckingClause::inited = false;
|
||||||
|
WXSS::Tokenizer::SubStrCheckingClause WXSS::Tokenizer::SCC[5];
|
||||||
void Tokenizer::InitSubStrCheckingCaluseTable()
|
void Tokenizer::InitSubStrCheckingCaluseTable()
|
||||||
{
|
{
|
||||||
|
if (!SubStrCheckingClause::inited)
|
||||||
|
{
|
||||||
|
SubStrCheckingClause::inited = true;
|
||||||
|
SubStrCheckingClause v1(9, "url", 9);
|
||||||
|
WXSS::Tokenizer::SCC[0] = v1;
|
||||||
|
SubStrCheckingClause v2(9, "rpx", 9);
|
||||||
|
WXSS::Tokenizer::SCC[1] = v2;
|
||||||
|
SubStrCheckingClause v3(10, "url", 9);
|
||||||
|
WXSS::Tokenizer::SCC[2] = v3;
|
||||||
|
SubStrCheckingClause v4(10, "rpx", 9);
|
||||||
|
WXSS::Tokenizer::SCC[3] = v4;
|
||||||
|
SubStrCheckingClause v5(0, "", 0);
|
||||||
|
WXSS::Tokenizer::SCC[4] = v5;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int Tokenizer::GetTokens(std::vector<WXSS::Token> & a2, std::string & a3, int a4)
|
int Tokenizer::GetTokens(std::vector<WXSS::Token> & a2, std::string & a3, int a4)
|
||||||
{
|
{
|
||||||
// GetTokens - 0
|
// GetTokens - 0
|
||||||
@ -314,7 +330,7 @@ namespace WXSS
|
|||||||
v10 = 0;
|
v10 = 0;
|
||||||
}
|
}
|
||||||
int v11 = this->TT[1024 * v4 + 2 * 10];
|
int v11 = this->TT[1024 * v4 + 2 * 10];
|
||||||
WXSS::TokenType AnotherTypeByAnySubStr = A;
|
// WXSS::TokenType AnotherTypeByAnySubStr;
|
||||||
// AnotherTypeByAnySubStr = this->TryGetAnotherTypeByAnySubStr(this->offset_0.data(), v47, v42, AnotherTypeByAnySubStr);
|
// AnotherTypeByAnySubStr = this->TryGetAnotherTypeByAnySubStr(this->offset_0.data(), v47, v42, AnotherTypeByAnySubStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -329,4 +345,22 @@ namespace WXSS
|
|||||||
a3 = v66.str();
|
a3 = v66.str();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Tokenizer::SubStrCheckingClause::SubStrCheckingClause()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
Tokenizer::SubStrCheckingClause::SubStrCheckingClause(WXSS::Tokenizer::STATE a2, char const* a3, WXSS::TokenType a4)
|
||||||
|
{
|
||||||
|
this->offset_0 = a2;
|
||||||
|
this->offset_4 = strlen(a3);
|
||||||
|
strcpy(this->offset_8, a3);
|
||||||
|
this->offset_24 = a4;
|
||||||
|
}
|
||||||
|
Tokenizer::SubStrCheckingClause& Tokenizer::SubStrCheckingClause::operator=(SubStrCheckingClause const & t)
|
||||||
|
{
|
||||||
|
this->offset_0 = t.offset_0;
|
||||||
|
this->offset_4 = t.offset_4;
|
||||||
|
memcpy(this->offset_8, t.offset_8, 16);
|
||||||
|
this->offset_24 = t.offset_24;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
}
|
}
|
@ -12271,14 +12271,18 @@ int WXSS::Tokenizer::InitSubStrCheckingCaluseTable()
|
|||||||
if ( !WXSS::Tokenizer::InitSubStrCheckingCaluseTable(void)::inited )
|
if ( !WXSS::Tokenizer::InitSubStrCheckingCaluseTable(void)::inited )
|
||||||
{
|
{
|
||||||
WXSS::Tokenizer::InitSubStrCheckingCaluseTable(void)::inited = 1;
|
WXSS::Tokenizer::InitSubStrCheckingCaluseTable(void)::inited = 1;
|
||||||
|
// url
|
||||||
WXSS::Tokenizer::SubStrCheckingClause::SubStrCheckingClause(v1, 9, (char *)Source, 9);
|
WXSS::Tokenizer::SubStrCheckingClause::SubStrCheckingClause(v1, 9, (char *)Source, 9);
|
||||||
qmemcpy(&WXSS::Tokenizer::SCC, v1, 0x1Cu);
|
qmemcpy(&WXSS::Tokenizer::SCC, v1, 0x1Cu);
|
||||||
|
// "rpx"
|
||||||
WXSS::Tokenizer::SubStrCheckingClause::SubStrCheckingClause(v1, 9, (char *)off_50F508, 9);
|
WXSS::Tokenizer::SubStrCheckingClause::SubStrCheckingClause(v1, 9, (char *)off_50F508, 9);
|
||||||
qmemcpy((char *)&WXSS::Tokenizer::SCC + 28, v1, 0x1Cu);
|
qmemcpy((char *)&WXSS::Tokenizer::SCC + 28, v1, 0x1Cu);
|
||||||
WXSS::Tokenizer::SubStrCheckingClause::SubStrCheckingClause(v1, 10, (char *)Source, 9);
|
WXSS::Tokenizer::SubStrCheckingClause::SubStrCheckingClause(v1, 10, (char *)Source, 9);
|
||||||
qmemcpy((char *)&WXSS::Tokenizer::SCC + 56, v1, 0x1Cu);
|
qmemcpy((char *)&WXSS::Tokenizer::SCC + 56, v1, 0x1Cu);
|
||||||
|
// "rpx"
|
||||||
WXSS::Tokenizer::SubStrCheckingClause::SubStrCheckingClause(v1, 10, (char *)off_50F508, 9);
|
WXSS::Tokenizer::SubStrCheckingClause::SubStrCheckingClause(v1, 10, (char *)off_50F508, 9);
|
||||||
qmemcpy((char *)&WXSS::Tokenizer::SCC + 84, v1, 0x1Cu);
|
qmemcpy((char *)&WXSS::Tokenizer::SCC + 84, v1, 0x1Cu);
|
||||||
|
// "\0"
|
||||||
result = WXSS::Tokenizer::SubStrCheckingClause::SubStrCheckingClause(v1, 0, (char *)&byte_50F50C, 0);
|
result = WXSS::Tokenizer::SubStrCheckingClause::SubStrCheckingClause(v1, 0, (char *)&byte_50F50C, 0);
|
||||||
qmemcpy((char *)&WXSS::Tokenizer::SCC + 112, v1, 0x1Cu);
|
qmemcpy((char *)&WXSS::Tokenizer::SCC + 112, v1, 0x1Cu);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user