code: private static void pushOp(String operation, Stack<MetricExpression> expressions, Stack<String> operations) {
          if (operation.equals("(")) {
              operations.push(operation);
              return;
          }
  
          if (operation.equals(")")) {
              while (!operations.isEmpty()) {
                  String op = operations.pop();
                  if (op.equals("("))
                      return;
                  doOperation(op, expressions, operations);
              }
          }
  
  
          if (operation.equals("*") || operation.equals("/")) {
              if (operations.isEmpty())
                  operations.push(operation);
              else {
                  String op1 = operations.peek();
                  if (!op1.equals("(")) {
                      if (op1.equals("+") || op1.equals("-")) {
                          operations.push(operation);
                      } else {
                          doOperation(operations.pop(), expressions, operations);
                          operations.push(operation);
                      }
                  } else {
                      operations.push(operation);
                  }
  
              }
          }
          if (operation.equals("+") || operation.equals("-")) {
              if (operations.isEmpty())
                  operations.push(operation);
              else {
                  String op1 = operations.peek();
                  if (!op1.equals("(")) {
                      doOperation(operations.pop(), expressions, operations);
                  }
                  operations.push(operation);
              }
          }
      }
docs: ////////////////////////////////////// old metrics