feat: IsValidVariableName

This commit is contained in:
msojocs 2023-06-21 15:51:09 +08:00
parent 4b76c60f45
commit 00d7fb6fb0
2 changed files with 45 additions and 0 deletions

View File

@ -108,6 +108,10 @@ namespace WXML
* string
*/
std::string ToAttrContent();
/**
*
*/
bool IsValidVariableName(std::string const&);
bool IsMatch(char const*);
/**

View File

@ -78,6 +78,47 @@ namespace WXML
{
return "";
}
bool Token::IsValidVariableName(std::string const& a1)
{
char v1 = a1[0];
int v2;
if ( v1 == '_'/*95*/ || v1 == '$'/*36*/ || (v2 = (v1 & 0xDF) - 'A'/*65*/, v2 <= 0x19u) ) // 0x19u 25
{
for (int i = 0; ; i++)
{
if (a1.length() <= i)
return true;
char v5 = a1[i];
int v6;
if ( v5 <= '`'/*96*/ )
{
if ( v5 > '@'/*64*/ )
{
if ( v5 <= 'Z'/*90*/ )
continue;
if ( v5 != '_' )
return 0;
}
if ( v5 <= '/'/*47*/ )
{
if ( v5 != '$' )
return 0;
continue;
}
v6 = v5 <= '9'/*57*/;
}
else
{
v6 = v5 <= 'z'/*122*/;
}
if ( !v6 )
return false;
}
}
return false;
}
std::string Token::ToString()
{
std::string v4 = this->offset_32;