feat: 添加一些方法

This commit is contained in:
msojocs 2023-08-06 20:11:11 +08:00
parent 4e5a379569
commit 349ff43767
3 changed files with 63 additions and 10 deletions

View File

@ -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

View File

@ -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;
}
} }

View File

@ -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);
} }