Skip to content

Instantly share code, notes, and snippets.

@fabianbaechli
Created April 22, 2025 14:27
Show Gist options
  • Save fabianbaechli/964fb2af90d9abfdd2ea3face1e77c39 to your computer and use it in GitHub Desktop.
Save fabianbaechli/964fb2af90d9abfdd2ea3face1e77c39 to your computer and use it in GitHub Desktop.
bool needsParentheses(struct node* p, bool rgt) {
return (
// (a + b) / c
!rgt && precedence(p) < precedence(p->lft)) ||
// case where right operation has precedence
// for example: a + (b * c)
(rgt && precedence(p) < precedence(p->rgt)) ||
// case where the precedence is equal
// for example: a - (b - c)
(
rgt && precedence(p) == precedence(p->rgt) &&
(p->val == "-" || p->val == "/")
);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment