mirror of
https://github.com/Ed94/gencpp.git
synced 2024-12-22 15:54:45 -08:00
Adjustment to AST::is_equal based on issues found with last CS.
Defined check_member_content, will spit out the strings if they aren't equivalent so the user can verify for themselves if its correct.
This commit is contained in:
parent
9b6dc3cbd8
commit
abf51e4aa9
@ -1005,6 +1005,25 @@ bool AST::is_equal( AST* other )
|
|||||||
return false; \
|
return false; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define check_member_content( content ) \
|
||||||
|
if ( content != other->content ) \
|
||||||
|
{ \
|
||||||
|
log_fmt("AST::is_equal: Member content - "#content " failed\n" \
|
||||||
|
"AST : %S\n" \
|
||||||
|
"Other: %S\n" \
|
||||||
|
, debug_str() \
|
||||||
|
, other->debug_str() \
|
||||||
|
); \
|
||||||
|
\
|
||||||
|
log_fmt("Content cannot be trusted to be unique with this check " \
|
||||||
|
"so it must be verified by eye for now\n" \
|
||||||
|
"AST Content:\n%S\n" \
|
||||||
|
"Other Content:\n%S\n" \
|
||||||
|
, content \
|
||||||
|
, other->content \
|
||||||
|
); \
|
||||||
|
}
|
||||||
|
|
||||||
#define check_member_ast( ast ) \
|
#define check_member_ast( ast ) \
|
||||||
if ( ast ) \
|
if ( ast ) \
|
||||||
{ \
|
{ \
|
||||||
@ -1039,12 +1058,6 @@ bool AST::is_equal( AST* other )
|
|||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
// Need to check to make sure the prev->is_equal wont lead to a recursion.
|
|
||||||
// #define check_member_prev() \
|
|
||||||
// if ( Prev ) \
|
|
||||||
// { \
|
|
||||||
|
|
||||||
|
|
||||||
case NewLine:
|
case NewLine:
|
||||||
case Access_Public:
|
case Access_Public:
|
||||||
case Access_Protected:
|
case Access_Protected:
|
||||||
@ -1058,7 +1071,7 @@ bool AST::is_equal( AST* other )
|
|||||||
case PlatformAttributes:
|
case PlatformAttributes:
|
||||||
case Untyped:
|
case Untyped:
|
||||||
{
|
{
|
||||||
check_member_str( Content );
|
check_member_content( Content );
|
||||||
// check_member_ast( Prev );
|
// check_member_ast( Prev );
|
||||||
// check_member_ast( Next );
|
// check_member_ast( Next );
|
||||||
}
|
}
|
||||||
@ -1340,7 +1353,7 @@ bool AST::is_equal( AST* other )
|
|||||||
case Preprocess_Define:
|
case Preprocess_Define:
|
||||||
{
|
{
|
||||||
check_member_str( Name );
|
check_member_str( Name );
|
||||||
check_member_str( Content );
|
check_member_content( Content );
|
||||||
// check_member_ast( Prev );
|
// check_member_ast( Prev );
|
||||||
// check_member_ast( Next );
|
// check_member_ast( Next );
|
||||||
|
|
||||||
@ -1352,7 +1365,7 @@ bool AST::is_equal( AST* other )
|
|||||||
case Preprocess_IfNotDef:
|
case Preprocess_IfNotDef:
|
||||||
case Preprocess_ElIf:
|
case Preprocess_ElIf:
|
||||||
{
|
{
|
||||||
check_member_str( Content );
|
check_member_content( Content );
|
||||||
// check_member_ast( Prev );
|
// check_member_ast( Prev );
|
||||||
// check_member_ast( Next );
|
// check_member_ast( Next );
|
||||||
|
|
||||||
@ -1362,7 +1375,7 @@ bool AST::is_equal( AST* other )
|
|||||||
case Preprocess_Include:
|
case Preprocess_Include:
|
||||||
case Preprocess_Pragma:
|
case Preprocess_Pragma:
|
||||||
{
|
{
|
||||||
check_member_str( Content );
|
check_member_content( Content );
|
||||||
// check_member_ast( Prev );
|
// check_member_ast( Prev );
|
||||||
// check_member_ast( Next );
|
// check_member_ast( Next );
|
||||||
|
|
||||||
|
@ -4502,7 +4502,7 @@ CodeType parse_type( bool* is_function )
|
|||||||
brute_sig.Length = ( (sptr)prevtok.Text + prevtok.Length ) - (sptr)brute_sig.Text;
|
brute_sig.Length = ( (sptr)prevtok.Text + prevtok.Length ) - (sptr)brute_sig.Text;
|
||||||
is_first_capture = false;
|
is_first_capture = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool is_param_pack = false;
|
bool is_param_pack = false;
|
||||||
if ( check(TokType::Varadic_Argument) )
|
if ( check(TokType::Varadic_Argument) )
|
||||||
{
|
{
|
||||||
@ -4534,7 +4534,7 @@ CodeType parse_type( bool* is_function )
|
|||||||
|
|
||||||
if ( attributes )
|
if ( attributes )
|
||||||
result->Attributes = attributes;
|
result->Attributes = attributes;
|
||||||
|
|
||||||
if ( is_param_pack )
|
if ( is_param_pack )
|
||||||
result->IsParamPack = true;
|
result->IsParamPack = true;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user