update decompiler precedence
This commit is contained in:
parent
4080dcdc30
commit
3cc43c7ae9
@ -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)));
|
||||
}
|
||||
|
@ -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)));
|
||||
}
|
||||
|
@ -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)));
|
||||
}
|
||||
|
@ -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)));
|
||||
}
|
||||
|
@ -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)));
|
||||
}
|
||||
|
@ -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)));
|
||||
}
|
||||
|
@ -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)));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user