public void Visit(BinaryMul node) { OperationPriorities priority = prevPriorities.Pop(); if ((int)priority > 6 || priority == OperationPriorities.Div) { sb.Append("("); prevPriorities.Push(OperationPriorities.Mul); node.LeftChild.Accept(this); sb.Append("*"); prevPriorities.Push(OperationPriorities.Mul); node.RightChild.Accept(this); sb.Append(")"); } else { prevPriorities.Push(OperationPriorities.Mul); node.LeftChild.Accept(this); sb.Append("*"); prevPriorities.Push(OperationPriorities.Mul); node.RightChild.Accept(this); } }
public void Visit(BinarySub node) { OperationPriorities priority = prevPriorities.Pop(); if ((int)priority > 1) { sb.Append("("); prevPriorities.Push(OperationPriorities.Sub); node.LeftChild.Accept(this); sb.Append("-"); prevPriorities.Push(OperationPriorities.Sub); node.RightChild.Accept(this); sb.Append(")"); } else { prevPriorities.Push(OperationPriorities.Sub); node.LeftChild.Accept(this); sb.Append("-"); prevPriorities.Push(OperationPriorities.Sub); node.RightChild.Accept(this); } }