update decompiler precedence

This commit is contained in:
xensik 2021-05-13 18:36:48 +02:00
parent 4080dcdc30
commit 3cc43c7ae9
8 changed files with 15 additions and 15 deletions

View File

@ -3067,7 +3067,7 @@ void decompiler::process_expr_binary(const gsc::context_ptr& ctx, const gsc::exp
prec = expr->rvalue.as_node->precedence();
if(prec && prec < expr->precedence())
if(prec && prec < expr->precedence() || (prec == expr->precedence() && expr->type == expr->rvalue.as_node->type))
{
expr->rvalue = expr_ptr(std::make_unique<gsc::node_expr_paren>(std::move(expr->rvalue)));
}
@ -3087,7 +3087,7 @@ void decompiler::process_expr_and(const gsc::context_ptr& ctx, const gsc::expr_a
prec = expr->rvalue.as_node->precedence();
if(prec && prec < expr->precedence())
if(prec && prec < expr->precedence() || (prec == expr->precedence() && expr->type == expr->rvalue.as_node->type))
{
expr->rvalue = expr_ptr(std::make_unique<gsc::node_expr_paren>(std::move(expr->rvalue)));
}

View File

@ -3067,7 +3067,7 @@ void decompiler::process_expr_binary(const gsc::context_ptr& ctx, const gsc::exp
prec = expr->rvalue.as_node->precedence();
if(prec && prec < expr->precedence())
if(prec && prec < expr->precedence() || (prec == expr->precedence() && expr->type == expr->rvalue.as_node->type))
{
expr->rvalue = expr_ptr(std::make_unique<gsc::node_expr_paren>(std::move(expr->rvalue)));
}
@ -3087,7 +3087,7 @@ void decompiler::process_expr_and(const gsc::context_ptr& ctx, const gsc::expr_a
prec = expr->rvalue.as_node->precedence();
if(prec && prec < expr->precedence())
if(prec && prec < expr->precedence() || (prec == expr->precedence() && expr->type == expr->rvalue.as_node->type))
{
expr->rvalue = expr_ptr(std::make_unique<gsc::node_expr_paren>(std::move(expr->rvalue)));
}

View File

@ -3061,7 +3061,7 @@ void decompiler::process_expr_binary(const gsc::context_ptr& ctx, const gsc::exp
prec = expr->rvalue.as_node->precedence();
if(prec && prec < expr->precedence())
if(prec && prec < expr->precedence() || (prec == expr->precedence() && expr->type == expr->rvalue.as_node->type))
{
expr->rvalue = expr_ptr(std::make_unique<gsc::node_expr_paren>(std::move(expr->rvalue)));
}
@ -3081,7 +3081,7 @@ void decompiler::process_expr_and(const gsc::context_ptr& ctx, const gsc::expr_a
prec = expr->rvalue.as_node->precedence();
if(prec && prec < expr->precedence())
if(prec && prec < expr->precedence() || (prec == expr->precedence() && expr->type == expr->rvalue.as_node->type))
{
expr->rvalue = expr_ptr(std::make_unique<gsc::node_expr_paren>(std::move(expr->rvalue)));
}

View File

@ -3061,7 +3061,7 @@ void decompiler::process_expr_binary(const gsc::context_ptr& ctx, const gsc::exp
prec = expr->rvalue.as_node->precedence();
if(prec && prec < expr->precedence())
if(prec && prec < expr->precedence() || (prec == expr->precedence() && expr->type == expr->rvalue.as_node->type))
{
expr->rvalue = expr_ptr(std::make_unique<gsc::node_expr_paren>(std::move(expr->rvalue)));
}
@ -3081,7 +3081,7 @@ void decompiler::process_expr_and(const gsc::context_ptr& ctx, const gsc::expr_a
prec = expr->rvalue.as_node->precedence();
if(prec && prec < expr->precedence())
if(prec && prec < expr->precedence() || (prec == expr->precedence() && expr->type == expr->rvalue.as_node->type))
{
expr->rvalue = expr_ptr(std::make_unique<gsc::node_expr_paren>(std::move(expr->rvalue)));
}

View File

@ -3061,7 +3061,7 @@ void decompiler::process_expr_binary(const gsc::context_ptr& ctx, const gsc::exp
prec = expr->rvalue.as_node->precedence();
if(prec && prec < expr->precedence())
if(prec && prec < expr->precedence() || (prec == expr->precedence() && expr->type == expr->rvalue.as_node->type))
{
expr->rvalue = expr_ptr(std::make_unique<gsc::node_expr_paren>(std::move(expr->rvalue)));
}
@ -3081,7 +3081,7 @@ void decompiler::process_expr_and(const gsc::context_ptr& ctx, const gsc::expr_a
prec = expr->rvalue.as_node->precedence();
if(prec && prec < expr->precedence())
if(prec && prec < expr->precedence() || (prec == expr->precedence() && expr->type == expr->rvalue.as_node->type))
{
expr->rvalue = expr_ptr(std::make_unique<gsc::node_expr_paren>(std::move(expr->rvalue)));
}

View File

@ -3067,7 +3067,7 @@ void decompiler::process_expr_binary(const gsc::context_ptr& ctx, const gsc::exp
prec = expr->rvalue.as_node->precedence();
if(prec && prec < expr->precedence())
if(prec && prec < expr->precedence() || (prec == expr->precedence() && expr->type == expr->rvalue.as_node->type))
{
expr->rvalue = expr_ptr(std::make_unique<gsc::node_expr_paren>(std::move(expr->rvalue)));
}
@ -3087,7 +3087,7 @@ void decompiler::process_expr_and(const gsc::context_ptr& ctx, const gsc::expr_a
prec = expr->rvalue.as_node->precedence();
if(prec && prec < expr->precedence())
if(prec && prec < expr->precedence() || (prec == expr->precedence() && expr->type == expr->rvalue.as_node->type))
{
expr->rvalue = expr_ptr(std::make_unique<gsc::node_expr_paren>(std::move(expr->rvalue)));
}

View File

@ -3076,7 +3076,7 @@ void decompiler::process_expr_binary(const gsc::context_ptr& ctx, const gsc::exp
prec = expr->rvalue.as_node->precedence();
if(prec && prec < expr->precedence())
if(prec && prec < expr->precedence() || (prec == expr->precedence() && expr->type == expr->rvalue.as_node->type))
{
expr->rvalue = expr_ptr(std::make_unique<gsc::node_expr_paren>(std::move(expr->rvalue)));
}
@ -3096,7 +3096,7 @@ void decompiler::process_expr_and(const gsc::context_ptr& ctx, const gsc::expr_a
prec = expr->rvalue.as_node->precedence();
if(prec && prec < expr->precedence())
if(prec && prec < expr->precedence() || (prec == expr->precedence() && expr->type == expr->rvalue.as_node->type))
{
expr->rvalue = expr_ptr(std::make_unique<gsc::node_expr_paren>(std::move(expr->rvalue)));
}